04 kafka 中一些常用的配置的使用

news2024/9/27 19:19:59

前言

 

呵呵 也是最近有一些 搭建 kafka 的环境的需求 

然后 从新看了一下 一部分的配置情况, 这里 大致理一下 一些我这里比较关心的配置  

那些配置关联了 kafka 服务器绑定服务

绑定 tcp 服务的配置来自于这里, 读取的是 config.dataPlaneListeners 

config.dataPlaneListeners  是取自 listeners, 然后过滤掉了 controller 相关的配置 

listeners 的配置来自于 "listeners" / "host.name + port" 的配置 

那些配置关联了 kafka 服务器暴露给客户端的地址信息

和如下问题关联, 暴露给客户端的 地址信息 只要是来自于 advertisedListeners 相关

当前机器的虚拟机[NAT网络]映射出 9200 到宿主机, 局域网的其他机器访问 宿主机+9200 访问不到 kafka 的服务

引用自上面的链接 

FindCoordinatorRequest 获取的数据来自于 metadataSnapshot
kafkaController.sendUpdateMetadataRequest 发生事件的时候 更新 metadataSnapshot 的请求
aliveNodes 来自于 broker 的相关信息, 这个 brokerInfo 来自于 KafkaController.initializeControllerContext
KafkaController.initializeControllerContext 的 aliveNodes 来自于 zkClient 向 "/brokers/ids/*" 获取 brokerId 列表, 然后在依次获取 "brokers/ids/$id" 的数据信息, 作为 Broker 的元数据信息
broker 注册到 zk 的信息来自于 KafkaServer 启动的时候向 zk 注册的, endpoints 的相关信息来自于 "advertised.listeners", "advertised.host.name:advertised.host.port", "listeners", "host.name:port"

具体的获取 advertisedListeners 相关的处理如下 

kafka 启动之后还会连接 broker ? 

可以发现一个问题, 就是 假设 我 advertised.listeners 配置了一个存在问题的配置, ip 不存在, 或者 服务不存在 

服务器启动 大致会报错如下 

java.net.SocketTimeoutException: Failed to connect within 30000 ms
	at kafka.controller.RequestSendThread.brokerReady(ControllerChannelManager.scala:297)
	at kafka.controller.RequestSendThread.doWork(ControllerChannelManager.scala:250)
	at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:96)

这个错误是什么呢?, 影响到的又有哪些呢? 

这个请求的处理, 主要是来自于 controller 

kafkaServer - kafkaController - controllerChannelManager - requestSendThread, 再到具体的 requestSendThread 就是最原始导致上面报错的地方了,

在各种事件触发的时候, controller 需要连接 broker, 发送请求[由 requestSendThread 来发送请求], 比如 RegisterBrokerAndReelect 的时候, 需要 选举 controller, 之后需要发送 UpdateMetadataRequest 

然后 客户端尝试连接 kafka 服务, 会得到报错大致如下 

[10:44:05.239] WARN  org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater 1023 handleCompletedMetadataResponse - [Consumer clientId=consumer-1, groupId=test3] Error while fetching metadata with correlation id 29 : {test20220528=LEADER_NOT_AVAILABLE}
[10:44:05.365] WARN  org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater 1023 handleCompletedMetadataResponse - [Consumer clientId=consumer-1, groupId=test3] Error while fetching metadata with correlation id 30 : {test20220528=LEADER_NOT_AVAILABLE}
[10:44:05.484] WARN  org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater 1023 handleCompletedMetadataResponse - [Consumer clientId=consumer-1, groupId=test3] Error while fetching metadata with correlation id 31 : {test20220528=LEADER_NOT_AVAILABLE}
[10:44:05.604] WARN  org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater 1023 handleCompletedMetadataResponse - [Consumer clientId=consumer-1, groupId=test3] Error while fetching metadata with correlation id 32 : {test20220528=LEADER_NOT_AVAILABLE}
[10:44:05.721] WARN  org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater 1023 handleCompletedMetadataResponse - [Consumer clientId=consumer-1, groupId=test3] Error while fetching metadata with correlation id 33 : {test20220528=LEADER_NOT_AVAILABLE}
[10:44:05.840] WARN  org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater 1023 handleCompletedMetadataResponse - [Consumer clientId=consumer-1, groupId=test3] Error while fetching metadata with correlation id 34 : {test20220528=LEADER_NOT_AVAILABLE}
[10:44:05.953] WARN  org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater 1023 handleCompletedMetadataResponse - [Consumer clientId=consumer-1, groupId=test3] Error while fetching metadata with correlation id 35 : {test20220528=LEADER_NOT_AVAILABLE}
[10:44:06.065] WARN  org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater 1023 handleCompletedMetadataResponse - [Consumer clientId=consumer-1, groupId=test3] Error while fetching metadata with correlation id 36 : {test20220528=LEADER_NOT_AVAILABLE}
[10:44:06.187] WARN  org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater 1023 handleCompletedMetadataResponse - [Consumer clientId=consumer-1, groupId=test3] Error while fetching metadata with correlation id 37 : {test20220528=LEADER_NOT_AVAILABLE}

kakfa 事件相关处理 

kafkaServer - kafkaController - eventManager - controllerEventThread

controllerEventThread 中的事件处理, 主要又是委托给了 processor, 也就是 kafkaController 

这个 controller 的核心业务就是这各种事件的处理  

事件主要是来自于 kafka 本身, 以及监听 zk 的相关状态变化 产生 

controller 是如何选举的?

基于 zk 来选举 controller 

如果 创建节点 "/controller"  成功, 成功的 broker 即为 controller, 其他的节点不是 

broker 来尝试在 zk 上面创建 "/controller" 节点 

完 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/130965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java母婴商城母婴店孕妇商城婴幼儿商城网站系统源码

简介 java使用ssm开发的母婴商城系统,用户可以注册浏览商品,加入购物车或者直接下单购买,在个人中心管理收货地址和订单,管理员也就是商家登录后台可以发布商品,上下架商品,处理待发货订单等。 演示视频&…

Allegro如何在PCB上查看pin number的三种方法操作指导

Allegro如何在PCB上查看pin number的三种方法操作指导 Allegro支持快捷的在PCB上查看pin number,如下图 具体操作如下 方法一:show element 选择Show Element命令Find选择Pins

2022年学习机器人和人工智能的一些期待

2022年学习机器人和人工智能的一些体会 2023年即将到来,满满的期待。 做好规划是非常非常重要的,有时候甚至比认真做事本身更为重要。 《礼记中庸》:“凡事豫则立,不豫则废。言前定则不跲,事前定则不困,行…

视频解码学习备忘

媒体文件知识 日常都是播放器直接播,其实这里面还有不少内容的。 首先是视频容器,就是所谓的.mp4 .mkv 这类文件,其目的主要就是用来存放音频视频字幕等内容,所以叫做容器。这些都有一定规范,比如mp4,叫ISO 14496-12…

流程图+BPMN+脑图 JointJS++ 3.6.3 Crack

一个库,‍ 无限的UI选择,直接在您的应用程序中享受交互式流程图、BPMN 和其他图表工作室。利用我们的模板化应用程序,将开发时间缩短至几天。 经过十多年和数百万行代码的编写,我们推出了一组随时可用的功能,以帮助您创…

数据结构进阶 二叉树OJ题二

作者:小萌新 专栏:数据结构进阶 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:介绍几道二叉树的oj题 题目一 二叉搜索树与双向链表 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表…

帆软—图表专题

饼图 优点:能很直观的看到每一个部分在整体中所占的比例。 缺点:不适合较大的数据集(分类)展现,数据项中不能有负值,当比例接近时,人眼很难准确判别。 变形饼图 柱形图 特点 优点&#xff…

SpringBoot HandlerMethodArgumentResolver接口自定义参数解析器

参考资料 【SpringBoot】HandlerMethodArgumentResolver的简单使用HandlerMethodArgumentResolver(参数解析器)的作用使用小案例HandlerMethodArgumentResolver用于统一获取当前登录用户 目录一. 需求二. 前期准备三. 实现HandlerMethodArgumentResolver接口四. 将自定义的方法…

一套javassf门户网站管理系统源码分享

淘源码:国内专业的免费源码下载平台 JAVA SSF项目框架源码 后台管理系统源码 一套以SpringMVCSpringHibernateFreemarkerShiroLuceneHtml5jQuery为技术核心架构的门户网站管理系统源码。 源码免费分享,需要源码学习可私信我。 主要功能: 内…

笑对过往、活在当下、期盼未来

哈喽大家好,我是阿Q。 去年今日,也是安静的午后,拿起铅笔在纸上寥寥草草的写下几个年终关键词,思索良久,迟迟未能下笔。 时至今日,年末将至,再次执笔已时隔一年,再不拿笔记录这转瞬…

Python制作粒子烟花,程序员的跨年姿势

跨年倒计时还有半天?我已经开始整烟花了,虽然不是很好看吧,但是也能将就看看 😥 这个的背景图,音乐,还有文字都是可以自己修改的哦 效果展示 依次导入本次需要使用到的模块 import random import pygame…

免费的JPEG 恢复软件 - 照片删除了怎么恢复?

照片删除了怎么恢复? 照片在我们的生活中起着至关重要的作用,因为它们可以承载我们的快乐回忆,记录我们的日常生活,分享我们的快乐等。我们将在智能手机、相机或计算机上拍摄并存储大量 JPEG 图片。但是,无论我们多么小心地保留它…

Python和MySQL对比(2):用Pandas 实现MySQL的 union 和 join 语法效果

文章目录一、前言二、语法对比数据表unionjoin1、两表 inner join2、两表 left join3、两表 right join4、两表 outer join5、多表 join三、小结一、前言 环境: windows11 64位 Python3.9 MySQL8 pandas1.4.2 本文主要介绍 MySQL 中的union和join如何使用pandas实现…

Spring 核心概念 IOC/DI IOC容器 Bean

目录 一:代码书写现状 二:核心思想 一:代码书写现状 常规操作如上,但存在着问题,将项目上线后,需要将数据层进行更换,更换如下: 数据层更换后,业务层也需要进行更换,更换如下: 数据…

NLP学习笔记(五) 注意力机制

大家好,我是半虹,这篇文章来讲注意力机制 (Attention Mechanism) 在序列到序列模型中的应用 在上一篇文章中,我们介绍了序列到序列模型,其工作流程可以概括为以下两个步骤 首先,用编码器将输入序列编码成上下文向量&a…

费控产品之易快报洞察解析

1.费控行业洞察 1.1 概念及管理范畴界定 费控业务的本质是企业支出的管理,因此分析费控要从企业支出管理的宏观范畴来看,企业支出主要包括两方面,一个是企业成本,一个是期间费用。期间费用就是我们常说的管理费用、销售费用和财务…

Centos7的安装与模板机的制作

Centos7的安装与模板机的制作 1.安装环境准备 1.VMware Workstation 2.centos7镜像 本文用的VMware版本为16.2.1 build-18811642 2.开始安装 话不多说,直接上图 3.模板机制作 1.查看防火墙的运行状态 firewall-cmd --state防火墙目前正在启动中 2.关闭防火墙…

STM32——STM32简介与创建工程

文章目录一、stm32简介stm32MCU:ARM:命名规则:片上资源/外设:系统结构:引脚的定义功能引脚介绍:最小系统引脚介绍:电源引脚介绍:启动配置最小系统电路二、软件安装三、新建工程固件库…

2022年专业408的算法题

文章目录0 结果1 题目2 思路3 实现3.1 思路13.2 思路二0 结果 1 题目 2 思路 1,首先明确二叉搜索树的定义:任何一个节点大于其左子树中的全部结点,小于其右子树中的全部结点。中序遍历二叉搜索树得到一个升序序列。2,明确题目中给…

【微信小程序入门到精通】— 微信小程序实现多页面切换(tabBar)

目录前言一、tabBar 介绍二、实操(创建 tabBar )2.1 基本配置2.2 详细配置总结前言 对于目前形式,微信小程序是一个热门,那么我们该如何去学习并且掌握之后去做实际项目呢? 为此我特意开设此专栏,在我学习的…