关于 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机客户端必须重练其他节点,并重新订阅。

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