EMQX之Kafka插件编译安装

2024-05-05 06:48
文章标签 编译 安装 插件 kafka emqx

本文主要是介绍EMQX之Kafka插件编译安装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Kafka插件github上有好几个:

 

https://github.com/bob403/emqx_kafka_bridge  (我们选择这个,支持emqx-v3.0版本)

https://github.com/iotblue/emqx-kafka-bridge/tree/emqx30 

https://github.com/shsjdcbg/emq-kafka 

 

修改 emqx-rel目录下的Makefile:

DEPS += $(foreachdep,$(MAIN_APPS),$(call app_name,$(dep)))
DEPS += emqx_kafka_bridge 【增加这行】
...
$(foreach dep,$(MAIN_APPS),$(evaldep_$(call app_name,$(dep)) = $(CLONE_METHOD) https://github.com/emqx/$(dep)$(call app_vsn,$(dep))))
dep_emqx_kafka_bridge = git https://github.com/bob403/emqx_kafka_bridge.git master 【增加这行】

 

在relx.config里增加:

{emqx_kafka_bridge, load}

 

重新编译emqx:

cd emqx-relx
rm -rf _rel                 //删除之前编译的结果
make clean
make

 

修改kafka插件配置:

/emq/emqx-rel/_rel/emqx/etc/plugins/emqx_kafka_bridge.conf

【注意】这个插件的配置文件在好几个地方都存在,我们需要找到编译后的【_rel】目录下的配置,否则不生效。

 

根据实际情况调整配置:

##--------------------------------------------------------------------
## kafka Bridge
##--------------------------------------------------------------------## The Kafka loadbalancer node hostthat bridge is listening on.
##
## Value: 127.0.0.1, localhost
kafka.host = localhost## The kafka loadbalancer node portthat bridge is listening on.
##
## Value: Port
kafka.port = 9092## The kafka loadbalancer nodepartition strategy.
##
## Value: random, sticky_round_robin,strict_round_robin, custom
kafka.partitionstrategy =strict_round_robin## Each worker represents aconnection to a broker + topic + partition combination.
## You can decide how many workers tostart for each partition.
##
## Value:
kafka.partitionworkers = 8## payload topic.
## kafka上要提前建立一个名为Processing的Topic
## Value: string
kafka.payloadtopic = Processing

 

启用插件

列出所有插件:

./emqx_ctl plugins list

看到:

Plugin(emqx_kafka_bridge,version=3.0, description=EMQ X Kafka Bridge, active=false)

 

启动kafka插件:

./emqx_ctl plugins load emqx_kafka_bridge

返回:

Start apps: [emqx_kafka_bridge]
Plugin emqx_kafka_bridge loadedsuccessfully.

 

 

测试步骤MQTT消息是否转发到kafka

1,kafka上要提前建立一个名为Processing的Topic(分区为3,方便多个客户端消费)

./bin/kafka-topics.sh --create--zookeeper localhost:2181 --replication-factor 1 --partitions 3  --topic Processing

 

2,打开MQTT客户端,我使用的是chrome浏览器应用MQTTBox:

 

随便发布消息到一个MQTT主题,比如test,这里的MQTT 的topic和kafka的topic毫无关系,不要搞混了。

 

3,Kafka消费终端,消费主题Processing:

./bin/kafka-console-consumer.sh--bootstrap-server localhost:9092  --topic Processing

收到反馈如下:

{"action":"connected","device_id":"3fbf56e4-3396-47b0-a99f-5ecf0964e23b1561539149561","username":"undefined","ts":1561539149}
{"action":"message_publish","device_id":"3fbf56e4-3396-47b0-a99f-5ecf0964e23b1561539149561","username":"undefined","topic":"test","payload":"a1","ts":1561539155}
{"action":"message_publish","device_id":"3fbf56e4-3396-47b0-a99f-5ecf0964e23b1561539149561","username":"undefined","topic":"test","payload":"a2","ts":1561539157}
{"action":"disconnected","device_id":"3fbf56e4-3396-47b0-a99f-5ecf0964e23b1561537211825","username":"undefined","ts":1561539143}

可以收到MQTT转发的事件,比如connected、disconnected、message_publish等。

 

剩下的事我们就可以利用PHP、java等客户端去消费Processing主题,将需要的信息存入MYSQL等数据库了。

这篇关于EMQX之Kafka插件编译安装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/961046

相关文章

宝塔安装的MySQL无法连接的情况及解决方案

《宝塔安装的MySQL无法连接的情况及解决方案》宝塔面板是一款流行的服务器管理工具,其中集成的MySQL数据库有时会出现连接问题,本文详细介绍两种最常见的MySQL连接错误:“1130-Hostisn... 目录一、错误 1130:Host ‘xxx.xxx.xxx.xxx’ is not allowed

windows和Linux安装Jmeter与简单使用方式

《windows和Linux安装Jmeter与简单使用方式》:本文主要介绍windows和Linux安装Jmeter与简单使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows和linux安装Jmeter与简单使用一、下载安装包二、JDK安装1.windows设

Jupyter notebook安装步骤解读

《Jupyternotebook安装步骤解读》:本文主要介绍Jupyternotebook安装步骤,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、开始安装二、更改打开文件位置和快捷启动方式总结在安装Jupyter notebook 之前,确认您已安装pytho

Kali Linux安装实现教程(亲测有效)

《KaliLinux安装实现教程(亲测有效)》:本文主要介绍KaliLinux安装实现教程(亲测有效),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载二、安装总结一、下载1、点http://www.chinasem.cn击链接 Get Kali | Kal

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见

MyBatis分页插件PageHelper深度解析与实践指南

《MyBatis分页插件PageHelper深度解析与实践指南》在数据库操作中,分页查询是最常见的需求之一,传统的分页方式通常有两种内存分页和SQL分页,MyBatis作为优秀的ORM框架,本身并未提... 目录1. 为什么需要分页插件?2. PageHelper简介3. PageHelper集成与配置3.

一文详解如何查看本地MySQL的安装路径

《一文详解如何查看本地MySQL的安装路径》本地安装MySQL对于初学者或者开发人员来说是一项基础技能,但在安装过程中可能会遇到各种问题,:本文主要介绍如何查看本地MySQL安装路径的相关资料,需... 目录1. 如何查看本地mysql的安装路径1.1. 方法1:通过查询本地服务1.2. 方法2:通过MyS

电脑软件不能安装到C盘? 真相颠覆你的认知!

《电脑软件不能安装到C盘?真相颠覆你的认知!》很多人习惯把软件装到D盘、E盘,刻意绕开C盘,这种习惯从哪来?让我们用数据和案例,拆解背后的3大原因... 我身边不少朋友,在使用电脑安装软件的时候,总是习惯性的把软件安装到D盘或者E盘等位置,刻意避开C盘。如果你也有这样的习惯,或者不明白为什么要这么做,那么我

Maven 插件配置分层架构深度解析

《Maven插件配置分层架构深度解析》:本文主要介绍Maven插件配置分层架构深度解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Maven 插件配置分层架构深度解析引言:当构建逻辑遇上复杂配置第一章 Maven插件配置的三重境界1.1 插件配置的拓扑

ubuntu20.0.4系统中安装Anaconda的超详细图文教程

《ubuntu20.0.4系统中安装Anaconda的超详细图文教程》:本文主要介绍了在Ubuntu系统中如何下载和安装Anaconda,提供了两种方法,详细内容请阅读本文,希望能对你有所帮助... 本文介绍了在Ubuntu系统中如何下载和安装Anaconda。提供了两种方法,包括通过网页手动下载和使用wg