我使用PUSH套接字向通過PULL接收的工作人員發送消息,因此消息在工作人員中均勻分佈。不過,我想用一些工作人員來處理特定的消息。在PUSH/PULL方法中,每個工人都沒有特別的待遇,他們都是平等的。我雖然使用PUB/SUB,但由於過濾器,但沒有辦法自動分發給工人。如果一組工人要處理消息A,他們都會收到。這不好。是否可以用PUB/SUB來拉一個ZeroMQ PUSH套接字但使用過濾器?
完美的方法是對於一組工人能夠只對他們提供PULL消息,而對B設置B PULL消息。例如,我可以爲A組和另一個組設置一個端口,集合B,但是對於單個套接字來說,這種解決方案會非常優雅,我也沒有看到開發人員無法完成的原因。
有沒有辦法用現有的ZeroMQ版本來做?
其基本思想是:只需一個PULL,它可以發送封裝的消息(就像在PUB中一樣),工作人員可以用這個信封拉PULL消息。看到工作人員可以拉出每條信息,看看它是否適合他們,但這需要額外的處理和重播廣播收到的信息,以免丟棄。