我想我可以在这方面提供一些指导.
此时,Axon Server不提供TrackingEventProcessor的跟踪令牌之间的协调.
因此,这部分的协调完全在您的应用程序环境中,或者与Axon Server客户端不同.
最实用的方法是在两个应用程序之间共享TokenStore的基础存储解决方案.因此您对此部分的假设是正确的.
TokenStore的当前实现确实是基于数据库的-尽管这都是开源的并且可以自由调整,但是没有什么能阻止您提出分布式解决方案.
我不完全遵循您的假设建议:
Does this then also mean that if I would hypothetically want to replicate a projection model for performance reasons (e.g: database server in the US and another one in the EU), this would not work properly?
好吧,这可以正常工作,但是我认为给定TrackingEventProcessor的分段(即TrackingToken)不是该部分的方法.
该解决方案旨在分担更新单个查询模型的工作量.
顺便说一句,这种情况下的“工作量”是事件流.
如果您想通过读取事件流来复制给定的查询模型,我确实建议您使用第二个TrackingEventProcessor,其下面具有相同的事件处理组件.
请注意,这不要求您“复制代码库”.
您只需要将两个事件处理组件注册到两个不同的TrackingEventProcessor.
如果您使用Spring Boot作为配置,则通常会将所有这些内容从您那里抽象出来.但是,如果您查看EventProcessingConfigurer,您应该能够找到描述如何实现此目标的公平API.如果该领域的事情还不清楚,我建议您引入一个不同的问题,因为该主题与原始问题有所不同.
希望这足以让您继续@MatthiasVanEeghem!