【发布时间】:2015-09-06 04:46:03
【问题描述】:
请原谅我的基本问题,但我在 Google 搜索中没有找到答案。
我想开发一个可以响应数百个客户端的服务器。每个客户端每秒可能发送数十到数百条消息。
我想知道如果我使用 AMQP(RabbitMQ 实现)或 ZeroMQ 等队列协议,服务器应该支持多少个 TCP 连接?
是客户端总数还是每秒消息总数?
【问题讨论】:
标签: tcp message-queue zeromq amqp
请原谅我的基本问题,但我在 Google 搜索中没有找到答案。
我想开发一个可以响应数百个客户端的服务器。每个客户端每秒可能发送数十到数百条消息。
我想知道如果我使用 AMQP(RabbitMQ 实现)或 ZeroMQ 等队列协议,服务器应该支持多少个 TCP 连接?
是客户端总数还是每秒消息总数?
【问题讨论】:
标签: tcp message-queue zeromq amqp
注意事项:ZeroMQ 绝对不是“排队”协议。人们宁愿认为它是一个强大的低级构建块 [原语] 框架,它使设计人员能够为从消息传递本身到高级用例设置非常快速且相当抽象的面向行为的设计一个健壮的、非阻塞的、异步的、分布式的系统并发信号和内容相关的传输+控制。确实是一套强大的工具,相信我。
AMQP 是一种基于代理的方法
ZeroMQ 是无代理解决方案
消息计数本身通常不会造成问题。
它们的相关处理通常会这样做。
限制 1: 操作系统 TCP 设置限制
解决方案:查看您的系统文档,了解在操作系统级别上的工作限制和设置/调整值(视情况而定)。
限制 2: 增加端点的进程延迟也会增加 RECV/SEND 缓冲区溢出的风险。
解决方案:检查您的代码架构是否可以提高事务性能(无论是通过分布式管道处理还是通过负载平衡器来分配传入连接/事务的流量到多个目标工作单元)。
【讨论】: