我对ZMQ中1-n和多线程的概念效率感兴趣。ZMQ 1-n排队vs多线程
让我给一个conseptual问题开始:
我有20个客户端和一台服务器。 (我会使用推拉式套接字,但如果答案随代表,请求,经销商,路由器而改变,我会感兴趣)。
如果客户端有推送套接字和服务器拉,那么所有的消息进入服务器上的单拉。 ZMQ将推送消息公平地排队到服务器,并且上下文可以被赋予用于要使用的线程数目的初始化参数。
但是引擎盖下发生了什么?它轮询它们之间的输入或多线程通信。自己多线程会获得任何性能优势吗?
我可以看到三种方式使上述系统(20个客户端一台服务器)。
1)在服务器上使用一个拉式套接字并按下每个客户端。
2)在服务器上使用20个拉套接字,使用zmq poll来选择具有活动的套接字。客户端仍然都有一个推送套接字。
3)在服务器上使用20个自己的线程(例如20个线程)。客户有相同的20个推动插座(每个1个)。
我明白,不使用选项1即时通讯失去新加入的客户端和选项2的动态性质删除公平排队,但我只是对效率感兴趣。
这是我的问题,线程的客户?或只使用zmq 1-n?
欢迎来到Stack Overflow。请花些时间阅读[The Tour](http://stackoverflow.com/tour),并参阅[帮助中心](http://stackoverflow.com/help/asking)中的资料,了解您可以在这里问。 –
在[SE软件工程](http://softwareengineering.stackexchange.com/)上,您的问题似乎更好。 –
@πάνταῥεῖ当引用其他网站时,通常很有帮助的是[交叉发布是皱眉了](http://meta.stackexchange.com/tags/cross-posting/info) – gnat