Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

看说明好像目前还不支持集群,如果需要分布式的集群部署(部署多个broker), 有什么好的办法实现么? #448

Open
Solo-one opened this issue Jan 24, 2025 · 0 comments

Comments

@Solo-one
Copy link

调研发现一旦集群部署,消息的路由转发会变的很复杂(比如 客户端连接的是 broker1,我发布消息是在 broker2 上, 此是需要 broker2 路由转发到 broker1上才可以使 订阅在broker1上的客户端收到消息)。

网络上查了一些资料 实现比如:

  • 桥接(好像性能会有影响)、
  • 基于中间件消息队列分发(比如转发到Kafka,各borker消费后处理,大量无用转发(无用我理解的是当前broker把没用消息也需要消费到),性能也不高)、
  • 维护共享路由存储(比如在redis记录路由信息, broker2 收到消息,查询redis发现在broker1 上, broker2 转发到 broker1 ,这里转发我想到是一个远程调用实现)。 这里好像emqx是这么做的,但是不是用的redis,它是每个节点维护一个完整路由表,然后节点间同步路由表(同步、一致性问题,又很麻烦。。。)

集群部署带来的功能问题:
集群化后,比如“共享订阅” 这个高级功能好像也会变得复杂,可能客户端一个上报消息,会被 2个不同broker同时订阅到(问题是 mochi-mqtt一个broker内是支持共享订阅,但是 多个 broker 之间 如何实现 共享订阅呢?),这就有问题了,还没想的如何解决,有什么好办法么?

大佬针对集群部署,有什么建议么 和思路么,希望大佬解惑下

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant