Соедините Camel с EventHubs, используя протокол Kafka - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь перенаправить сообщения из Camel в Azure EventHubs.Пространство имен EventHubs было создано с использованием флага включенного Kafka.

         String eventHubsPassword = "org.apache.kafka.common.security.plain.PlainLoginModule " +
        "required username=\"$ConnectionString\" " + 
        "password=\"<Connection String>\";";

        String eventHubsConfig = 
        "&requestTimeoutMs=30000" +
        "&securityProtocol=SASL_SSL" + 
        "&saslMechanism=PLAIN" +
        "&saslJaasConfig=" + eventHubsPassword;

        from(component + ":queue:" + queue )
        .to("kafka:mock-topic?brokers=" + eventHubsKafkaBrokers + eventHubsConfig)

, где mock-topic - это имя концентратора событий, eventHubsKafkaBrokers похоже на mynamespace.servicebus.windows.net:9093, а <connection string> - это строка подключения пространства имен концентратора событий..

Итак, я получаю этот журнал

2019-07-03 23:35:23 INFO  AbstractLogin:53 - Successfully logged in.
2019-07-03 23:35:23 INFO  AppInfoParser:109 - Kafka version : 1.0.0

При отправке сообщения я получаю

2019-07-03 23:37:51 WARN  NetworkClient:241 - [Producer clientId=producer-2] Connection to node -1 could not be established. Broker may not be available.

Что может быть не так?Верблюжья версия 2.21.1.Разве верблюд не поддерживает SASL_SSL протокол безопасности?

1 Ответ

0 голосов
/ 16 июля 2019

Если это кому-нибудь поможет, я в конечном итоге использовал поддержку amqp, предоставляемую EventHubs.Затем укажите место назначения маршрута для определенного компонента amqp.

AMQPComponent authorizedAmqp = AMQPComponent.amqpComponent( eventHubsNamespace, eventHubsUsername, //Shared access policy name eventHubsPassword); //Secret code for this shared access policy main.bind("amqps", authorizedAmqp); ... from('jms://source") .to("amqps" + ":queue:" + eventhubInstance);

...