我是Axon框架的新手,我们将Axon 3.3.3与Mongo DB用作事件存储。
我们想知道使用微服务生成聚合ID的最佳选择,因为我们看到从事件存储中加载事件存在问题
示例:我们有订购服务和产品服务。
orderService生成的Order ID为101,类型为OrderAggregate,并且已将其存储到事件存储中。
如果产品服务还生成了ID为101的ProductAggregate类型。
那么我们如何从事件存储中加载特定的微服务事件
答案 0 :(得分:1)
我通常建议不要使用序列号。除了这个过程很难扩展之外,您还容易碰到重复项,并且序号的范围通常在实体类型级别。
相反,请考虑对集合使用UUID
(使用UUID.random()
)。它们可以由命令的发送者生成,从而允许将聚合的标识符用于将消息(包括创建方法)一致地路由到同一台机器。这样一来,您就可以在处理端配置缓存,并确保将所有更新发送到创建聚合的同一节点。