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

Issues reading events from RabbitMQ queue on Axon 3.3.5

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

/**
 * AMQP subscribing
 */

@Bean
SpringAMQPMessageSource notificationsEventsQueue(Serializer serializer) {
    return new SpringAMQPMessageSource(serializer) {

        @Override
        @Transactional
        @RabbitListener(id = "eventsQueue", queues = "notificationsEventsQueue")
        public void onMessage(Message message, Channel channel) {
            super.onMessage(message, channel);
        }

    };
}

@Autowired
public void configure(EventProcessingConfiguration conf, SpringAMQPMessageSource src) {
    conf.registerSubscribingEventProcessor("notificationsServiceEventProcessor", c -> src);
}

我调试了 onMessage 方法,当收到新消息时,eventProcessors 列表始终为空,因此我的应用程序未处理该消息。

我错过了什么?

事件处理程序默认从事件总线接收事件。如果您希望处理程序从另一个源(例如 RabbitMQ)接收事件,则需要将该源显式分配给处理器,并将该处理程序也分配给该处理器。 最简单的方法是将 @ProcessingGroup('notificationsServiceEventProcessor') 放在事件处理程序 class 上。