发布/订阅 消息顺序

当使用 pub/sub API的时候,你需要做一个决定:那就是对于来自同一个连接的消息是应该按顺序处理还是应该并行处理。

按顺序处理意味着你不需要关心线程安全,并且保持了事件的顺序;消息会以完全相同的顺序接收处理(通过队列),因此,这意味着消息能够被相互延迟。

另外一种选择是并发处理。使用并发处理 不能保证 工作处理的有序性,并且你的代码要对并行消息完全负责确保它不会破坏内部状态;使得处理速度更快并且扩展性伸缩性更好。如果消息是互不相干的,那么选择这种方式处理是特别好的。

为了安全,默认是 有序处理;但是,强烈建议你尽可能的使用并发处理。示例如下:

  1. multiplexer.PreserveAsyncOrder = false;

这不是一个配置选项的原因是:这样做是否合理,这完全取决于你的订阅消息的代码。