让我们首先说我正在使用 Axon Framework 3.1.2 版本,并为@EventHandlers
Sagas 和 Sagas 启用了跟踪事件处理器。
正如我所见,为 Sagas 创建事件处理器的当前默认行为是为单个 Saga 创建单个跟踪事件处理器。这在微服务规模上运行良好,但在可能实现大量 Sagas 的大型单体应用程序中可能会成为问题。由于我正在编写这样的应用程序,我希望更好地控制正在运行的线程数量,这反过来又能让我更好地控制数据库连接池的使用、上下文切换和内存使用。理想情况下,我希望拥有与 CPU 内核一样多的跟踪事件处理器,其中每个事件处理器执行多个 saga 和/或@EventHandlers
.
我已经认为我可以@EventHandlers
通过@ProcessingGroup
注释或EventHandlingConfiguration::assignHandlersMatching
方法来做到这一点,但SagaConfiguration
似乎没有公开类似的 API。事实上,最具体的SagaConfiguration::trackingSagaManager
方法是硬编码来创建一个新TrackingEventProcessor
对象,这让我觉得我现在想要实现的目标是不可能的。所以这是我的问题:是否有一些我遗漏的非直接方式可以让我在单个事件处理器的上下文中执行多个 Sagas?