【问题标题】:Securing Kafka Connect保护 Kafka Connect
【发布时间】:2020-08-31 22:40:24
【问题描述】:

要为 Kafka 连接 REST API 配置 SSL,我遵循以下链接中提供的文档 - https://cwiki.apache.org/confluence/display/KAFKA/KIP-208%3A+Add+SSL+support+to+Kafka+Connect+REST+interface

但我仍然不清楚为什么要使用监听器。 listener 和 bootstrap.server 是否相同,因为 Kafka connect(producer) 将监听 kafka brokers 以获取元数据和写入源数据。

监听器和 bootstrap.server 的值应该是什么。有人可以澄清一下它们之间的区别

【问题讨论】:

    标签: apache-kafka apache-kafka-connect


    【解决方案1】:

    侦听器确定 REST API 如何绑定到运行 Connect 服务器的主机。 HTTPS://0.0.0.0:8083 将允许所有接口上的所有连接通过 HTTPS 连接到端口 8083,如文档中所述。

    REST API 将侦听的以逗号分隔的 URI 列表。支持的协议是 HTTP 和 HTTPS。 将主机名指定为 0.0.0.0 以绑定到所有接口。将主机名留空以绑定到默认接口。合法侦听器列表示例 - HTTP://myhost:8083,HTTPS://myhost:8084

    bootstrap.server 是 Kafka 连接字符串。它的值和监听器的值不应该相同,建议从 broker 远程运行 Kafka Connect

    注意:rest.advertised.listener也是设置多个worker集群时的重要设置

    设置将提供给其他工作人员使用的广告侦听器(HTTP 或 HTTPS)

    【讨论】:

    • 谢谢。现在我明白了。所以我的配置需要像这样 Worker2.properties - listeners= 0.0.0.0:8084security.protocol=SSL rest.advertised.listener=https rest.advertised.host.name=localhost rest.advertised.host.port=8083 Worker2.properties - listeners=0.0.0.0:8084security.protocol=SSL rest.advertised.listener=https rest.advertised.host.name=localhost rest.advertised.host.port=8084
    • 公布的主机名不应该是localhost,应该是机器的外部主机名
    • 就我而言,我有工作人员在我本地的集群中运行。 Workers 是一个执行连接器 REST API 的进程。正如您所说,Listener 告诉 REST API 如何与 Kakfa 连接工作人员绑定示例 - Listener=localhost/8083 和 res.advertised.hostname 用于工作人员相互连接,例如 res.advertised.hostname=Myhostname, res.advertised。端口=8090。在创建连接器时,我的 REST url 应该是这样的localhost/8083/connectors。你能确认一下,我是否正确。
    • 如果listeners=HTTPS://0.0.0.0:8084,然后是rest.advertised.hostname=Myhostnamerest.advertised.port=8084,那么您将向https://localhost:8084https://Myhostname:8084 发送请求
    • @cricket_007 你有使用 SSL 的 connect rest api 吗?无论我尝试哪种设置组合,我都会遇到 ssl 握手失败。
    猜你喜欢
    • 2017-12-28
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 2018-11-22
    • 2021-01-13
    • 2021-12-25
    • 2018-09-28
    • 2019-10-01
    相关资源
    最近更新 更多