如何使用Axon在不同的微服务中使用不同的命令?

时间:2018-06-15 15:50:12

标签: event-sourcing axon

我有2种不同的微服务 todo-service validation-service 以及命令类型CreateTodoCommandValidateTodoCommand

如果我在一个服务中有一个命令处理程序而另一个服务中有另一个命令处理程序,则在发送服务不知道的命令时会收到No node known to accept异常。

我可以将@CommandHandler拆分为不同的服务吗?

1 个答案:

答案 0 :(得分:1)

是的,这绝对是可能的@Stephan。 假设您处于Spring Boot环境中,您唯一需要做的就是为所需的DistributedCommandBus类型设置正确的依赖关系(因此为SpringCloud或JGroups),并将axon.distributed.enabled属性设置为{ {1}}。

框架将自动搜索所有true带注释的函数。如果您的应用程序仍然指出它找不到'期望命令的节点',那么在布线过程中会出现问题。

或者说更简单,我可以想到两个原因: 1)您的@CommandHandler注释函数未注册到@CommandHandler。 2)节点之间不共享消息处理信息。

如何,对您的问题的简单回答是:是的,您可以在不同的服务中使用DistributedCommandBus注释函数。

为什么它不起作用,是不同的。