Lua集成kafka第三方插件代码介绍|学习笔记

简介: 快速学习Lua集成kafka第三方插件代码介绍

开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop框架搭建):Lua集成kafka第三方插件代码介绍】学习笔记与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/670/detail/11614


Lua集成kafka第三方插件代码介绍

 

内容介绍:

一、代码的书

二、导入依赖包

三、创建Kafka生产者

四、创建数据的载体

五、发送数据

 

一、代码的书写

目标

编写 Lua 的脚本采集数据的脚本完成数据后集后,把这个数据发送到 Kafka 里面。

写思路:

类似于写Java的代码除去类似 Java 的部分,要多加一个引入操作。

我们现在使用的是 Lua 脚本 来采集数据,现在还没有 Kafka 生产者的API需要先引入 Kafka 的包,然后呢再做创建生产者创建数据的载体发送数据

 

二、导入依赖包

1.打开当下环境 resty,查找依赖包。

查找过程:user local authority- Lua lib进入到 Lua liver里不存在 Kafka 、然后再进入到resty、 Cd rest 里看是否存在 Kafka API 。

2.不存在API时需要使用第三方提供的 Kafka API 。

具体位置:在提供材料-素材-资料包-资料包- Open Resty里面资源里面有个 Lua rest, Kafka 的master文件。

Lua - resty - Kafka -master 右键解压。

点击进入 lib -resty- Kafka-producer其中包括许多内容。

图片1.png

3.将依赖包上传到集群里面上传查看 Kafka 整个目录

当前的目录是在resty 里边有一个 Kafka ,其中无内容。将 Kafka 整个目录全部都发送到环境目录下面来。用另外一个工具看一下192.168.100.160,然后用户名为root

输入密码123456然后找到usr - local -Lula labour。

把这里面的 Kafka 目录直接全部都拖过来走。

图片2.png


三、创建 Kafka 生产者

打开producer其中存在的[_M]与ridis的相似。具体代码如下:

Local_M={ _VERSION="0.06"}

local mt={ _index=M}

_M即意味着 Kafka 生产者需要创建一个 Kafka 实例。

创建实例需要用到new,查找目标:_M.new

接着需要这个 Kafka 的 new这个过程中需要用到以下参数

图片3.png

1. Sel

2. broker list指集群的一些信息诸如节点 IP端口内容 Brokerlist 传到环境中后已结束,传到客户端中。

3. config一些配置信息

存在or(空):即若传了这个参数,就显示参数如果没传我就相当默认的参数。

举例: producer type存在一个值 request_timeout,有个or 2000类似他这个默认值,这个属性中存在默认值。

如果传过来的内容中有数据,那就用用户传,如果没有就用这个默认值。搜索Opts,显示出来的均为默认值。

图片4.png

4.cluster_name:

存在 or DEFAULT_CLUSTER_NAME查找一下 =1 这也表示一个名字。

即此类集群的名字,如果传了,我就用户上传的命名;没传就使用1来代表该集群。

查找 _M.send发送数据 self 参数是数据本身。

发送数据时的 topic 、 Key 、message中不存在默认值,说明 topic 、 Key 、message 是发送数据时需要用户给出、必备的内容。

 

四、创建数据的载体

实际上不需要载体,但是也要有一个过程,实际上是没用到,但在发送数据的时候,直接把原始数据发送过去

 

五、发送数据

API 缩小化, produce这个就完成了。在桌面上面新建一个文件,这个文件就按照讲义中的名字进行命名: GetDataToKafka

GetDataToKafka 该文件用于书写获取数据,并且把数据打入到 Kafka

相关文章
|
1月前
|
监控 关系型数据库 MySQL
zabbix agent集成percona监控MySQL的插件实战案例
这篇文章是关于如何使用Percona监控插件集成Zabbix agent来监控MySQL的实战案例。
31 2
zabbix agent集成percona监控MySQL的插件实战案例
|
6天前
|
前端开发 C++ Windows
C++生成QML代码与QML里面集成QWidget
这篇文章介绍了如何在C++中生成QML代码,以及如何在QML中集成QWidget,包括使用Qt Widgets嵌入到QML界面中的技术示例。
|
2月前
|
Java Devops 持续交付
探索Java中的Lambda表达式:简化代码,提升效率DevOps实践:持续集成与部署的自动化之路
【8月更文挑战第30天】本文深入探讨了Java 8中引入的Lambda表达式如何改变了我们编写和管理代码的方式。通过简化代码结构,提高开发效率,Lambda表达式已成为现代Java开发不可或缺的一部分。文章将通过实际例子展示Lambda表达式的强大功能和优雅用法。
|
2月前
|
jenkins 持续交付 网络安全
利用 Jenkins 实现持续集成与持续部署-代码拉取终端的配置
【8月更文挑战第30天】在Jenkins服务器中,git和Gitee是常用的代码拉取终端。Git作为分布式版本控制系统,具备出色的灵活性和可扩展性;而Gitee则在国内网络环境下表现更佳,适合团队协作。Git配置包括安装、设置用户信息及生成SSH密钥等步骤;Gitee配置也类似,需注册账号、创建仓库、配置基本信息并设置远程仓库地址。开发人员提交代码后,可通过Webhook、定时轮询或事件监听等方式触发Jenkins动作,确保持续集成和部署高效运行。正确配置这些触发机制并通过测试验证其有效性至关重要。
53 2
|
2月前
|
Java jenkins Shell
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
|
2月前
|
jenkins 持续交付
jenkins学习笔记之六:共享库方式集成构建工具
jenkins学习笔记之六:共享库方式集成构建工具
|
1月前
|
jenkins 持续交付 网络安全
利用 Jenkins 实现持续集成与持续部署-代码拉取终端的配置
安装Git、配置用户信息、生成SSH密钥以及在Gitee上创建项目仓库等。
53 0
|
2月前
|
C# Windows 开发者
当WPF遇见OpenGL:一场关于如何在Windows Presentation Foundation中融入高性能跨平台图形处理技术的精彩碰撞——详解集成步骤与实战代码示例
【8月更文挑战第31天】本文详细介绍了如何在Windows Presentation Foundation (WPF) 中集成OpenGL,以实现高性能的跨平台图形处理。通过具体示例代码,展示了使用SharpGL库在WPF应用中创建并渲染OpenGL图形的过程,包括开发环境搭建、OpenGL渲染窗口创建及控件集成等关键步骤,帮助开发者更好地理解和应用OpenGL技术。
96 0
|
2月前
|
开发者 C# UED
WPF与多媒体:解锁音频视频播放新姿势——从界面设计到代码实践,全方位教你如何在WPF应用中集成流畅的多媒体功能
【8月更文挑战第31天】本文以随笔形式介绍了如何在WPF应用中集成音频和视频播放功能。通过使用MediaElement控件,开发者能轻松创建多媒体应用程序。文章详细展示了从创建WPF项目到设计UI及实现媒体控制逻辑的过程,并提供了完整的示例代码。此外,还介绍了如何添加进度条等额外功能以增强用户体验。希望本文能为WPF开发者提供实用的技术指导与灵感。
74 0
|
2月前
|
存储 开发者 C#
WPF与邮件发送:教你如何在Windows Presentation Foundation应用中无缝集成电子邮件功能——从界面设计到代码实现,全面解析邮件发送的每一个细节密武器!
【8月更文挑战第31天】本文探讨了如何在Windows Presentation Foundation(WPF)应用中集成电子邮件发送功能,详细介绍了从创建WPF项目到设计用户界面的全过程,并通过具体示例代码展示了如何使用`System.Net.Mail`命名空间中的`SmtpClient`和`MailMessage`类来实现邮件发送逻辑。文章还强调了安全性和错误处理的重要性,提供了实用的异常捕获代码片段,旨在帮助WPF开发者更好地掌握邮件发送技术,提升应用程序的功能性与用户体验。
36 0
下一篇
无影云桌面