@pashute,你关于Sagas的陈述是正确的,应该没有工作(I / O),应该充当长期业务流程的编舞者。
处理程序应该遵循 SRP单一责任原则 即使它们是I / O密集型的,它仍应保持精益。在I / O密集型操作的情况下,分配器/负载平衡器将有助于扩展负载。
那有意义吗?
在佐贺里面,一切都应该简洁快捷。
这句话没有任何意义。简洁是什么意思?你快点是什么意思?传奇将在其运行的容器的范围内尽可能快地工作。
是否应该在saga之外的NServiceBus消息处理程序完成 很快,如果有一个耗时的动作传递给a 线程完整?
除非你以这种方式构建了你的处理程序,否则不行。如果您的消息处理过程非常耗时,则除了将处理消息的处理程序实例之外,没有其他进程。
或者更好地“占用”处理程序,以及NServiceBus “知道”这条消息的使用费用很高,而且可以 相应地采取行动 - 即自动负载平衡?
运行多线程时,可以使用多个hander实例来处理消息。每个处理程序实例仍然只处理单个消息,但这可以同时发生。由于存在单个消息源(即输入队列),因此可提供所需的“负载平衡”行为。
你应该尽你所能,这样就没有生意 Saga内部的逻辑.....你应该做'成功导向'做多少 在佐贺之前尽可能验证,以便一旦进入佐贺 你期待成功
是的,传奇应该只关注长期运行过程的编排,而不是它的细节。
鉴于上述情况,我会修改我对你原来的一个问题的回答:
我认为处理程序没有特别需要快速完成。传奇的全部意义在于,如果它没有被使用,它将脱水到磁盘,所以它不像是在外部消息处理程序完成工作之前等待内存占用内存。
关于你关于负载平衡的另一个问题,我相信我的答案仍然基于我对这个问题的理解。