我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Kafka的监听地址怎么配置

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Kafka的监听地址怎么配置

本文小编为大家详细介绍“Kafka的监听地址怎么配置”,内容详细,步骤清晰,细节处理妥当,希望这篇“Kafka的监听地址怎么配置”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

目前监听相关的参数主要有下面几个:

  • listeners

  • advertised.listeners

  • listener.security.protocol.map

  • inter.broker.listener.name

  • security.inter.broker.protocol

  • advertised.host.name(历史遗留,已废弃,勿使用)

  • advertised.port(历史遗留,已废弃,勿使用)

  • host.name(历史遗留,已废弃,勿使用)

其中最重要的就是listeners和advertised.listeners:集群启动时监听listeners配置的地址,并将advertised.listeners配置的地址写到Zookeeper里面,作为集群元数据的一部分。我们可以将客户端(生产者/消费者)连接Kafka集群进行操作的过程分成2步:

  • 通过listeners配置的连接信息(ip/host)连接到某个Broker(broker会定期获取并缓存zk中的元数据信息),获取元数据中advertised.listeners配置的地址信息。

  • 通过第1步获取的advertised.listeners连接信息和Kafka集群通信(读/写)。

所以在存在内外网隔离的虚拟化环境中(比如Docker、公有云),外部客户端经常会出现可以连接到Kafka(第1步),但发送/消费数据时报连接超时(第2步),就是因为listeners配置的是外网地址,而advertised.listeners配置的却是内网地址。那这几个参数该如何配置呢?

先看连接信息的配置格式:{listener名字}://{HOST/IP}:{PORT}。HOST/IP、PORT很清楚,主要是这个“listener名字”字段。要理解这个得了解listener.security.protocol.map这个配置项:它的用途是配置listener名字和协议的映射(所以它是一个key-value的map),key是“listener名字”,value是“协议名称”,其默认值是“listener名字”和“协议名称”一样。有点绕,举个例子,比如:PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL,冒号前面是key,即协议名字;后面是value,即协议名称。listener名字我们可以随便起,而协议名称则是固定可枚举的一个范围。所以如果我们自定义了listener名字,那就需要显式的设置其对应的协议名。

inter.broker.listener.name和security.inter.broker.protocol都是用于配置Broker之间通信的,前者配置名称(即listener.security.protocol.map中的key),后者配置协议(即listener.security.protocol.map中的value),默认值是PLAINTEXT。这两个配置项同时只能配置一个。

为什么一个连接要搞这么复杂呢?主要是为了各种不同的场景需求。下面举一个复杂一点的应用场景进行说明。比如我们在一个公有云上面部署了一个Kafka集群,该环境有一个外网地址external_hostname和一个内网地址internal_hostname;且在内部中是无法获取外网地址的(公有云大多都是这样的)。然后想实现内部客户端访问集群时走内部地址,且不需要加密;而外部客户端访问时则走外部地址,且需要加密。要实现这个需求,可以对集群进行如下配置:

listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:SSLlisteners=INTERNAL://0.0.0.0:19092,EXTERNAL://0.0.0.0:9092advertised.listeners=INTERNAL://{internal_hostname}:19092,EXTERNAL://{external_hostname}:9092inter.broker.listener.name=INTERNALlistener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:SSL

其实更进一步,我们还可以通过可选的control.plane.listener.name参数单独定制集群Controller节点与其他Broker节点的连接,那配置信息就变为:

listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:SSL,CONTROL:SSLlisteners=INTERNAL://0.0.0.0:19092,EXTERNAL://0.0.0.0:9092advertised.listeners=INTERNAL://{internal_hostname}:19092,EXTERNAL://{external_hostname}:9092,CONTROL://{control_ip}:9094inter.broker.listener.name=INTERNALcontrol.plane.listener.name=CONTROL

最后给出这些配置项的默认值和一些注意事项:

  • listeners如果不显式的配置,那会监听所有网卡,相当于配置了0.0.0.0。该配置项里面listeners名字和端口都必须是唯一的,不能重复。

  • advertised.listeners如果不配置,默认使用listeners配置的值。如果listeners也没有显式配置,则使用java.net.InetAddress.getCanonicalHostName()获取的IP地址。如果listeners配置的是0.0.0.0,则必须显式的配置advertised.listeners,因为这个配置项必须是一个具体的地址,不允许是0.0.0.0(因为客户端无法根据这个地址连接到Broker)。另外,advertised.listeners中的端口允许重复。

  • 对于listeners和advertised.listeners,有多个地址的时候,每一个地址都必须按照{listener名字}://{HOST/IP}:{PORT}格式进行配置,多个地址用英文逗号分隔。

  • 如果集群所有节点的hostname在客户端和服务端各节点之间可以正确解析,优先使用hostname,而不是IP。因为代码里面使用了java.net.InetAddress.getCanonicalHostName(),有时使用IP会出现访问不通的情况。

读到这里,这篇“Kafka的监听地址怎么配置”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Kafka的监听地址怎么配置

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Kafka的监听地址怎么配置

本文小编为大家详细介绍“Kafka的监听地址怎么配置”,内容详细,步骤清晰,细节处理妥当,希望这篇“Kafka的监听地址怎么配置”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。目前监听相关的参数主要有下面几个:li
2023-06-28

oracle怎么配置监听程序

在 oracle 中配置监听程序需要以下步骤:检查现有监听程序(使用 lsnrctl status 命令)。创建监听程序(如果不存在)。启动监听程序(使用 lsnrctl start 命令)。检查监听程序状态(再次使用 lsnrctl st
oracle怎么配置监听程序
2024-04-19

oracle怎么监听配置文件

在Oracle数据库中,可以使用以下方法来监听和配置监听器文件:监听器配置文件监听器.ora:监听器配置文件通常位于ORACLE_HOME/network/admin目录下,文件名为listener.ora。可以使用文本编辑器打开该文件,并
oracle怎么监听配置文件
2024-04-09

oracle数据库监听怎么配置

要配置Oracle数据库监听器,您需要执行以下步骤:打开监听器配置文件:在Oracle数据库服务器上找到listener.ora文件。该文件通常位于ORACLE_HOME/network/admin目录中。编辑监听器配置文件:使用文本编辑器
oracle数据库监听怎么配置
2024-04-09

vue中怎么监听url地址栏参数变化

这篇“vue中怎么监听url地址栏参数变化”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue中怎么监听url地址栏参数变化
2023-07-05

centos怎么配置ip地址

这篇文章主要介绍“centos怎么配置ip地址”,在日常操作中,相信很多人在centos怎么配置ip地址问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”centos怎么配置ip地址”的疑惑有所帮助!接下来,请跟
2023-06-10

redis消息监听事件怎么配置

要配置Redis消息监听事件,您可以按照以下步骤进行操作:1. 创建一个Redis连接实例,代码示例如下:```javaJedis jedis = new Jedis("localhost", 6379);```2. 创建一个消息监听器,代
2023-09-01

nginx监听端口范围怎么配置

要配置Nginx监听特定的端口范围,可以使用以下步骤:1. 打开Nginx配置文件。默认情况下,Nginx的配置文件位于`/etc/nginx/nginx.conf`。2. 在`http`块内,找到`server`块,该块定义了要监听的端口
2023-09-14

win10怎么设置ip地址?win10配置静态IP地址

win10怎么设置ip地址,现在在用局域网一般都是配置IP地址的,IP地址为分两类一类是动态IP、另一类是静态IP地址。如下图教您win10配置静态IP地址方法,一起来看看吧! 工具/原料 win10操作系统 方法/步骤 1、首先右击网络图
2023-06-08

Linux中怎么配置IPv6地址

Linux中怎么配置IPv6地址,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  1、配置IPv6地址  vi /tc/sysconfig/network-sc
2023-06-13

Ubuntu中怎么配置IP地址

这期内容当中小编将会给大家带来有关Ubuntu中怎么配置IP地址,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、使用命令设置ubuntu的ip地址 1.修改配置文件blacklist.conf禁用IPV
2023-06-13

oracle数据库怎么配置监听程序

oracle 监听程序允许客户端连接到数据库服务器。配置步骤包括:创建 listener.ora 配置文件,指定监听地址(host)和端口(port)。启动监听程序:lsnrctl start。验证监听程序状态:lsnrctl status
oracle数据库怎么配置监听程序
2024-04-19

Ubuntu静态IP地址怎么配置

本文小编为大家详细介绍“Ubuntu静态IP地址怎么配置”,内容详细,步骤清晰,细节处理妥当,希望这篇“Ubuntu静态IP地址怎么配置”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.查看网卡设备号2.修改 Y
2023-07-04

云服务器怎么配置ip地址和端口地址

云服务器可以配置IP地址和端口地址。以下是一个简单的配置示例:```pythonimportredefgreeting(timestamp,email_address):#定义主机名和用户名username=re.findall(r''+re.username,name)password=re.findall(r''+re.password,name)#定义用户的IP地址和端口
2023-10-26

vue监听页面滚动事件怎么配置

在Vue中监听页面滚动事件,可以通过在`mounted`钩子函数中添加滚动事件监听器。具体步骤如下:1. 在Vue组件中添加一个监听滚动事件的方法,例如`handleScroll`。2. 在`mounted`钩子函数中,使用`addEven
2023-09-20

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录