Kafka配置说明(一)


发布于 2024-05-09 / 80 阅读 / 0 评论 /
当前kafka最新版本是3.6.0。本文主要讲述三个配置:listeners、advertised.listeners、listener.security.protocol.map

listeners、advertised.listeners和listener.security.protocol.map这三个配置对于kafka的安全至关重要。

1.配置简介

这三个配置都是broker端参数,用于配置kafka对外监听方式和定义对客户端连接地址。

1.1.listeners

kafka-3.6.0版本官网介绍如下图所示:

主要是定义了kafka服务socket的bind host、bind port、网路通信协议。

1.2.advertised.listeners

kafka-3.6.0版本官网介绍如下图所示:

主要是配置客户端连接kafka集群的连接方式,连接串信息会被注册到zookeeper上。

1.3.listener.security.protocol.map

kafka-3.6.0版本官网介绍如下图所示:

默认值为:PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL

2.使用场景

这几个参数相互配合,可以实现不同的场景,满足可会对安全的需求。

2.1.支持IPV4和IPV6双栈监听同一端口

这是kafka-3.6.0版本开始支持的新特性,

feature说明在https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=195726330

kafka-3.6.0版本之后,我们可以在同一个端口支持双栈。相对于kafka-client来说,既可以通过IPV4地址连接kafka,也可以通过IPV6地址连接kafka。

kafka-3.6.0版本之前,如果要支持双栈,则需要设置两个端口,一个监听在IPV4协议栈,另一个监听IPV6协议栈。

2.2.配置kafka纯内网访问

部署kafka集群时,如果listeners和advertised.listeners配置的是内网IP,则可以屏蔽外网的访问,kafka集群只能通过内网地址访问。

公司内网的kafka集群通常是这样配置的。

2.3.kafka访问隔离

每个kafka节点所在服务器都可以配置内网和外网的网卡,通常通过两个listener来对接不同的网卡ip,这样可以对内网和外网的kafka访问流量进行隔离。