【发布时间】:2017-07-21 09:01:01
【问题描述】:
我目前在服务器端的工作设置是这样的——我有一个经理(带有轮询器)等待传入的工作请求。一旦收到某些内容,它就会为该作业创建工作人员(具有单独的轮询器和单独的端口/套接字),然后工作人员直接与客户端通信。
我观察到,当任何工作人员的流量过大时,它会在一定程度上禁用管理器 -- ReceiveReady 事件会被触发,并有很大的延迟。
NetMQ documentation 声明“使用轮询器接收消息比直接在套接字上调用 Receive 方法要慢。当每秒处理数千条或更多消息时,轮询器可能成为瓶颈。”我远远低于这个限制(比如连续 100 条消息),但我想知道在单个程序中拥有多个轮询器是否不会进一步降低性能。
我更喜欢单独的实例,因为代码更简洁(关注点分离),但也许我违背了 ZeroMQ 的原则? 问题是——在单个程序性能中使用多个轮询器是否明智?或者反过来——多个轮询器是否故意让彼此挨饿?
【问题讨论】: