对不起我的基本问题,但我在Google搜索中找不到答案。
我想开发一个应该响应数百个客户端的服务器。每个客户端可以每秒发送数十到数百条消息。
我想知道我是否使用排队协议,如AMQP(RabbitMQ实现)或ZeroMQ,服务器应支持多少TCP连接?
是客户端总数还是每秒邮件总数?
答案 0 :(得分:0)
Nota Bene:ZeroMQ绝对不是“排队”协议。人们应该认为它是一个强大的低级构建块[原语]框架,使设计人员能够设置非常快速且相当抽象的行为导向设计,用于从Messaging 本身到高级用例。一个健壮的,非阻塞的,异步的,分布式系统并发信令和与内容相关的传输+控制。确实是一套强大的工具,相信我。
AMQP 是基于经纪人的方法
ZeroMQ 是无经纪人解决方案
邮件计数本身通常不会产生问题。
他们的相关处理通常会这样做。
限制No.1:操作系统TCP设置约束
解决方案:根据需要,在操作系统级别查看系统文档,了解其中的限制以及设置/调整值。
限制No.2:增长终点的进程延迟也会增加RECV / SEND缓冲区溢出的风险。
解决方案:检查您的代码架构是否可以提高事务性能(通过分布式管道处理或负载均衡器来分配传入连接/事务流)到多个目标工人单位。)