Axon4 - kafka ext: событие Query не вызывается
События на стороне команды обрабатываются, но запрос (проектор) не вызывается. Использование аксона с кафкой расширения 4.0-RC2.
Пожалуйста, проверьте ниже код ссылки.
AxonConfig
import org.springframework.context.annotation.Configuration;
@Configuration
public class AxonConfig {
}
application.yml
server:
port: 9001
spring:
application:
name: Query Application
datasource:
url: jdbc:postgresql://localhost:5441/orderdemo
username: orderdemo
password: secret
driver-class-name: org.postgresql.Driver
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQL95Dialect
jdbc:
lob:
non_contextual_creation: true
hbm2ddl.auto: update
implicit_naming_strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
physical_naming_strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
axon:
eventhandling:
processors:
query:
mode: tracking
source: kafkaMessageSource
kafka:
default-topic: axon-events
consumer:
group-id: query-group
bootstrap-servers: localhost:9092
1 ответ
Чтобы эта конфигурация работала, классы, которые содержат @EventHandler
аннотированные функции, которые вы хотите вызывать для обработки событий из Kafka, должны быть частью группы обработки query
,
Это требование следует из выбранного вами шаблона конфигурации, где "axon. Eventhandling.processors. Query" определяет группу обработки, которую вы хотите настроить. Чтобы указать группу обработки, я думаю, что самый простой подход - это добавить @ProcessingGroup
аннотации к вашему классу обработки событий. В аннотации вы должны указать имя группы обработки, которое должно соответствовать тому, что вы установили в файле конфигурации.
Наконец, я бы предложил использовать другое имя, чем query
для вашей группы обработки. Что-то более специфичное для модели запросов, которое обновляет обработчик событий, мне кажется более подходящим.
Надеюсь это поможет!