apache-kafka - Kafka SSL 不将数据流式传输到 SSL Druid
问题描述
我是德鲁伊的新手,并试图对启用 SSL 的德鲁伊进行 kafka(SSL) 摄取。德鲁伊在 https 上运行。
卡夫卡版本:2.2.2 德鲁伊版本:0.18.1
Kafka SSL 有效,我可以使用生产者和消费者脚本来保证它:
bin/kafka-console-producer.sh --broker-list kafka01:9093 --topic testssl --producer.config config/client.properties
bin/kafka-console-consumer.sh --bootstrap-server kafka01:9093 --topic testssl config/client.properties --from-beginning
上面的东西有效。所以我可以保证 kafka SSL 已设置。
德鲁伊 SSL 配置:
druid.enablePlaintextPort=false druid.enableTlsPort=true druid.server.https.keyStoreType=jks druid.server.https.keyStorePath=.jks druid.server.https.keyStorePassword= druid.server.https.certAlias= druid.client.https.protocol=TLSv1.2 druid.client.https.trustStoreType=jks druid.client.https.trustStorePath=.jks druid.client.https.trustStorePassword=
卡夫卡 SSL 配置:
ssl.truststore.location=<location>.jks --- The same is used for druid also
ssl.truststore.password=<password>
ssl.keystore.location=<location>.jks --- The same is used for druid also
ssl.keystore.password=<password>
ssl.key.password=<password>
ssl.enabled.protocols=TLSv1.2
ssl.client.auth=none
ssl.endpoint.identification.algorithm=
security.protocol=SSL
我的 consumerProperties 规范如下所示:
"consumerProperties": {
"bootstrap.servers" : "kafka01:9093",
"security.protocol": "SSL",
"ssl.enabled.protocols" : "TLSv1.2",
"ssl.endpoint.identification.algorithm": "",
"group.id" : "<grouop_name>",
"ssl.keystore.type": "JKS",
"ssl.keystore.location" : "/datadrive/<location>.jks",
"ssl.keystore.password" : "<password>",
"ssl.key.password" : "<password>",
"ssl.truststore.location" : "/datadrive/<location>.jks",
"ssl.truststore.password" : "<password>",
"ssl.truststore.type": "JKS"
}
摄取后,数据源被创建,段也被创建,但有 0 行。
一段时间后,我不断地进入德鲁伊日志:
[task-runner-0-priority-0] org.apache.kafka.clients.consumer.internals.Fetcher - [Consumer clientId=consumer-1, groupId=kafka-supervisor-llhigfpg] 发送 READ_COMMITTED IncrementalFetchRequest(toSend=(), toForget=(),implicit=(testssl-0)) 到代理 kafka01:9093 (id: 0 rack: null)
有时在 coordinator-overlord.log 之后,我得到:
2020-08-03T16:51:42,881 调试 [JettyScheduler] org.eclipse.jetty.io.WriteFlusher - 忽略:WriteFlusher@278a176a{IDLE}->null java.util.concurrent.TimeoutException:空闲超时已过期:300001/300000 毫秒
我不确定出了什么问题。我在网上找不到太多关于这个问题的信息。在这方面需要帮助。
注意:当 druid 不是 https 并且 kafka 没有启用 ssl 时,一切正常。
解决方案
推荐阅读
- php - 特定语言的WPML显示帖子
- vba - IF & vlookup 在不同的工作表中查找
- php - 如果日期在今年已过,则从明年开始获取
- java - 使用 java spring 应用程序的 SAP RFC 调用
- c# - Xamarin Forms - Prism - OnNavigatedTo 调用两次
- android - 分支 IO 随机应用程序崩溃 - Kotlin
- java - 将 PDF 转换为具有透明度的 png 文件(保留 alpha)
- c# - 当在类上调用点运算符时,C# 在方法上显示文档
- python - ROS PoseStamped 属性错误
- ios - 具有自定义类型的 UIButton 的 IBAction 越来越延迟