当前位置: 首页 > 知识库问答 >
问题:

Axon框架-从非聚合(eventGateway)启动saga

西门高歌
2023-03-14
    @Component
    @ProcessingGroup("OrderProcessor")
    public class OrderEventHandler {
        @Inject
        private EventGateway eventGateway;
        public void createOrder() {
            OrderCreatedEvent orderCreatedEvent = new OrderCreatedEvent("orderId",
                100,
                "CREATED");
            eventGateway.publish(orderCreatedEvent);
        }
@Repository
 public interface SagaViewRepository extends CassandraRepository<SagaView, String> {
}
public CassandraSagaStore sagaStoreStore() {
    return  CassandraSagaStore(...);
}
    @Saga(sagaStore = "sagaStoreStore")
    public class OrderManagementSaga {

        @Inject
        private transient CommandGateway commandGateway;

        @StartSaga
        @SagaEventHandler(associationProperty = "orderId")
        public void handle(OrderCreatedEvent orderCreatedEvent){
            //Saga invoked;
        }

中的任何提示都非常感谢,谢谢。

共有1个答案

高锦
2023-03-14

几乎在任何项目中,我都不会立即选择微服务路线。如果您采用这种方法,这意味着您将被困在基础设施工作中,比如如何将消息从一个服务发送到另一个服务,而不是提供业务功能。

这并不意味着我不会在您的应用程序中使用消息传递。正是命令、事件和查询的用法允许您将消息总线的距离更改为任意长度。

不管怎样,这更像是一个建议,而不是对你问题的回答。老实说,我不确定你在找什么。您已经声明您正在使用Cassandra(顺便说一句,Axon在任何方式都不支持)和Kafka。这使得Kafka是在服务之间发布事件的方法,对吗?例如,这就是Axon提供Kafka扩展的目的。

 类似资料:
  • 我不熟悉Spring和Mongo。我正在使用Spring Batch获取一些报告。我的查询需要一些MongoItemReader不支持的聚合,所以我根据下面的stackoverflow链接扩展了该类。 如何在Spring批处理中使用MongoItemReader聚合查询 但我的聚合有点问题。我制作的聚合在mongoDB中运行良好,但无法将其转换为Spring mongo聚合。 MongoDb聚合按

  • 使用axon框架我有一个错误: 应用事件后,聚合标识符必须是非空的。确保在处理创建事件时最迟初始化了聚合标识符。我使用这个StorageEngine:

  • 异常处理表示“将只处理从同一个类中的消息处理函数引发的异常” 消息拦截文档说:“用注释的函数将被视为处理程序拦截器,只有在异常结果时才会调用该函数。例如,为此目的使用注释函数允许您作为引发的数据库/服务异常的结果引发更特定于域的异常。” 但我不能让它起作用。我尝试添加异常处理程序,如下所示: 但不调用此方法。我尝试将异常处理程序方法放在聚合和单独的命令处理程序类上,尝试添加,并尝试捕获其他类型的异

  • 是否可以在$match中执行OR? 我的意思是这样的:

  • 我试图使用Axon 4.1+中的在一个2 JVM node K8集群上重播事件。虽然我将它设置为清理事件,但它只从一个节点中提取事件,而另一个节点继续运行,因为它的跟踪事件仍然是活动的。 我如何在所有JVM上同时禁用它,以便它能够正确地重播?然后启用所有这些命令,继续处理命令。 我尝试通过这段代码增加线程,这导致了另一个问题,即现有的令牌在InitialSemgmentsCount中永远不会增加,

  • 任何关于如何实现这一点的指示和/或文件都将不胜感激。