首页 > 解决方案 > 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 时,一切正常。

标签: apache-kafkadruid

解决方案


推荐阅读