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

相关文章

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

MySql9.1.0安装详细教程(最新推荐)

《MySql9.1.0安装详细教程(最新推荐)》MySQL是一个流行的关系型数据库管理系统,支持多线程和多种数据库连接途径,能够处理上千万条记录的大型数据库,本文介绍MySql9.1.0安装详细教程,... 目录mysql介绍:一、下载 Mysql 安装文件二、Mysql 安装教程三、环境配置1.右击此电脑

在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

《在Windows上安装DeepSeek的完整指南(最新推荐)》在Windows上安装DeepSeek的完整指南,包括下载和安装Ollama、下载DeepSeekRXNUMX模型、运行Deep... 目录在www.chinasem.cn Windows 上安装 DeepSeek 的完整指南步骤 1:下载并安装

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf