如何将命令、查询和事件转发到另一个Axon实例



我们正在运行Axon,并有多个服务连接到它。一切都很好,除了在开发/测试应用程序时在本地运行所有内容会导致内存和磁盘达到100%,这使得开发有点困难。因此,我想知道,是否有可能创建某种我们在本地运行的"代理"服务,将我们的一些命令、查询和事件转发到另一个在其他地方运行的Axon实例,该实例连接了真正的服务,这样我们就不必在本地运行所有服务。我希望我能在这里解释清楚。

当然是一个有趣的场景。尽管目前我们在Axon Framework中还没有一个标准的解决方案,但我可以看到一些实现它的方法,即您可以在本地处理命令/查询的一个子集,并且仍然使用Axon Server中的其他命令/查询事件存储和处理程序。

我将采用的方法是扩展AxonServerCommandBus和AxonServerQueryBus类,并覆盖命令总线中的分派操作和查询总线中的查询/stratterGather操作。这些操作可以过滤您想要在本地处理的操作(基于命令/查询名称或请求中的一些元数据(,并将消息转发到localSegment(可通过localSegement((操作访问(。

希望这能有所帮助,

Marc

最新更新