0

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

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

我可以拆分我@CommandHandler的 s 以将它们用于不同的服务吗?

4

1 回答 1

1

是的,这绝对是可能的@Stephan。假设您在 Spring Boot 环境中,您唯一需要做的就是为DistributedCommandBus您想要的类型(例如 SpringCloud 或 JGroups)设置正确的依赖项并将axon.distributed.enabled属性设置为true.

该框架将自动搜索所有带@CommandHandler注释的函数。如果您的应用程序仍然声明它找不到“期望命令的节点”,那么在连接过程中出现了故障。

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

无论如何,您的问题的简单答案是:是的,您可以@CommandHandler在不同的服务中拥有带注释的功能。

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

于 2018-06-18T15:14:36.660 回答