Как поделиться коннектором kafka и его конфигурацией между несколькими службами в Quarkus? - PullRequest
0 голосов
/ 05 мая 2020

У меня следующая структура проекта:

project
  - serviceA
  - serviceB
  - serviceC
  - serviceD

И я хотел бы иметь общий коннектор kafka во всех сервисах проекта. Примерно так:

public class CommonProcessor {
    private final CommonService commonService;

    public CommonProcessor(final CommonService commonService) {
        this.commonService= commonService;
    }

    @Incoming("channel-name")
    public CompletionStage<Void> process(final Message<CommonMessage> message) {
        final CommonMessage commonMessage = message.getPayload();

        commonService.commonMethod(commonMessage.getAttribute());

        return message.ack();
    }
}

С соответствующей конфигурацией:

mp.messaging.incoming.channel-name.connector=smallrye-kafka
mp.messaging.incoming.channel-name.topic=channel-name
mp.messaging.incoming.channel-name.value.deserializer=foo.bar.CommonDeserializer

Как я могу использовать этот CommonProcessor (и его конфигурацию) между всеми службами?

Можно ли поместить его в общую банку и добавить как зависимость во все службы? Я пробовал этот вариант, но он не работает из-за конфигурации. При запуске службы с зависимостью он говорит: Impossible to bind mediators, some media tors are not connected: [foo.bar.CommonProcessor#process]

Можно ли это сделать через расширение? В этом случае у меня такой же вопрос, как я могу поделиться конфигурацией в application.properties?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...