python – ZMQ pub / sub可靠/可扩展设计

我使用ZMQ设计了一个pub / sub架构.我需要最大的可靠性和可扩展性,并且在所提供的可能性方面有点迷失.

目前,我有一个由经纪人链接的出版商和订阅者.代理是一个简单的转发器设备,为发布者提供前端,为订阅者提供后端.

我需要在代理崩溃或断开连接时处理这种情况,并提高整体可伸缩性.

好吧,所以我想添加多个代理,发布者会循环代理发送消息,订阅者只会订阅所有这些代理.

然后我需要一种方法来检索可能的经纪人列表,所以我写了一个名称服务,按需提供经纪人列表.发布者和订阅者要求此服务连接到哪些经纪人.

我还写了一种“懒惰的盗版”(即一个接一个地尝试/重试)可靠的名称服务,以防主要名称服务下降.

我开始认为我设计错了,因为代码库的大小和复杂性不断增加.我迷失在ZMQ提供的各种可能性的丛林中.

也许基于路由器/经销商的东西可以在这里使用?

任何建议非常感谢!

解决方法:

直接回答你的问题是不可能的,因为它基于如此多的假设,其中许多可能是错误的.

你因为使用了错误的方法而迷路了.将0MQ视为一种语言,你还不太清楚.如果你开始尝试编写“最大可靠性和可扩展性”,那么你最终将会遇到哥斯拉的呕吐物.

所以:使用我在指南中使用的方法.从核心消息流的最小解决方案开始,并使其正常工作.仔细考虑使用正确类型的插座.然后进行渐进式改进,每次完全测试以确保您了解实际情况.当您发现代码不断增长时,请定期重构代码.继续,直到你有一个稳定的最小版本1.不要在开始时瞄准“最大”的任何东西.

最后,当您更好地理解问题时,从头开始再次重新开始,分几步构建工作模型.

重复直到你完全控制了问题,并学会了解决问题的最佳方法.

上一篇:python – 在Windows上安装pymatbridge


下一篇:如何处理并发客户端请求?