我试图设计ZeroMQ架构N前端服务器和M后端工作者,前端服务器将发送任务到后端服务器。前端服务器确实有关于后端服务器的信息,但后端服务器不知道前端服务器。我有两种类型的任务,一种类型应该使用轮循机制,并且只转到一个后端服务器,而其他类型应该被转播到所有后端服务器。我不想有一个中央经纪人,因为这将是单点失败。ZeroMQ有选择的酒吧/分模式?
对于第一种类型的任务,请求/响应模式似乎是正确的,而第二种模式则是发布者/订户模式。但是如何组合这两者呢?如果我想将消息发送到全部或只是一个随机后端服务器,是否有任何模式可以让我在发送时选择?
我提出的解决方案只是使用发布者/订阅者,并将消息与后端服务器标识相加,并在发送给所有人时使用一些魔术值。但是,这会造成很多不必要的流量。有更干净更有效的方法吗?
你可以使用两套插座?所以每个后端都会在REP套接字和SUB套接字上侦听。 – 2012-04-13 16:56:33
@ThomasK:我认为这就是他说他现在正在做的事情。 OP想知道是否有某种模式将功能组合到单个套接字中? – jdi 2012-04-13 16:57:25
@jdi:不,他说他目前只使用一套套接字,并将后端ID放入消息中。这完全不同。 – 2012-04-13 17:00:55