我正在运行一个pub-sub设置,它非常适合单个发布者和多个订阅者。
但是我现在希望有多个发布者发布到同一个“通道”,当我尝试这样做时,当我第二次尝试绑定时,我得到了一个地址已经使用的错误。
为什么我不能有第二个出版商?
这适用于高吞吐量的应用程序,大约每秒25万条消息,快速读取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");
}
}
}
}
发布于 2018-11-02 01:17:45
Netmq可以与一对一套接字组或一对多套接字组一起工作。你已经接近了,你需要xpub xsub作为一个代理,netmq实际上为这个目的提供了一个代理。
https://netmq.readthedocs.io/en/latest/xpub-xsub/
至于原因,这是底层tcp层的限制,您不能将多个tcp侦听器绑定到单个端口afaik
https://stackoverflow.com/questions/53105453
复制相似问题