问题标签 [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 投票
2 回答
376 浏览

java - Route all events from CommandGateway to single event handler

I am implementing JGroups with AxonFramework and I am referring to this link. I made some changes in the code and running the project without Docker. Following is my code -

Main Class -

Primary Node -

Seconday Node -

Item -

Now my problem is, when I run main class, primary node produces 5 events but the secondary node is not getting all the events. It may get 2 or 3 or 4 events but not all. I want all of the events to be delivered to the secondary node. I am very new to AxonFramework and JGroups. Please help me understand what is the problem here.

0 投票
2 回答
699 浏览

java - Autowired 为 bean 提供 null

我正在使用带有 Spring Boot 的 Axon 框架。在我的事件处理程序中自动装配类时遇到问题。在事件处理程序中自动装配的 bean 之一始终为空。我的事件处理程序类看起来像这样 -

并且 QueueMessageProducer 类如下 -

主要课程——

但 QueueMessageProducer 在 CustomerAddEventHandler 类中始终为空。请帮忙。

更新

堆栈跟踪如下 -

0 投票
1 回答
565 浏览

java - 使用 Axonframework 基于特定事件从 domainevententry 表中检索数据

我正在构建一个 Web 应用程序,我需要在其中跟踪一些事件,例如 sms 发送、传递或失败。为此,我想使用 Axonframework 。我已经在官方网站和这个网站上关注了 axonframework 教程

但我没有找到任何解决方案来从 Axon 本身创建的 daomainevententry 表中获取事件。我正在使用 Java 语言、Spring 框架和 MySql 数据库来完成我的应用程序的开发。

请告诉我任何好的教程或解决方案。

0 投票
1 回答
593 浏览

java - 在 Axon 中处理重要的命令和事件有效负载

每当我查看Axon Bank时,我开始想知道我是否应该遵循一组事件和命令的设计规则。

在 Axon Bank 中,事件和命令都完全由原语组成。在我的应用程序中,我倾向于尽可能避免使用原始用法,主要是为了构建一个富有表现力的域并在我能得到它的任何地方都具有类型安全性。

Axon 本身带有一些 DDD 引用,但无论我浏览哪些文档,没有一个示例使用复合对象作为事件/命令有效负载的一部分。

这让我很困惑。内置对完整的 xml 和 json 序列化的支持,而不仅仅是拥有一些键值对。

我知道,特别是事件往往是小而简单的结构,因为它们只反映增量状态变化,但复杂的域模型和事件(条目)之间总会存在某种差距。


在我的域中,我可以有一堆类,如OverdraftLimit,和.CurrentBalanceDepositAccountIdentifier

现在有两种可能的方式来设计事件和命令:

1. 基元和广泛转换

  • 将事件视为带有漂亮标签的原始数据
  • 一旦原始数据“进入”应用程序,就将其转换为强大的对象
  • 创建事件时,只需再次剥离它们。

    在其他地方:

    /li>

优点:

  • 没有任何奇怪依赖的简单命令/事件 API
  • 使分发更容易
  • 仅当实际事件结构发生变化时才需要向上转换者,因此可以轻松预测。

缺点:

  • 需要编写和维护一个巨大的转换层
  • 主要出于技术原因将事件/命令和域模型的其余部分解耦引入了一个新的、人为的、上下文的差距

2. 富有表现力的有效载荷

  • 直接使用复杂类型作为属性

    /li>

优点:

  • 少写,更容易阅读
  • 把自然属于一起的东西放在一起

缺点:

  • 领域逻辑间接影响事件结构,向上转型将需要更频繁且更难以预测。

我需要第二个意见。有推荐的方法吗?

0 投票
1 回答
801 浏览

axon - 我可以在 axonframework 中同时使用标准存储库和事件源存储库吗?

我开发了几个电子商务网站,最近注意到了 axonframework。我正在考虑如何使用 axonframework 实现一个新的电子商务网站。

我的意思是简单地使用标准存储库来持久化聚合(在我们的例子中,它们是订单),但我们还需要订单历史记录来进行审查。我想知道我们是否可以使用事件源存储库来持久化订单上的所有事件以实现订单历史记录。

问题:

  1. 我可以在 axonframework 中同时使用标准存储库和事件源存储库吗?
  2. 如果我可以同时使用标准存储库和事件源存储库,axonframework 如何按标识符加载聚合,它是由标准存储库还是事件源存储库完成的?
  3. 任何建议表示赞赏。

提前致谢。

0 投票
1 回答
585 浏览

spring-boot - axon 3 通过 rabbitmq 分离命令和查询服务:json vs. xml

我正在研究一个场景,其中命令和查询服务是分离的节点(弹簧启动)。我将 RabbitTemplate 配置为使用 Jackson 进行 JSON 序列化:

这有效,当我将命令发送到命令服务时,我可以在 RabbitMQ 队列中检查正确的 JSON 格式。

我的聚合接收命令并触发事件,这些都正确存储在 mysql-eventstore 中。在这里,事件采用 xml 格式。

现在是棘手的部分。我使用 axon-springboot 通过属性再次将事件发送到兔子队列:

同样,这可行,我可以检查队列并查看事件(以 xml 格式)。

在队列服务上,我想接收事件并在内存中生成 h2 表示......我使用:

如文档中所述。

但是,当我看到“接收事件”日志时,我得到了一个

警告并且我的 h2-repository-service 永远不会被调用。

我担心我为rabbit配置的json转换器和axon中的xml事件处理会干扰......还是我走错了路?如何通过rabbit正确分离命令和查询服务,eventProcessor名称有什么用?我使用了处理事件流的spring bean的bean名称......

0 投票
2 回答
381 浏览

spring - 从轴突聚合调用第三方服务是个好主意吗

我有一个轴突聚集体。它处理命令并且在应用事件之前必须调用第三方服务来验证一些参数,根据这个验证我是否应用事件。这是好习惯吗?或者我在发送命令之前进行了验证?

0 投票
1 回答
1472 浏览

java - 是否可以通过带有 Axon 3 的 RabbitMQ 重播事件

我有一个使用框架Axon 3构建的应用程序。

  • 有2个实例(jvm)
  • 第一个处理命令并通过 RabbitMQ 通知第二个构建读取模型数据库。
  • 此应用程序有一个事件存储(MongoDB)

现在我想构建第三个实例,是否可以通过 RabbitMQ 重播第一个实例的所有历史事件以构造第三个实例的初始状态?以及如何配置它?

我尝试使用文档 Axons来寻求答案,似乎我应该使用TrackingEventProcessor而不是默认的SubscribingEventProcessor,但它不允许与 SpringAMQPMessageSource 一起使用(在文档中提到)

0 投票
1 回答
490 浏览

axon - 在 axon 3.x 中进行显式回放

我最近一直在尝试轴突并阅读了很多东西。据我了解,事件溯源的概念是说系统状态是从事件存储中重建的,而 CQRS 更新可以用命令端查询的视图模型是不可查询的。

  1. 每次 UI 请求某些信息时,我都会自己实现状态的重建。我已经实现了事件处理器并看到了它的重放能力。但是,我似乎找不到任何证据表明轴突允许根据用户需求触发重播。因此,我在这里询问是否可以亲自触发重播以构建 UI 所需的 DAO,或者 axon 仅支持 CQRS 方式。

  2. 当轴突进行重播时(当令牌被删除时),它是从快照表中读取(如果已实现),然后从事件表中读取,还是总是从时间的开头开始?

0 投票
1 回答
1194 浏览

java - 轴突测试:缺少上下文

在 Axon-SpringBoot 应用程序中,我有一个在其某些命令处理程序中使用注入 DAO 的聚合。

例如:

像这样的标准测试

失败:

如何提供测试实现?