繁体   English   中英

在ZeroMQ中统一用于实时用途

[英]Uniform in zeromq for realtime purpose

我需要使用服务器和终端来实时实施分析系统。

我使用ZeroMq库(发布|订阅模式)将消息发送到客户端(约40字节)。

如果我与1个客户端连接,则消息会延迟(有时会超过250毫秒)。 如果我与100个客户建立联系,那么很多客户就会失去传递的一致性(超过750毫秒后,在巨大的数据范围之后,没有一条消息会出现)。 对我来说,这是至关重要的问题。

我必须发布到6000多个终端...每30ms发布一次,在最坏的情况下(tcp)每个客户端大约需要1700bytes

也许我应该使用另一种技术来实时传递消息?

就像我在评论中说的那样,组播就是这种方式。 首要考虑的是终端是否可以加入要发布的组-不管它们有多远。

您尚未说明终端如何连接到网络-(例如,互联网上的vpn,专线等等。)您要求的是更好的技术-它是多播。

现在,如果您要沿TCP路由走,则有一些选择:

  • 建立位于您服务前端的负载均衡基础架构。 这意味着您的终端不连接到您的服务,而是连接到一组负载均衡器,然后再连接到您的服务。 例如,如果您有10个客户,每个客户只需要处理600个客户。 您的问题要小得多-您可以通过这种方式进行扩展。 不要忘记使用异步io。
  • 购买更好的硬件-例如solace或tervela do硬件消息代理,它们可以扩展到大量并发tcp连接-但这并不便宜。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM