我正在尝试建立一套包含以下内容的程序:
UI是用户与系统交互的方式,服务器进行处理和编组,工作人员处理各种硬件设备。此外,任何数量的这些元素可能位于不同的平台上(C,C ++,Java,Python是目前为主要的),以及不同的物理机器。工作人员不可互换 - 服务器知道哪个人可以根据工作人员告诉自己的内容做什么。
例如,想象一下工人可以煮咖啡,就像这样:
我并不期待大量的流量 - 最糟糕的情况是每秒几百包,而且通常要少得多。每个程序中的线程都不是问题,除非通信套接字都等待响应!
我计划使用ZeroMQ来组织所有这些,并且我在服务器和工作人员之间以及UI和服务器之间有一个基本的REQ-REQ锁步。但是,当硬件设备需要很长时间才能完成所要求的内容时,这种同步特性似乎不能很好地工作。
似乎也不允许我做一些让服务器通知UI有关更改的事情,并且工作人员通知服务器他们的状态更改,而不在每个链接上设置第二个端口。
ZeroMQ(或其他MQ,甚至)是否有办法处理这种设置?