我正在运行一个发布订阅设置,该设置对于单个发布者和多个订阅者来说效果很好。
但是我现在希望有多个发布者发布到同一个“频道”,当我尝试这样做时,第二次尝试绑定时,我得到一个地址已使用的错误。
为什么我不能再有一个出版商?
这是用于高吞吐量应用程序的,每秒大约250K消息,并且快速阅读xPub-xSub表示中介将增加开销。
private void BackgroundProcess()
{
int msgSeqNum = 0;
using (var server = new PublisherSocket())
{
server.Options.SendHighWatermark = 1000;
server.Bind(Connection);
var address = Key;
string txt;
while (true)
{
if (O.TryTake(out txt, 60000))
{
msgSeqNum++;
server.SendMoreFrame(address).SendMoreFrame(msgSeqNum.ToString()).SendMoreFrame(DateTime.UtcNow.ToString("yyyyMMddTHHmmssffffff")).SendFrame("Whatever");
}
}
}
}
答案 0 :(得分:0)
Netmq可以与一对一套接字集或一对多套接字集一起使用。临近时,您将需要xpub xsub起作用,因为代理netmq实际上为此提供了一个代理。
https://netmq.readthedocs.io/en/latest/xpub-xsub/
为什么,这是底层tcp层的限制,您不能将多个tcp侦听器绑定到单个端口afaik