5

关于 emqtt 推送问题,mqtt有时收不到消息疑难解答

 3 years ago
source link: https://blog.p2hp.com/archives/4304
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
关于 emqtt 推送问题,mqtt有时收不到消息疑难解答

一、客户端 连接冲突会发现以下报错 (开启 debug日志:把配置文件 的log.console.level 改为= debug)

11:20:55.849 [info] Session(060010100000868936): resumed by <0.21232.18>^M^M
11:20:55.849 [warning] Session(060010100000868936): <0.21232.18> kickout <0.31200.17>^M^M
11:20:55.849 [warning] Client(27.187.80.148:9093): clientid '060010100000868936' conflict with <0.21232.18>^M^M

二、有时会发现集群之间topic和routes不同步,可能是以下原因

注意事项: NetSplit
EMQ消息服务器集群需要稳定网络连接以避免发生NetSplit故障。集群设计上默认不自动处理NetSplit,如集群节点间发生NetSplit,需手工重启某个分片上的相关节点。

注解
NetSplit是指节点运行正常但因网络断开互相认为对方宕机。EMQ 2.1版本将支持NetSplit自动恢复。
三、http://42.62.117.94:18083/api/listeners 这里的报错说明如下:

badtopic 说明发布的主题在acl的时候没有通过
idle_timeout 建立tcp连接之后,在10秒内没有发出mqtt的connect报文,被emqttd服务close掉了
confilct 同一个clientid多地connect冲突
closed 应该是正常关闭吧
keepalive_timeout 说明客户端在keepalive时间内没有数据交换,也没有发送pingreq报文,被服务端断开

剩余内容需要付费后查看,请点击支付

还有一种情况

One 'disc_copies' node and many 'ram_copies' nodes.

Topic trie tree will be copied to every clusterd node.

Subscribers to topic will be stored in each node and will not be copied.

第1个,其它是内存复制?如果机器down了,怎样保持高可用 .
第3个,订阅不复制到其它机器,这就会产生一个问题,如果用 lvs直接路由 负载均衡,就会 导致分次订阅的客户端再连接时,收不到某些消息.

w3yyb commented on 26 May 2015
一个客户端分次订阅6个主题用(192.168.6.1连接),他们分别路由到机器A和B上(A和B各收到3个订阅), 以后客户端 保持和 192.168.6.1连接,当publish6条消息时,这个客户端 只能收到 3条消息.

  1. Topic tree每台机器有副本,down机不影响数据
  2. 连接、订阅是单节点,down机客户端必须重练其他节点,并重新订阅。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK