Как указано выше, мы используем Axon (AxonFramework 4.0) с Kafka.У нас есть две службы:
ServiceA
ServiceB
Была создана общая библиотека для хранения events
В этом случае всего один простой POJO
@Revision(1.0)
class DummyEvent(val id: String, val value: String)
Эта библиотека common.jar
является зависимостью как ServiceA
, так и ServiceB
application.yml для обоих почти идентична
axon:
kafka:
default-topic: axon-events
producer:
retries: 5
bootstrap-servers: localhost:9092
transaction-id-prefix: efcstx
consumer:
group-id: external-sync-group
bootstrap-servers: localhost:9092
distributed:
enabled: true
serializer:
messages: jackson
eventhandling:
processors:
common:
mode: tracking
source: kafkaMessageSource
Когда DummyEvent запускается из ServiceA, мы видим его опубликованным для Kafka и его можно использовать @EventHandler в ServiceA.ServiceB не может обработать событие.
Такое же поведение наблюдается при запуске события из ServiceB.Событие успешно опубликовано в Kafka и может быть использовано @EventHandler в ServiceB, но не может быть обработано в ServiceA.
Мы испробовали несколько подходов сериализации, в том числе один из приведенных выше.Пожалуйста, посоветуйте, как вы можете.