本机C套接字API在accept()
上返回一个新的套接字描述符,该描述符绑定到某个远程套接字。这很好,因为我可以通过互联网创建一个线程,传递套接字并建立一个点对点,或者更好的线程到线程连接。而这正是我想要的:来自客户端的一个线程应该连接到服务器上的目标线程。因此,我不需要工作池或负载平衡甚至不同步操作。服务器线程保存历史记录。 ZeroMQ似乎很棒,但据我所知,它不会在接受时拆分套接字。
有没有办法与ZerMQ建立这样的同步线程到线程连接?
答案 0 :(得分:5)
您正在询问如何将特定解决方案(将套接字切换到线程)复制到更广泛的问题(如何编写可伸缩服务器)。
“每个插槽一个线程”设计仅在一个请求 - 回复模式中工作,例如HTTP。真正高容量的用例是用于数据分发(发布 - 订阅)或任务分发(管道)。两者都不适合一对一的模式。
当你学习一种新工具时,这是一个常见的错误,“这个工具如何做我的旧工具做的事情”,但你不会得到那样的好结果。相反,花点时间真正了解该工具的工作原理,然后利用这些知识重新思考您的问题并为他们提供最佳解决方案。
答案 1 :(得分:0)
我认为Zmq会为您处理这种多重连接;我更喜欢通过处理线程回调函数内的连接来创建线程到线程的通信,这意味着我在单独的线程中创建的主要zmq连接;这可以在线程中进行单独的连接控制。