基于emq x开源版实现服务重启后主题和消息恢复的完整方案(二)

该文介绍了一种基于emqx开源版的服务重启恢复方案,通过EMQ X Web Hook、Redis和Web API扩展,确保服务重启后订阅主题和持久化数据得以恢复。详细阐述了改造过程、安装说明,并提供了相关资源链接。
摘要由CSDN通过智能技术生成

emqx_restart_resume

用于emqx开源版 服务重启后恢复原订阅主题和持久化数据

问题

  1. 开源版emq在服务重启后原订阅的主题会清空,在客户端保持原clientId,保持原session未重新订阅时,接不到服务器转发的消息。
  2. 开源版持久化会模型保存主题下的最后一条消息,在重启后也会被清空。

解决方案

利用EMQ X Web Hook插件将时间发送到指定的请求,利用Redis 和 EMQ X自带的Web API进行扩展,可查看博文了解详情

  • 基于emqx 3.2.7版本改造
  • message_publish传输更改为采用UDP方式
  • client_connected、session_subscribed、session_unsubscribed采用HTTP方式
  • EMQX服务启动后内部11883端口用于消息持久化恢复,在持久化消息恢复完成后开启1883端口监听
  • 在clear_session=False 的客户端连接成功后,进行已订阅主题查询及未订阅主题恢复
  • redis使用源码编译,采用RDB和AOP并行持久化

安装说明

  • 生成镜像
    cd emqx_restart_resume
    docker build -t ubuntu18.04:emqx_restart_resume .

    说明:
    u

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gmHappy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值