单个流程中托管的唯一IEndpointInstances
数量是否有上限?
我考虑的设计最多可以看到100个唯一的IEndpointInstances
,所有人都在不同的队列中进行监听,同时处于活动状态。
这会导致NServiceBus出现问题吗?进程是否会死锁或启动这么多线程以致无响应且无用?
问题NServiceBus - How to get separate queue for each message type receiver subscribes to?似乎表明您不能在流程中拥有多个端点,但这是一篇较旧的帖子。我已经建立了一个针对NServiceBus 6 - beta4 的小样本,确实有效。
有一个类似的问题NServiceBus Single Process, but Multiple Input queues得出结论,基于OP的上下文使用Satellite Features是推荐的方法。 然而,在我的情况下,我有100个(功能不同的)传奇(每个队列1个),其中每个传奇可能需要接收类似的消息,但我需要确保只有正确的传奇才能收到信息。因此,我不认为实现自定义功能将符合我的要求。 或卫星功能是否支持Sagas?
答案 0 :(得分:4)
其中一个选项是使用self multi hosting。使用这种方法,您可以在同一个过程中自己使用端点。有几点需要考虑,例如:
虽然可以共同托管多少个端点没有硬限制,但100个声音听起来有点多。这样说,它还取决于这些端点上的负载有多重。如果您处理1 msg / sec或1K msg / sec,如果这是一个可行的选项,则确定很多。
查看完全相同的sample。