fmq集群部署
1. FMQ服务部署
复制部署文件
将 fmq 文件夹复制到 **opt**文件夹下,然后执行命令
sh
chmod u+x permission.sh授权 .sh 文件
执行 permission.sh文件 ,授权其他文件和目录
sh
./permission.sh修改springBoot配置文件
定位路径 opt\fmq\application.yml
使用内网IP地址,配置集群的本地IP,和集群IP
yaml
localAddress: 1x.x.x.x
static-ip-addresses: 1x.x.x.x, 1x.x.x.xx修改kafka服务地址 bootstrap-servers
yml
kafka:
broker-enabled: true # 是否启用kafka消息桥接
bootstrap-servers: 127.0.0.1:9092 # kafka地址 127.0.0.1:9092,127.0.0.1:9093
producer:
acks: -1 # acks回令 如果必须等待回令,那么设置acks为all,否则,设置为-1,等待回令会有性能损耗
retries: 3 # 重试次数
batch-size: 16384 # 批量提交大小
buffer-memory: 33554432 # 缓存大小
key-serializer: org.apache.kafka.common.serialization.StringSerializer #序列化方式
value-serializer: org.apache.kafka.common.serialization.StringSerializer #序列化方式
partitioner:
class: cn.fastbee.iot.store.kafaka.MqttPartitioner
message-bridge: # kafka消息桥接转发的主题
bridge-topics:
- "property_post"
enable: true修改webHook的认证地址
yaml
webhook-url: http://127.0.0.1:18083/webhook项目打包
修改 fmq-application 对应的 pom文件
放开这里注释,更新maven
xml
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>application.yml</exclude>
<exclude>application-dev.yml</exclude>
</excludes>
</resource>
</resources>在IDEA中,执行 package

完成后将 fmq-application.jar 复制至 opt/fmq 目录下
创建 Systemd 服务方式(推荐)
执行 fmq-system-register.sh
sh
./fmq-system-register.sh使用系统命令启动服务
sh
systemctl start fmq查看服务状态
sh
systemctl status fmq停止服务
sh
systemctl stop fmq直接运行方式
执行 fmq-start.sh
sh
./fmq-start.sh start停止
sh
./fmq-start.sh stop注意!!其他节点部署,先修改springBoot配置文件
yaml
localAddress: 1x.x.x.x
static-ip-addresses: 1x.x.x.x, 1x.x.x.xx2. 集群验证
部署完成后,打开 http://ip:18083 登录 fmq的可视化页面 首页 -> 节点

可以看到前面两个节点
3. 常见问题
3.1. 节点启动后在可视化页面看不到其他节点?
检查各节点 application.yml 中的 localAddress 是否为本机内网 IP、static-ip-addresses 是否包含全部集群节点 IP,并确认节点间内网端口互通、无防火墙拦截。
3.2. 启动脚本提示权限不足?
先在 fmq 目录执行 chmod u+x permission.sh 并运行 ./permission.sh 完成授权,再使用 fmq-start.sh 或 systemd 方式启动。
3.3. 启用 Kafka 桥接后消息没有转发?
确认 bootstrap-servers 地址可达、message-bridge.enable 为 true,并检查 bridge-topics 中的主题名与实际上报主题(如 property_post)一致。

