1

我正在从我的 10G 网络上的各个地方发送消息。我正在使用发布/订阅模式。

我发送的消息使用 zeroFormatter 进行序列化,长度约为 270 字节。

一旦我开始每秒发送超过 150K 的消息,我注意到订阅者开始错过消息。

我如何计算出我可以发送的限制是多少?

编辑1:

我发送的速度不到 10 亿比特/秒,这是我网络容量的十分之一。在此之后,我开始错过消息。这会是由于CPU问题吗?发送者或接收者似乎都没有被高度利用......

   private void BackgroundProcess()
    {
        int msgSeqNum = 0;
        using (var server = new PublisherSocket())
        {
            server.Options.SendHighWatermark = 1000;
            server.Bind(Connection);


            var address = Key;
            FastTickData fastTickData;
            while (true)
            {

                if (O.TryTake(out fastTickData, 60000))
                {
                    msgSeqNum++;
                    server.SendMoreFrame(address).SendMoreFrame(msgSeqNum.ToString()).SendMoreFrame(DateTime.UtcNow.ToString("yyyyMMddTHHmmssffffff")).SendFrame(ZeroFormatterSerializer.Serialize(fastTickData));
                }

            }

        }
    }
4

0 回答 0