前言
应公司要求新项目需要接受mqtt消息并且,甲方要求为集群然后搭建mqtt集群并进行记录
前置准备
接下来介绍一些基础的前置准备:
- 环境 :Linux;
- 基础解决方案 :这边笔者使用的为EMQX,说明文档地址为参考地址;
下载EMXQ
我使用的是直接通过docker镜像下载,如果无docker需求的请自行从EMQX官网进行下载,安装方式大同小异,使用docker命令直接下载EMQX镜像。
docker run -tid --name emqx --restart=always --cpus=0.6 \
--network host \
-e EMQX_LISTENER__TCP__EXTERNAL=1883 \
-e EMQX_NAME=emqx \
-e EMQX_HOST=192.168.31.160 \
-e EMQX_MANAGEMENT__LISTENER__HTTP=18080 \
-e EMQX_CLUSTER__NAME=ys_emqxcl \
-e EMQX_CLUSTER__DISCOVERY=manual \
-e EMQX_NODE__DIST_LISTEN_MIN=6369 \
-e EMQX_NODE__DIST_LISTEN_MAX=7369 \
-e EMQX_NODE__COOKIE=emqxsecretcookie \
emqx/emqx:4.3.10
参考作者地址参考地址
在第二台服务器上边照例启动。
启动完成以后所有服务器记得放开端口:1883,18083方便登录测试。
放开端口命令
开放指定端口
firewall-cmd --zone=public --add-port=1935/tcp --permanent
命令含义:
–zone #作用域
–add-port=1935/tcp#添加端口,格式为:端口/通讯协议
–permanent#永久生效,没有此参数重启后失效
接下来进入http://服务器ip:18083,查看是否部署成功出现以下画面则表示部署成功
进入服务器以后可以看到以下画面表示部署成功
接下来进入docker镜像把镜像加入集群
#查看docker镜像
docker ps -a
#进入docker镜像
docker exec -it 容器ID /bin/bash
#加入集群
emqx_ctl cluster join 自己部署的名字
#退出容器
exit
这边笔者的是已经加入集群成功了和上图一样
可以看到笔者的是加入集群成功了的
接下来可以使用官方工具测试消息是否成功官方下载地址具体使用看官方介绍
容易出现的问题
订阅相同主题消息收不到?在集群模式下订阅类相同主题是所有都可以收到消息的 如果收不到消息请检查是否开启了5369,4370是否开放
可参地址参考地址