我正在尝试为N个前端服务器和M个后端工作人员设计 ZeroMQ 架构,其中前端服务器会将任务发送到后端服务器。前端服务器确实有后端服务器的信息,但后端服务器不知道前端的信息。我有两种类型的任务,一种类型应该使用循环并只去一个后端服务器,而另一种类型应该广播到所有后端服务器。我不想有一个中央经纪人,因为这将是单点故障。
对于第一种类型的任务,请求/响应模式似乎是正确的,而对于第二种类型,它将是发布者/订阅者模式。但是将两者结合起来的模式呢?如果我想向所有或仅向一个随机后端服务器发送消息,是否有任何模式可以让我在发送时进行选择?
我想出的解决方案只是使用发布者/订阅者,并在消息前面加上后端服务器 ID 和一些魔法值(如果它是针对所有人的)。但是,这会产生很多不必要的流量。有没有更清洁、更有效的方法呢?