我有两个独立的Spring-Boot微服务,一个是命令端,另一个是查询端,命令服务将事件存储在Mongodb中并将事件放到RabbitMQ中,然后查询端将订阅队列并构建查询模态。现在如何实现重播事件并在Axon中建立查询模态?两种服务都可以在不同节点上独立运行吗?如果不可能的话,我应该怎么做才能做到这一点。
答案 0 :(得分:2)
如果您选择使用RabbitMQ分发事件,则必须使用Axon Subscribing Event Processors
,其中SubscribableMessageSource
作为来源-https://docs.axoniq.io/reference-guide/extensions/spring-amqp#reading-events-from-an-amqp-queue
仅Tracking Event Processor
支持事件重播-https://docs.axoniq.io/reference-guide/configuring-infrastructure-components/event-processing/event-processors#replaying-events
考虑使用Axon Server或Kafka分发事件。它们支持跟踪处理器(以及自动答复选项)。
您可以在此处找到一些示例:
...并且是的,可以独立于查询端(投影)部署命令端。通过答复过去的所有事件,可以从头开始重新创建查询方。这将启用蓝绿色部署(更改投影数据库架构)。
最好, 伊万