问题标签 [axon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1526 浏览

java - Axon 消息接收但事件处理程序未调用

Axon 消息接收但未调用事件处理程序。

我正在尝试使用两个不同的队列在两侧实现事件源。我的第一个队列是测试,第二个是测试演示

我有两个单独的应用程序在同一台服务器上运行。

  1. 用户管理
  2. 钱包管理

我已经实现了从用户管理到钱包管理的事件溯源。它工作正常。

现在我正在尝试对 UserManagement 实施钱包管理,这意味着当我将从钱包管理 (Producer) 和 (Consume) 用户管理应用程序发布事件时。因此接收到事件但未调用事件处理程序。

以下是我的应用程序代码。请帮我弄清楚我会错过什么。

我的 Axon 配置类

WalletCreatedEvent 类

事件处理程序类

以下是我的 application.yml 文件属性

以下是我收到显示事件的日志数据。

0 投票
2 回答
1538 浏览

java - 从不在 Axon 中工作的事件处理程序发布新事件

我有两个单独的应用程序在同一台服务器上运行。

  1. 用户管理
  2. 钱包管理

我已经实现了从用户管理到钱包管理的事件溯源。它工作正常。

但是,当我从钱包管理应用程序中存在的事件处理程序发布新事件时,我将收到以下错误消息日志。

这是我的日志详细信息

事件处理程序类

聚合类

命令类

事件类

谢谢

0 投票
1 回答
406 浏览

cqrs - 删除聚合后处理异常的正确方法

使用方法 markDeleted() 删除聚合后,使用相同聚合标识符处理请求的正确方法是什么?

markDeleted() 方法将标记和聚合标记为已删除,然后当使用相同的聚合标识符尝试创建事件时,将引发异常。

这只是尝试/捕获的情况吗?

如果我需要更清楚,请告诉我。

提前致谢,

PS)嗨阿拉德!:)

0 投票
3 回答
313 浏览

event-sourcing - 来自 AxonDB 事件存储的事件未到达我的 TrackingEventProcessor

我目前正在尝试从 AxonDB 事件存储中读取所有事件并将它们导出到 CSV 文件。选择的方法是在附加到 AxonDB 服务器的 Spring Boot 应用程序中创建一个 EventHandler。将 TrackingEventProcessor 与 InMemoryTokenStore(默认)一起使用,我希望每次启动这个小应用程序时都从事件存储中读取所有事件。

不幸的是,我没有在我的 TrackingEventProcessor 中收到来自 AxonDB 客户端的事件,这让我困惑了几个小时。我走进了野兽的肚子,看到了以下行为,我想讨论一下:

  • 首先,我使用的是原始应用程序(填充事件存储)也使用的所有相同版本:
    • 轴突数据库 1.3
    • axonDB 客户端 1.3
    • 轴突框架 3.2.1
  • 应用通过 gRPC 成功连接到 AxonDB
  • AxonDBEventStore 读取一堆事件
    • 2018-08-16 13:56:49.337 DEBUG 27781 --- [ault-executor-0] i.a.axondb.client.axon.AxonDBEventStore : Received event with token: 17742ETC
  • 我的 TrackingEventProcessor 以 Segment[0/0] 开始,这对我来说似乎是正确的,因为我使用了 InMemoryTokenStore
    • 2018-08-16 14:18:50.190 INFO 30006 --- [t-projection]-0] o.a.e.TrackingEventProcessor : Fetched token: null for segment: Segment[0/0]
  • TrackingEventProcessor 开始运行并尝试传递以下语句(来自版本 3.2.1 中的源代码第 248 行):
    • if (eventStream.hasNextAvailable(1, SECONDS))
    • 上面的检查总是返回'false',因为eventStream(来自AxonDB客户端的EventBuffer)的实现总是没有结果。

我已经咬了一段时间的灰尘,并认为我已经走到了死胡同。我没有收到任何错误消息或异常。读取事件似乎有效,通过 AxonDBEventStore 日志记录确认。但在此之后,EventBuffer 保持为空,因此我的处理器甚至无法检查它是否应该处理它所呈现的事件。因此,我想我的处理器的名称在这里不会是问题。我尝试了几个处理器名称(与事件中的数据匹配),但没有任何运气。反序列化似乎确实有效,因为我昨天在调试期间在某处发现了一个反序列化事件(虽然不记得在哪里......)。它看起来和我预期的一样。

有谁知道这里可能是什么问题?

0 投票
1 回答
1161 浏览

spring-boot - 将 eventstore 与 Axon Framework 3 和 Spring Boot 一起使用

我正在尝试实现一个简单的分布式应用程序,并且我想将所有事件保存到事件存储中。出于这个原因,正如 Axon here的“文档”中所建议的那样,我想使用 Mysql 作为事件存储。

由于我对 Spring 没有太多经验,因此我无法理解如何使其工作。我将有两个单独的服务,一个用于命令端,一个用于查询端。由于我计划提供更多服务,因此我想知道如何将它们配置为使用外部事件存储(不存储在任何这些服务中)。

对于命令和事件的分发,我使用的是 RabbitMQ:

这会在本地运行的 RabbitMQ 实例上创建所需的队列(使用默认用户名和密码)。

我的问题是:如何配置 Axon 以使用 mysql 作为事件存储?

0 投票
1 回答
185 浏览

cqrs - 轴突重试测试

我正在使用 Axon 框架编写一个系统。我的一个事件处理程序将命令发布到不同的微服务,并且我已经实现了带有指数退避的重试功能,以处理其他服务不可用的情况。

如果我在监视日志等时手动关闭接收微服务,我可以看到这个工作,但是有没有更正式的方法来自动化这个测试?

0 投票
1 回答
92 浏览

rabbitmq - 从 Axon 3.3.5 上的 RabbitMQ 队列读取事件的问题

使用 Axon 3.3.5,我正在尝试从 AMQP 队列中读取事件。

我调试了该onMessage方法,当有新消息进入时,eventProcessors列表始终为空,因此我的应用程序不会处理该消息。

我错过了什么?

0 投票
0 回答
742 浏览

spring-boot - axon org.axonframework.commandhandling.NoHandlerForCommandException:没有已知节点可以接受

尝试使用 Spring Cloud 实现 DistributedCommandBus 时,我间歇性地收到以下错误。我有理由相信我的聚合根类、它的命令处理程序和我的配置 bean 类的自动配置会发生某种竞争情况。

org.axonframework.commandhandling.NoHandlerForCommandException:没有已知节点可以接受。

我正在使用 Axon 版本 3.3.5。

这是我的配置类:

这是我的带有命令处理程序的聚合类:

任何帮助深表感谢。

0 投票
1 回答
1046 浏览

testing - AxonFramework:如何测试@EventHandler

我有这个组件,它通过 RabbitMQ 队列与其他服务集成:

我应该如何测试这个?

0 投票
1 回答
884 浏览

spring-boot - 没有处理程序订阅命令。轴突 3.3

我正在尝试通过教程创建基本的 Axon/Spring 应用程序,但遇到了奇怪的错误,例如:NoHandlerForCommandException: No handler was subscribed to command。Axon 好像看不到@CommandHandler 注解。

这是我的文件:

总计的

事件

命令

春季启动配置

这就是我发送 cmd 的方式

我的 build.gradle