与多个微服务一起使用时生成轴突序列号的最佳方法是什么

时间:2019-05-31 19:06:23

标签: axon

我是Axon框架的新手,我们将Axon 3.3.3与Mongo DB用作事件存储。

我们想知道使用微服务生成聚合ID的最佳选择,因为我们看到从事件存储中加载事件存在问题

示例:我们有订购服务和产品服务。

orderService生成的Order ID为101,类型为OrderAggregate,并且已将其存储到事件存储中。

如果产品服务还生成了ID为101的ProductAggregate类型。

那么我们如何从事件存储中加载特定的微服务事件

1 个答案:

答案 0 :(得分:1)

我通常建议不要使用序列号。除了这个过程很难扩展之外,您还容易碰到重复项,并且序号的范围​​通常在实体类型级别。

相反,请考虑对集合使用UUID(使用UUID.random())。它们可以由命令的发送者生成,从而允许将聚合的标识符用于将消息(包括创建方法)一致地路由到同一台机器。这样一来,您就可以在处理端配置缓存,并确保将所有更新发送到创建聚合的同一节点。