【问题标题】:Using Axon for CQRS and event sourcing. Aggregate not found in event store使用 Axon 进行 CQRS 和事件溯源。在事件存储中找不到聚合
【发布时间】:2020-05-18 09:48:35
【问题描述】:

我是 Axon 的新手,并编写了一个示例代码,其中我们有一个库存服务,用于添加新库存、更新库存,我们希望向产品服务发送事件以进行任何更新。产品服务应充当 Inventory Service 的只读副本。

库存服务代码:

所以我创建了各种命令处理程序的 Inventory Aggregate。

负责发送命令的库存控制器

在产品服务中,我添加了事件处理程序

我目前面临的问题是,当我添加新库存时,它会反映在产品服务数据库中,但是当我尝试进行更新时,它给了我一个例外: Command 'com.example.demo.command.UpdateInventoryCommand' 导致 org.axonframework.commandhandling.CommandExecutionException(在事件存储中找不到聚合) org.axonframework.axonserver.connector.command.AxonServerRemoteCommandHandlingException:远程消息处理组件抛出异常:在事件存储中找不到聚合

当我尝试在库存中再插入一个时,库存服务抛出异常说:

:“OUT_OF_RANGE:[AXONIQ-2000] 聚合 0 的无效序列号 0,预期为 1”,远程消息处理组件抛出异常:OUT_OF_RANGE:[AXONIQ-2000] 无效序列聚合 0 的编号 0,预期 1 由 OUT_OF_RANGE 引起:[AXONIQ-2000] 聚合 0 的无效序列号 0,预期 1

任何帮助将不胜感激。 完整代码见:

https://github.com/jahanvibansal/Axon-ProductService

https://github.com/jahanvibansal/Axon-InventoryOrderService

【问题讨论】:

  • 我不认为这是代码问题@PayalBansal,而是更多关于您如何运行和配置 Axon Server 的问题。请更新您的工单,详细说明您的项目是如何启动的、Axon 服务器是如何启动的,以及您是否正在为事件存储方面配置任何细节。
  • 是的,我在那之前启动了我的轴突服务器。但是我没有对事件存储方面进行任何配置。我意识到我们需要在 Spring Boot 应用程序中指定 axon.eventhandling.processors.name.mode=tracking 属性才能使其正常工作。我知道有 2 种模式跟踪和发布订阅。我会阅读更多关于它的信息。
  • Aaaah 错过了一点配置。太好了,您自己解决了@PayalBansal!确保将您的回复标记为未来寻求答案的人的答案:-)

标签: axon


【解决方案1】:

。我意识到我们需要在 Spring Boot 应用程序中指定 axon.eventhandling.processors.name.mode=tracking 属性才能使其正常工作。我知道有 2 种模式跟踪和发布订阅。我会阅读更多关于它的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 2019-01-31
    • 2020-03-20
    • 2011-03-07
    • 2020-07-12
    • 2018-02-19
    • 2018-11-15
    相关资源
    最近更新 更多