This page描述了如何使用Azure Service Bus中的会话将来自同一源的消息分组到相同的接收者中。
在无会话队列处理器中,我可以控制并行获取的消息数量:
new OnMessageOptions { MaxConcurrentCalls = 10 };
如果我通过这些选项,将同时处理不超过10条消息。
现在,对于session-ful处理器,选项被替换为
new SessionHandlerOptions { MaxConcurrentSessions = 10 };
同时具有不超过10个会话的不同含义。
我的会话相对来说比较长,而且大部分都是空闲的,所以我必须将此参数设置为高值。但是,我仍然想限制并行消息的数量。
开箱即可吗?
如果我将MaxConcurrentSessions
设置为int.MaxValue
,那么并行化的实际限制是什么?
答案 0 :(得分:0)
来自文档:
单个接收者进程可以轻松处理很多并发会话,尤其是当它们使用严格的异步代码编写时;使用回调模型有效地自动处理数十个并发会话。
如果您有多个长期会话:
处理很多并发会话的策略,即每个会话只偶尔接收消息,处理程序在一些空闲时间后丢弃会话,并在下一个会话到达时接受会话时再次接收处理。