即使 Kafka 正在服务 TLS/SSL,Kafka 能否通过 TCP 与 ZooKeeper 通信?
Can Kafka talk to ZooKeeper over TCP even if Kafka is serving TLS/SSL?
我创建了一个 3 节点 ZK 集成,用作 Kafka 和(可能)其他服务的共识集群。
我还创建了一个单独的 2 节点 Kafka broker 集群,它使用这 3 个 ZK 进行领导选举等。我已经用远程生产者和消费者测试了这个配置,它似乎工作得很好。
我现在想让我的 Kafka 代理需要 TLS/SSL,以便 Kafka 客户端 通过 SSL 证书进行通信。但是我不想将我的 3 个 ZK 节点配置为需要 TLS。
我可以进行以下设置吗 (?) :
Kafka Clients <---TLS---> Kafkas <---TCP---> ZK
或者我是否需要一直到 ZK 后端的 TLS?
是的,你可以。当您在 Kafka 中配置 SSL 时,仅适用于 Kafka 客户端到 Kafka 服务器以及可选的 Kafka 服务器之间。
事实上,Zookeeper 3.4 还不支持客户端和服务器之间的 TLS 通信。 Thay 功能将在 Zookeeper 3.5 中推出。
此任务仍然可以通过以下步骤中提到的简单解决方法来完成;
- 安装zookeeper-3.5.1-alpha(使用.jar文件,3.5+版本即可)
- 在
<kafka-installation-folder>\libs
中用/zookeeper-3.5.1-alpha/zookeeper-3.5.1-alpha.jar
替换默认的zookeeper*.jar
- 复制
/zookeeper-3.5.1-alpha/lib/netty-3.7.0.Final.jar
到<kafka-installation-folder>\libs
- 在 Zookeeper 上启用 SSL 的相关更改 (https://cwiki-test.apache.org/confluence/display/ZOOKEEPER/ZooKeeper+SSL+User+Guide)
我创建了一个 3 节点 ZK 集成,用作 Kafka 和(可能)其他服务的共识集群。
我还创建了一个单独的 2 节点 Kafka broker 集群,它使用这 3 个 ZK 进行领导选举等。我已经用远程生产者和消费者测试了这个配置,它似乎工作得很好。
我现在想让我的 Kafka 代理需要 TLS/SSL,以便 Kafka 客户端 通过 SSL 证书进行通信。但是我不想将我的 3 个 ZK 节点配置为需要 TLS。
我可以进行以下设置吗 (?) :
Kafka Clients <---TLS---> Kafkas <---TCP---> ZK
或者我是否需要一直到 ZK 后端的 TLS?
是的,你可以。当您在 Kafka 中配置 SSL 时,仅适用于 Kafka 客户端到 Kafka 服务器以及可选的 Kafka 服务器之间。 事实上,Zookeeper 3.4 还不支持客户端和服务器之间的 TLS 通信。 Thay 功能将在 Zookeeper 3.5 中推出。
此任务仍然可以通过以下步骤中提到的简单解决方法来完成;
- 安装zookeeper-3.5.1-alpha(使用.jar文件,3.5+版本即可)
- 在
<kafka-installation-folder>\libs
中用 - 复制
/zookeeper-3.5.1-alpha/lib/netty-3.7.0.Final.jar
到<kafka-installation-folder>\libs
- 在 Zookeeper 上启用 SSL 的相关更改 (https://cwiki-test.apache.org/confluence/display/ZOOKEEPER/ZooKeeper+SSL+User+Guide)
/zookeeper-3.5.1-alpha/zookeeper-3.5.1-alpha.jar
替换默认的zookeeper*.jar