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

时间:2018-09-11 16:43:42

标签: rabbitmq amqp axon

使用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列表始终为空,因此我的应用程序未处理该消息。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

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