我正在从我的 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));
}
}
}
}