前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【云原生】一文搞懂Kafka中的listeners和advertised.listeners以及其他通信配置

【云原生】一文搞懂Kafka中的listeners和advertised.listeners以及其他通信配置

作者头像
石臻臻的杂货铺[同名公众号]
发布于 2022-06-19 07:13:25
发布于 2022-06-19 07:13:25
9.6K00
代码可运行
举报
文章被收录于专栏:kafka专栏kafka专栏
运行总次数:0
代码可运行

🔥《**Kafka运维管控平台LogiKM**》🔥 ✏️更强大的管控能力✏️ 🎾更高效的问题定位能力🎾 🌅更便捷的集群运维能力🌅 🎼更专业的资源治理🎼 🌞更友好的运维生态🌞

文章目录

代码语言:txt
AI代码解释
复制
- [参数详解](https://cloud.tencent.com/developer)
    - [listeners](https://cloud.tencent.com/developer)
    - [advertised.listeners](https://cloud.tencent.com/developer)
    - [listener.security.protocol.map](https://cloud.tencent.com/developer)
    - [inter.broker.listener.name](https://cloud.tencent.com/developer)
    - [security.inter.broker.protocol](https://cloud.tencent.com/developer)
    - [control.plane.listener.name](https://cloud.tencent.com/developer)
    - [示例说明](https://cloud.tencent.com/developer)
        - [1 . 绑定一个IP, 客户端使用另外的IP访问](https://cloud.tencent.com/developer)
        - [2. listeners 和 advertised.listeners 配置的IP不一样](https://cloud.tencent.com/developer)
        - [3 . listeners监听任意可用IP, advertised.listeners发布指定IP](https://cloud.tencent.com/developer)
        - [4 . listeners配置多个监听器,内外网分流](https://cloud.tencent.com/developer)
- [几种场景的配置方式](https://cloud.tencent.com/developer)
    - [1. 一台机器部署一套集群](https://cloud.tencent.com/developer)
    - [2. 内网环境多机器部署集群](https://cloud.tencent.com/developer)
    - [3. 内网和外网分流](https://cloud.tencent.com/developer)
    - [4. 内网和外网和Controller分流](https://cloud.tencent.com/developer)

参数详解

listeners

侦听器列表,这里配置的监听器底层调用的是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ServerSocketAdaptor.bind(SocketAddress local)

那么这个说明什么意思呢?说明你配置的监听器将被用于监听网络请求。

简单理解就是你建立监听一个通道,别人能够通过这个通道跟你沟通。

所以我们需要设置 IP:Port.

这个属性的格式为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 listeners = listener_name://host_name:port,listener_name2://host_nam2e:port2

可以同时配置多个, 并且用逗号隔开

监听器的名称和端口必须是唯一的,端口相同,就冲突了

host_name如果为空,例如(),则会绑定到默认的接口(网卡),一般情况下是,底层调用的是

将host_name设置为 则会绑定所有的网卡, 也就是说不管从哪个网卡进入的请求都会被接受处理。但是请注意,假如你设置的是,那么 必须要设置,因为默认请看下使用的是的配置发布到zk中,发布到zk中是给其他Brokers/Clients 来跟你通信的,你设置,谁知道要请求哪个IP呢, 所以它必须要指定并明确 IP:PORT。具体详情请看下面

listener_name 是监听名,唯一值, 他并不是安全协议(大部分人都会搞错),因为默认的4个安全协议已经做好了映射, 例如 :PLAINTEXT ==> PLAINTEXT . 所以你经常看到的配置

可动态配置该属性

advertised.listeners

发布公开的监听器, 啥叫发布公开的监听器?

就是,让Brokers和Clients们都能够知道的监听器,你想想看,listeners是Broker用来监听网络请求的

那么,其他Broker或者客户端想要与它通信,则需要知道具体的IP:PORT吧?

所以,为了让别人知道自己的监听器,那么就需要公开出去,当然这个公开的形式,是通过zk来共享数据。

看看broker到zk节点/brokers/{brokerid}/ 下面的信息示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
	"features": {},
	"listener_security_protocol_map": {
		"PLAINTEXT": "PLAINTEXT"
	},
	"endpoints": ["PLAINTEXT://localhost:9092"],
	"jmx_port": -1,
	"port": 9092,
	"host": "localhost",
	"version": 5,
	"timestamp": "1647337490945"
}

其中endpoints就是我们发布出去的监听器。

这个属性的格式为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
advertised.listeners = listener_name://host_name:port,listener_name2://host_nam2e:port2
  1. 默认情况下,advertised.listeners不设置会自动使用listeners属性
  2. advertised.listeners不支持0.0.0.0这种形式, 所以如果listeners属性设置成0.0.0.0,则必须设置advertised.listeners属性。具体请看 示例3 因为0.0.0.0是表示的是监听Broker上任意的网卡的, 你将这个发布出去,那么别的Broker和客户端怎么知道你具体的ip和端口呢?
  3. 可以同时配置多个, 并且用逗号隔开
  4. 可动态配置该属性

listener.security.protocol.map

监听器名称和安全协议之间的映射关系集合。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
listeners=PLAINTEXT://localhost:9092

看看上面的配置, PLANINTEXT是监听器名称,那么它对应的安全协议是什么呢?

它对应的安全协议是 PLANINTEXT, 为什么呢? 那是因为默认情况下,已经有了他们的映射关系。

默认集合:

PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL

属性格式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
监听名称1:安全协议1,监听名称2:安全协议2

现有的安全协议,有4种, 分别如下, 下为默认监听器名称映射对应的安全协议情况。

  1. PLAINTEXT => PLAINTEXT 不需要授权,非加密通道
  2. SSL => SSL 使用SSL加密通道
  3. SASL_PLAINTEXT => SASL_PLAINTEXT 使用SASL认证非加密通道
  4. SASL_SSL => SASL_SSL 使用SASL认证并且SSL加密通道

当然你也可以自己重新映射监听器名称和安全协议, 比如: 示例4

inter.broker.listener.name

用于Broker之间通信的listener的名称。如果未设置,则listener名称由 security.inter.broker.protocol定义(security.inter.broker.protocol默认值是PLAINTEXT)。

同时设置 这个和 security.inter.broker.protocol 属性是错误的。

默认值:空

不可动态配置。

特别注意: 这个属性表示是Broker之间的网络通信使用的监听器, 比如 Broker2Broker

但是还有一种就是Controller2Broker、如果没有配置control.plane.listener.name ,那么走的也是inter.broker.listener.name 这个监听器。

根据本地配置的监听器名称, 去查找其他Broker的监听器的EndPoint。所以一般所有Broker的监听器名称都必须一致,否则的话就找不到具体的EndPoint,无法正确的发起请求。

security.inter.broker.protocol

用于在代理之间进行通信的安全协议。

有效值为:PLAINTEXTSSLSASL_PLAINTEXTSASL_SSL

同时设置 该属性和 inter.broker.listener.name 属性是错误的。

默认值:PLAINTEXT (纯文本)

注意这个跟inter.broker.listener.name是有区别的, 这个配置只有四个选项,是安全协议

inter.broker.listener.name是监听名称, 是需要通过这个监听名称去找到它映射的 安全协议 还有 IP:PORT

如果inter.broker.listener.name没有配置,则默认使用security.inter.broker.protocol的配置. 对inter.broker.listener.name而言,最终还是要去找到对应的 IP:PORT

一般自定义了监听器名称, inter.broker.listener.name就是必须要设置的, 不能使用security.inter.broker.protocol 来代替。

control.plane.listener.name

用于Controller和Broker之间通信的监听器名称, Broker将会使用control.plane.listener.name 来定位监听器列表中的EndPoint

如果未设置,则默认使用inter.broker.listener.name来通信,没有专门的链接。

详情请看:Kafka的客户端NetworkClient如何发起的请求

示例说明

1 . 绑定一个IP, 客户端使用另外的IP访问

让broker 监听localhost:9092. 然后客户端访问broker的具体IP.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
listeners=PLAINTEXT://localhost:9092

启动之后查看一下监听情况

Linux命令: netstat -anp |grep 9092

Mac环境命令:netstat -AaLlnW

当然,如果你这台机器刚好还是Controller的话,除了了LISTEN, 还能看到ESTABLISHED状态的连接,因为Controller也会给这台Broker建立连接发起请求的,比如通知Broker更新元信息之类的。

我们使用生产者客户端来生产几条消息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sh bin/kafka-console-producer.sh --bootstrap-server 127.0.0.1:9092  --topic Topic4
## 或者
sh bin/kafka-console-producer.sh --bootstrap-server localhost:9092  --topic Topic4

可以发现正常发送消息。

那么接下来,使用使用具体IP发起请求

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sh bin/kafka-console-producer.sh --bootstrap-server 10.xxx.xx.128:9092  --topic Topic4
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[2022-03-16 12:59:07,024] WARN [Controller id=1000, targetBrokerId=1000] Connection to node 1000 

(/10.xxx.xxx.xx:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

可以看到,客户端提示说不能跟这个ip:port建立连接。

2. listeners 和 advertised.listeners 配置的IP不一样
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
listeners=PLAINTEXT://xx.xx.xxx.01:9092

advertised.listeners=PLAINTEXT:/xx.xx.xxx.02:9092

假设你本地监听和发布的监听不一样, 那么就会造成其他broker和客户端跟这台broker不能正确的建立链接。

如果你这台Broker刚好还是Controller,那么他也会对自己建立连接, 都是根据advertised.listeners的配置来建立的,同样会失败。其他broker也一样。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[2022-03-16 12:59:07,024] WARN [Controller id=1000, targetBrokerId=1000] Connection to node 1000 

(/10.xxx.xxx.xx:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
3 . listeners监听任意可用IP, advertised.listeners发布指定IP

在示例2中,我们指定 listeners 监听器和advertised.listeners发布的监听器不一致会导致异常。

那么,我们只需要将监听器的和发布的监听器一致就行了

当然,我们还可直接设置监听器监听任意可用IP(该Broker上的可用IP)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
listeners=PLAINTEXT://0.0.0.0:9092

当然,如果只是将host设置为 0.0.0.0. 那么会报错

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java.lang.IllegalArgumentException: requirement failed: advertised.listeners cannot use the nonroutable meta-address 0.0.0.0. Use a routable IP address.
	at kafka.server.KafkaConfig.validateValues(KafkaConfig.scala:1789)

因为默认情况下,advertised.listeners不设置的话,则默认使用listeners的属性,然而advertised.listeners是不支持0.0.0.0的,所以需要指定暴露的监听器,如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://xx.xx.xx.128:9092

这样子配置就不会报错了,其他Broker和客户端会通过advertised.listeners发布的监听器来跟该Broker建立链接。

注意: 这个时候你还可以在这台Broker的机器上使用 localhost 来进行访问。比如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 sh bin/kafka-console-producer.sh --bootstrap-server 127.0.0.1:9092  --topic Topic4

可以看到也是可以正常发送消息的。

4 . listeners配置多个监听器,内外网分流
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
listeners = INSIDE://内网IP:9091,OUTSIDE://外网IP:9092

#把OUTSIDE 的安全协议映射成PLAINTEXT INSIDE也映射成PLAINTEXT
listener.security.protocol.map=INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT

# Broker之间的连接用 INSIDE 监听器
inter.broker.listener.name=INSIDE

设置了2个监听器

①. INSIDE 监听内网IP

②. OUTSIDE 监听外网IP

因为这个是我们自己定义的监听名称,listener.security.protocol.map默认映射中并没有对应的映射关系

所以我们就需要主动设置这个映射关系

listener.security.protocol.map=INSIDE:PLAINTEXT,OUTSIDE:SSL

不然会抛异常

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Caused by: java.lang.IllegalArgumentException: No security protocol defined for listener INSIDE

	at kafka.cluster.EndPoint$.$anonfun$createEndPoint$2(EndPoint.scala:48)

注意:自定义了监听器,则必须要配置**inter.broker.listener.name**

确定好内部的broker之间通信的监听器. 并确保能够正常访问。

这样Broker直接就会通过内网互相连接, 客户端除了可以通过内网连接(如果在内网环境的话),也可以通过外网连接。

几种场景的配置方式

1. 一台机器部署一套集群

这种场景一般是自己开发测试的时候, 比如自己搭建一个集群,学习学习,但是又没有那么多机器,那么就可以在一台电脑上部署多个Broker。

只配置listeners属性

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
listeners = 监听名称://your.host.name:port

关于监听名称,默认的映射关系有4种。

  1. PLAINTEXT => PLAINTEXT 不需要授权,非加密通道
  2. SSL => SSL 使用SSL加密通道
  3. SASL_PLAINTEXT => SASL_PLAINTEXT 使用SASL认证非加密通道
  4. SASL_SSL => SASL_SSL 使用SASL认证并且SSL加密通道

简单一点,用PLAINTEXT就够了, 这里我们可以把host给去掉, 或者使用localhost

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
listeners = PLAINTEXT://:port
或者
listeners = PLAINTEXT://localhost:port

如果没有配置host,会调用java.net.InetAddress.getCanonicalHostName()获取本机host. 默认情况下就是localhost.

这里之所以建议你不填写具体的host,是因为一般自己搭建玩玩的时候可能网络IP会经常变动(例如家里的和公司), 如果绑定了具体的IP的话,每次重启都要更换配置就很麻烦。

可以看看Broker启动后注册到zk中的配置如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
	"features": {},
	"listener_security_protocol_map": {
		"PLAINTEXT": "PLAINTEXT"
	},
	"endpoints": ["PLAINTEXT://localhost:9092"],
	"jmx_port": -1,
	"port": 9092,
	"host": "localhost",
	"version": 5,
	"timestamp": "1647337490945"
}

这个endpoints 就是broker注册到zk的访问地址, 如果其他Broker或者客户端要跟这台Broker发生网络请求话, 就是拿的这里面的值。

所以,你想想看,如果是不同机器上,你配置的host是 localhost, 是不是就访问不了?

当然,listeners属性的host,我们也可以自己去hosts文件里面配置别的域名。配置域名指向的具体IP, 这样的话那还能奏效。就是每个Broker和客户端都要配置host,这就比较麻烦,所以还不如直接配置IP呢。

2. 内网环境多机器部署集群

这种是绝大部分的场景, 一般公司部署集群都是在公司内网环境下, Broker之间和Broker与客户端之间都在同一个网络环境。并且安全协议都是直接PLAINTEXT(明文)或者其他

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
listeners=PLAINTEXT://ip:port

3. 内网和外网分流

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
listeners=INTERNAL://内网ip:port1,EXTERNAL://外网ip:port2

#把OUTSIDE 的安全协议映射成PLAINTEXT INSIDE也映射成PLAINTEXT
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT

# Broker之间的连接用 INSIDE 监听器
inter.broker.listener.name=INTERNAL

配置了两个监听器,每个Brokerinter.broker.listener.name=INTERNAL 使用内网交流。

其他的客户端例如Producer和Consumer 请求的时候直接访问外网IP.

4. 内网和外网和Controller分流

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
listeners=INTERNAL://内网ip:port1,EXTERNAL://外网ip:port2,CONTROLLER://内网ip:port3,

#把OUTSIDE 的安全协议映射成PLAINTEXT INSIDE也映射成PLAINTEXT
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT,CONTROLLER:PLAINTEXT

# Broker之间的连接用 INSIDE 监听器
inter.broker.listener.name=INTERNAL
control.plane.listener.name=CONTROLLER

这样配置

  1. Controller2Broker或者Broker2Controller
  2. Broker2Broker
  3. Clients2Broker

他们都会会有独立的网络通信线程


你好,我是彦祖,滴滴Kafka技术专家,LogiKM PMC, CSDN 年度博客之星Topc5、华为云MVP。 现在在深度参与开源社区的建设。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
kafka小结以及搭建
kafka基本知识:https://km.woa.com/group/51596/articles/show/480932?from=iSearch 这里单提出几个关键地方: 1 offset 是消息
用户8540127
2022/07/13
4080
kafka中listener和advertised.listeners的作用
listener配置是用来绑定BrokerIP+端口地址​的,也就是只有通过绑定的地址才能够访问到该Broker。除了绑定地址之外,还可以配置该监听地址的认证协议,也就是使用该地址连接Broker时需要指定使用何种协议方式进行连接。
编程黑洞
2023/05/03
1.5K0
Kafka:用nginx做kafka集群代理(非http)
kafka代理,最近一直在搞kafka,上线前有个将kafka 集群暴露到外网的需求。那么问题来了,在内网时我们有足够的IP资源,但是在公网上时,不可能给每个broker都分配一个IP。那么就需要有一个代理用来转发。
cosmozhu
2020/11/23
16.1K2
Kafka:用nginx做kafka集群代理(非http)
【云原生】多网络情况下,Kafka客户端如何选择合适的网络发起请求
最近有个同学问了我一个非常有意思的问题, 今天我根据这个问题来给大家好好分析一下。
石臻臻的杂货铺[同名公众号]
2022/09/02
8020
【云原生】多网络情况下,Kafka客户端如何选择合适的网络发起请求
基于SASL和ACL的Kafka安全性解析
本文主要介绍基于SCRAM进行身份验证,使用Kafka ACL进行授权,SSL进行加密以及使用camel-Kafka连接Kafka群集以使用camel路由生产和消费消息的过程。
Luga Lee
2021/12/09
2.4K0
基于SASL和ACL的Kafka安全性解析
docker搭建kafka集群
advertised_listeners 监听器会注册在 zookeeper 中;
全栈程序员站长
2022/08/10
1.6K0
docker搭建kafka集群
Kafka-Kraft 模式(不依赖Zookeeper)
左图为 Kafka 现有架构,元数据在 zookeeper 中,运行时动态选举 controller,由controller 进行 Kafka 集群管理。右图为 kraft 模式架构(实验性),不再依赖 zookeeper 集群,而是用三台 controller 节点代替zookeeper,元数据保存在 controller 中,由 controller 直接进行 Kafka 集群管理。
鱼找水需要时间
2023/02/16
1.2K0
Kafka-Kraft 模式(不依赖Zookeeper)
Kafka-2.配置-Broker Configs
Kafka在 property file format 使用键值对作为配置。这些值无论来自文件还是以编程的方式,都被支持。
悠扬前奏
2019/06/11
1.6K0
Kafka源码解析之SocketServer
Kafka处理请求不区分优先级,但这种绝对公平的策略有时会发生问题。 比如:创建一个单分区双副本的主题,当时集群中的Broker A机器保存了分区的Leader副本,Broker B保存了Follower副本。突然业务激增,Broker A瞬间积压大量未处理PRODUCE请求。运维“不凑巧”执行了次Preferred Leader选举,将Broker B显式地调整成了Leader。
JavaEdge
2021/10/18
8030
Kafka Broker配置
kafka大于等于v0.10 名称 描述 类型 默认 有效值 重要程度 zookeeper.connect 以hostname:port的形式指定ZooKeeper连接字符串,其中host和port是ZooKeeper服务器的主机和端口。为了使得单个ZooKeeper机器宕机时通过其他ZooKeeper节点进行连接,你也可以以hostname1:port1,hostname2:port2,hostname3:port3的形式指定多个,提高可用性。也可以将ZooKeeper chroot路径作为其ZooKee
友儿
2022/09/13
5760
Linux下kafka集群搭建过程记录
http://kafka.apache.org/downloads 中下载,目前最新版本的kafka已经到2.2.0,我这里之前下载的是kafka_2.11-2.2.0.tgz.
小勇DW3
2019/08/06
1.4K0
kafka集群搭建
使用docker-compose搭建kafka集群,解析一些参数含义及列出搭建过程的一些坑。
doper
2022/09/26
6200
kafka集群搭建
k8s快速部署kafka 3.3.1
在平常开发测试中,使用docker或者k8s快速部署某个组件会是一个不错的选择。kafka 3.3.1作为kraft第一个生产可用版本,本文介绍使用k8s快速部署基于kraft运行的kafka 3.3.1。
从大数据到人工智能
2022/12/01
4.4K1
k8s快速部署kafka 3.3.1
centos7下kafka集群搭建
集群安装或者单机安装都可以,这里介绍集群安装。Kafka本身安装包也自带了zookeeper,也可以使用其自带的zookeeper。建议试用自己安装的zookeeper,本教程试用单独安装的zookeeper。
全栈程序员站长
2022/09/05
6150
Kafka 集群配置SASL+ACL
在Kafka0.9版本之前,Kafka集群时没有安全机制的。Kafka Client应用可以通过连接Zookeeper地址,例如zk1:2181:zk2:2181,zk3:2181等。来获取存储在Zookeeper中的Kafka元数据信息。拿到Kafka Broker地址后,连接到Kafka集群,就可以操作集群上的所有主题了。由于没有权限控制,集群核心的业务主题时存在风险的。
py3study
2020/02/21
4.6K0
搭建Kafka集群( 2.8.0版本)之一
Kafka最新版本2.8.0可以不依赖zookeeper,但是仍然测试阶段,所以官方不推荐使用,因此还是要使用zookeeper集群。
程裕强
2021/09/08
1.3K0
kafka集群及与springboot集成
在#192.168.1.128服务器上生产者控制台输入:hello kafka进行测试
全栈程序员站长
2022/08/10
8860
kafka集群及与springboot集成
0766-6.3.3-如何实现Kafka跨网络访问
在使用Kafka时会遇到内外网的场景,即Kafka集群使用内网搭建,在内网和外网均有客户端需要消费Kafka的消息,同时在集群内由于使用内网环境通信,因此不必太过考虑通信的加密,所以在内网使用非安全的协议也能够通信,但对于外网环境出于安全考虑,只允许通过安全的协议访问Kafka集群,本文档介绍如何基于双网卡来配置Kafka。
Fayson
2020/05/16
3.5K0
kafka集群重要的参数配置(三)
我们具体说说监听器的概念,从构成上来说,它是若干个逗号分隔的三元组,每个三元组的格式为<协议名称,主机名,端口号>。这里的协议名称可能是标准的名字,比如 PLAINTEXT 表示明文传输、SSL 表示使用 SSL 或 TLS 加密传输等;也可能是你自己定义的协议名字,比如CONTROLLER: //localhost:9092。
袁新栋-jeff.yuan
2020/08/26
8430
第一章 Kafka 配置部署及SASL_PLAINTEXT安全认证
2.4、Zookeeper 修改启动脚本 bin/zookeeper-server-start.sh
用户5061135
2024/01/13
1.7K0
相关推荐
kafka小结以及搭建
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文