我需要使用 Camel 使用身份验证协议(protocol) Kerberos 将 ActiveMQ 消息路由到 Kafka(Cloudera)。
- ActiveMQ v5.15.4
- Camel :2.21.1
- Kafka 客户端:1.1.0
- 服务器版本:Apache/2.4.6(CentOS)
Kafka 安全文档声明它仅支持 SASL_PLAINTEXT 和
SASL_SSL 用于 Kerberos
另一方面,当我尝试在 Camel 中使用 SASL_PLAINTEXT 安全协议(protocol)时,我在 ActiveMQ 启动期间收到错误。因此 ActiveMQ 将无法启动。
我从以下位置获取了最新的Camel代码:https://github.com/apache/camel.git并且它声明它仅支持 SSL 和 PLAINTEXT 作为安全协议(protocol)值。
我确实发现这个已解决的问题:https://access.redhat.com/solutions/3364871但我没有找到任何证据表明这在最新的 Camel 版本中有效。
我的 Camel 设置片段是:
<log message="Started The Producer Route" />
<to uri="kafka://10.100.70.00:9092?topic=MyEvents.s1.v1&brokers=10.100.70.00:9092&requestTimeoutMs=305000&retries=3&keySerializerClass=org.apache.kafka.common.serialization.ByteArraySerializer&saslMechanism=GSSAPI&serializerClass=org.apache.kafka.common.serialization.ByteArraySerializer&securityProtocol=SASL_PLAINTEXT&saslKerberosServiceName=kafka"/>
我正在使用外部 Jaas 配置文件。
Camel 真的不支持 SASL_PLAINTEXT 吗?
最佳答案
Camel 支持 SASL_PLAINTEXT,因为它使用 Kafka 客户端 v1.1.0。问题是实际的安全参数没有传播到 Camel 接口(interface)。这意味着 ActiveMQ 启动期间无法识别该参数。 我已经打开issue对于这个问题。
关于java - Camel-Kafka 安全协议(protocol) SASL_PLAINTEXT 不支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51005383/