无效客户机标识

环境信息

  • EMQX 版本:4.2.6
  • 操作系统及版本:Red Hat Enterprise Linux Server release 7.9 (Maipo)
  • 其他

问题描述

程序运行中出现 “无效客户机标识 (2)", 不是必现的

嗯嗯 这个是会出现的,一般是由于大量同时的并发下,在集群下 拿 clientid 的存在锁冲突的会发生的。

即,由于前一个连接还在创建中,后一个相同 clientid 的拿不到 clientid 锁而导致建立连接失败。

这是设计内的情况,不用担心的。

也就是说 不使用相同的客户端ID 就不会出现这个问题了。
现在我们是很多线程使用同一个客户端ID去建立链接,发布消息。

我们项目中出现了这种错误,但是没有捕获异常重试,导致一些消息没有发布成功。

您说的不用担心,是指的什么呢?

这属于客户端连接到 EMQX 失败,客户端需要增加重试机制的。对于重要的消息,在连接不存在的时候甚至要做缓存的。

另外,一定不要用多进程使用相同的 ClientID 来发布消息!!!