我有两个独立的Spring-Boot微服务,一个是命令端另一个是查询端,其中Mongodb中的命令服务存储事件并将事件放入RabbitMQ然后查询端将订阅队列和构建查询Modal.Now如何实现重放事件并构建查询Axon模态?是否有可能两个服务独立于不同的节点运行。如果不可能那么我应该遵循什么来实现它。
如果您选择使用RabbitMQ来分发事件,您必须使用带有Subscribing Event Processors
的Axon 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来分发事件。它们支持跟踪处理器(以及自动回复选项)。
你可以在这里找到一些例子:
...是的,您的Command端可以独立于Query端(投影)进行部署。通过回复过去的所有事件,可以从头开始重新创建查询方。这将启用蓝绿色部署(投影数据库模式更改)。
最好,伊万