NetMQ多个发布者

时间:2018-11-01 16:29:55

标签: c# zeromq netmq

我正在运行一个发布订阅设置,该设置对于单个发布者和多个订阅者来说效果很好。

但是我现在希望有多个发布者发布到同一个“频道”,当我尝试这样做时,第二次尝试绑定时,我得到一个地址已使用的错误。

为什么我不能再有一个出版商?

这是用于高吞吐量应用程序的,每秒大约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");
                }

            }

        }
    }

1 个答案:

答案 0 :(得分:0)

Netmq可以与一对一套接字集或一对多套接字集一起使用。临近时,您将需要xpub xsub起作用,因为代理netmq实际上为此提供了一个代理。

https://netmq.readthedocs.io/en/latest/xpub-xsub/

为什么,这是底层tcp层的限制,您不能将多个tcp侦听器绑定到单个端口afaik