Node.js MQTT给卡夫卡。如何避免重复

Node.js MQTT给卡夫卡。如何避免重复,node.js,apache-kafka,mqtt,publish-subscribe,Node.js,Apache Kafka,Mqtt,Publish Subscribe,我的要求是负载平衡2个运行在不同VM上的MQTT节点,然后让消费者在两个节点上访问这些MQTT代理。消费者的工作是订阅一个主题,并在收到数据后将其发布给卡夫卡。问题我看到,由于两个MQTT使用者都订阅了相同的主题,它们将收到相同的消息,并且都将其插入到Kafka中,从而创建重复的消息。有没有办法避免在卡夫卡上重复写 我尝试过Mosquitto和Mosca代理,但它们不支持集群。因此,如果订阅的客户机订阅了另一个节点(即消息发布的节点),则不会收到消息。两个节点都位于HAProxy后面 我目前正

我的要求是负载平衡2个运行在不同VM上的MQTT节点,然后让消费者在两个节点上访问这些MQTT代理。消费者的工作是订阅一个主题,并在收到数据后将其发布给卡夫卡。问题我看到,由于两个MQTT使用者都订阅了相同的主题,它们将收到相同的消息,并且都将其插入到Kafka中,从而创建重复的消息。有没有办法避免在卡夫卡上重复写

  • 我尝试过Mosquitto和Mosca代理,但它们不支持集群。因此,如果订阅的客户机订阅了另一个节点(即消息发布的节点),则不会收到消息。两个节点都位于HAProxy后面
  • 我目前正在使用emqtt代理,它支持集群,负载平衡问题由此得到解决,但它似乎不支持跨集群节点的共享订阅
我认为,像卡夫卡消费群体这样的功能是必需的。有什么想法吗?

你试过了吗
它提供所谓的服务

如果使用共享订阅,则共享同一订阅的所有客户端将以交替方式接收消息


谢谢我忘了提到我已经读过了,但我正在寻找一个开源解决方案,它要么提供类似共享订阅的内容,要么乐于听到在没有共享订阅端节点的情况下如何处理这样的场景:共享订阅目前不是MQTT规范(3.1.1)的一部分因此,每个实现都是不同的。v5规范包括作为可选组件的共享订阅,因此所有实现都应该是可互操作的。