Kafka入门和基础配置

目录

  • Kafka入门
    • 消息引擎系统ABC
    • 快速搞定Kafka术语
      • kafka三层消息架构
      • 名词术语
  • Kafka基础
    • Kafka部署参考
    • 重要配置参数
      • Broker端参数
      • Topic级别参数
      • JVM参数

Kafka是消息引擎系统,也是分布式流处理平台

Kafka入门

消息引擎系统ABC

民间版:系统 A 发送消息给消息引擎系统,系统 B 从消息引擎系统中读取 A 发送的消息。
消息引擎是用于在不同系统之间传输消息的,那么如何设计待传输消息的格式从来都是一等一的大事。Kafka使用的是纯二进制的字节序列。当然消息还是结构化的,只是在使用之前都要将其转换成二进制的字节序列。

点对点模型:也叫消息队列模型。如果拿上面那个“民间版”的定义来说,那么系统 A发送的消息只能被系统 B 接收,其他任何系统都不能读取 A 发送的消息。日常生活的例子比如电话客服就属于这种模型:同一个客户呼入电话只能被一位客服人员处理,第二个客服人员不能为该客户服务。

发布 / 订阅模型:与上面不同的是,它有一个主题(Topic)的概念,你可以理解成逻辑语义相近的消息容器。该模型也有发送方和接收方,只不过提法不同。发送方也称为发布者(Publisher),接收方称为订阅者(Subscriber)。和点对点模型不同的是,这个模型可能存在多个发布者向相同的主题发送消息,而订阅者也可能存在多个,它们都能接收到相同主题的消息。生活中的报纸订阅就是一种典型的发布 / 订阅模型。
我们不禁要问,为什么系统 A 不能直接发送消息给系统 B,中间还要隔一个消息引擎呢?
答案就是“削峰填谷”。
通常来说,两个进程进行数据流交互的方式一般有三种:

  1. 通过数据库:进程1写入数据库;进程2读取数据库
  2. 通过服务调用:比如REST或RPC,而HTTP协议通常就作为REST方式的底层通讯协议
  3. 通过消息传递的方式:进程1发送消息给名为broker的中间件,然后进程2从该broker中读取消息。消息传输协议属于这种模式

快速搞定Kafka术语

kafka三层消息架构

  • 第一层是主题层,每个主题可以配置 M 个分区,而每个分区又可以配置 N 个副本。
  • 第二层是分区层,每个分区的 N 个副本中只能有一个充当领导者角色,对外提供服务;其他 N-1 个副本是追随者副本,只是提供数据冗余之用。
  • 第三层是消息层,分区中包含若干条消息,每条消息的位移从 0 开始,依次递增。最后,客户端程序只能与分区的领导者副本进行交互。

名词术语

消息:Record。Kafka 是消息引擎嘛,这里的消息就是指 Kafka 处理的主要对象。
主题:Topic。主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务。
分区:Partition。一个有序不变的消息序列。每个主题下可以有多个分区。
消息位移:Offset。表示分区中每条消息的位置信息,是一个单调递增且不变的值。
副本:Replica。Kafka 中同一条消息能够被拷贝到多个地方以提供数据冗余,这些地方就是所谓的副本。副本还分为领导者副本和追随者副本,各自有不同的角色划分。副本是在分区层级下的,即每个分区可配置多个副本实现高可用。
生产者:Producer。向主题发布新消息的应用程序。消费者:Consumer。从主题订阅新消息的应用程序。消费者位移:Consumer Offset。表征消费者消费进度,每个消费者都有自己的消费者位移。
消费者组:Consumer Group。多个消费者实例共同组成的一个组,同时消费多个分区以实现高吞吐。重平衡:Rebalance。消费者组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅主题分区的过程。Rebalance 是 Kafka 消费者端实现高可用的重要手段。
在这里插入图片描述

Kafka监控工具:
kafka manager kafka eagle JMXTrans + InfluxDB + Grafana

Kafka基础

Kafka部署参考

重要配置参数

Broker端参数

log.dirs: 指定了Broker需要使用的若干个文件目录路径。在线上生产环境中一定要为log.dirs配置多个路径,具体格式是一个 CSV 格式,也就是用逗号分隔的多个路径,比如/home/kafka1,/home/kafka2,/home/kafka3这样。如果有条件的话你最好保证这些目录挂载到不同的物理磁盘上。
zookeeper.connect:
这也是一个 CSV 格式的参数,比如我可以指定它的值为zk1:2181,zk2:2181,zk3:2181。2181 是 ZooKeeper的默认端口。
如果我让多个 Kafka 集群使用同一套ZooKeeper 集群,那么这个参数应该怎么设置呢?这时候chroot 就派上用场了。这个 chroot 是 ZooKeeper 的概念,类似于别名。
如果你有两套 Kafka 集群,假设分别叫它们 kafka1 和kafka2,那么两套集群的zookeeper.connect参数可以这样指定:zk1:2181,zk2:2181,zk3:2181/kafka1和zk1:2181,zk2:2181,zk3:2181/kafka2。切记 chroot只需要写一次,而且是加到最后的。
zookeeper.connect=172.20.38.137:34983,172.20.38.148:34983,172.20.38.125:34983
listeners:
listeners:学名叫监听器,其实就是告诉外部连接者要通过什么协议访问指定主机名和端口开放的 Kafka 服务。
监听器的概念,从构成上来说,它是若干个逗号分隔的三元组,每个三元组的格式为<协议名称,主机名,端口号>。这里的协议名称可能是标准的名字,比如PLAINTEXT 表示明文传输、SSL 表示使用 SSL 或 TLS 加密传输等;也可能是你自己定义的协议名字
listeners=PLAINTEXT://172.20.38.148:34984
advertised.listeners
和 listeners 相比多了个advertised。Advertised 的含义表示宣称的、公布的,就是说这组监听器是 Broker 用于对外发布的。
advertised.listeners主要是为外网访问用的。如果clients在内网环境访问Kafka不需要配置这个参数。
log.retention.{hour|minutes|ms}
log.retention.hour=168
自动删除 7 天前的数据
log.retention.bytes:这是指定 Broker 为消息保存的总磁盘容量大小
message.max.bytes:
message.max.bytes=10485760(10M)
auto.create.topics.enable:是否允许自动创建Topic。
unclean.leader.election.enable:是否允许Unclean Leader 选举。
auto.leader.rebalance.enable:是否允许定期进行 Leader 选举。

Topic级别参数

Topic级别参数会覆盖全局Broker参数的值,可以通过kafka-configs自带脚本修改Topic级别参数。
retention.ms:规定了该 Topic 消息被保存的时长。默认是 7 天,即该 Topic 只保存最近 7 天的消息。一旦设置了这个值,它会覆盖掉 Broker 端的全局参数值。
retention.bytes:规定了要为该 Topic 预留多大的磁盘空间。和全局参数作用相似,这个值通常在多租户的Kafka 集群中会有用武之地。当前默认值是 -1,表示可以无限使用磁盘空间。

JVM参数

  • KAFKA_HEAP_OPTS:指定堆大小。(一般设置6G)
  • KAFKA_JVM_PERFORMANCE_OPTS:指定 GC 参数

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

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

相关文章

OPENPPP2 VEthernet 网络协议堆栈(CTCP)VNetStack 深度技术解析

&#x1f310; OPENPPP2 VEthernet 网络协议堆栈&#xff08;CTCP&#xff09;VNetStack 深度技术解析&#x1f3d7;️ 一、系统架构全景图 #mermaid-svg-FdlbKZCGQDDbvOL6 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermai…

Gartner发布2025年中国网络安全成熟度曲线:网络安全的重点正转向保护AI、推动业务转型和增强组织韧性

网络安全的重点正转向保护人工智能、推动业务转型和增强组织韧性。首席信息官及其安全和风险管理主管可以利用这份技术成熟度曲线来识别实用且高价值的技术和实践&#xff0c;从而保持安全和敏捷。 战略规划假设 到2027年&#xff0c;60%的中国大型组织将在安全运营中心&#x…

网络准入控制系统的作用解析,2025年保障企业入网安全第一道防线

在当今数字化时代&#xff0c;网络已成为企业运营的基础&#xff0c;随着网络的广泛应用&#xff0c;网络准入控制系统作为保障网络安全的重要手段&#xff0c;正发挥着至关重要的作用。保障网络安全网络准入控制系统如同网络的忠诚卫士&#xff0c;它为网络大门安装了智能锁&a…

java基础(day09)

目录 1.继承的作用 2.继承树 3.protected和super protected super 注&#xff1a;super/this()--构造方法&#xff0c;第一行&#xff0c;一般不同时出现 4.向上向下转型 向上转型 向下转型 final 小结 1.继承的作用 理解&#xff1a;首先就是可以实现代码复用&#x…

如何进行选择。

初始理解问题 首先&#xff0c;我们需要明确题目在问什么。题目“House Robber”描述的是一个强盗在一排房屋前&#xff0c;每个房屋都有一定数量的钱。强盗不能连续抢劫两个相邻的房屋&#xff0c;否则会触发警报。目标是抢劫到最多的钱。 动态规划的思路 这个问题可以使用动态…

PHP语法高级篇(三):Cookie与会话

Cookie与会话在 Web 编程中十分实用&#xff1a;Cookie 能实现一周免登录&#xff0c;还能记住用户的主题偏好&#xff1b;会话可保存当前用户信息&#xff0c;也能临时存储购物车数据。本篇文章将记录Cookie与会话的学习过程。 一、Cookie cookie 常用于识别用户。cookie 是服…

11. JVM中的分代回收

1. JVM介绍和运行流程-CSDN博客 2. 什么是程序计数器-CSDN博客 3. java 堆和 JVM 内存结构-CSDN博客 4. 虚拟机栈-CSDN博客 5. JVM 的方法区-CSDN博客 6. JVM直接内存-CSDN博客 7. JVM类加载器与双亲委派模型-CSDN博客 8. JVM类装载的执行过程-CSDN博客 9. JVM垃圾回收…

基于PaddleOCR的营业执照识别与数据分析系统

基于PaddleOCR的营业执照识别与数据分析系统 1. 项目概述 本项目旨在利用百度PaddleOCR技术识别营业执照图片中的关键信息,结合自然语言处理(NLP)和卷积神经网络(CNN)对OCR结果进行分类处理,最后对识别出的收入流水数据进行深度分析与可视化展示。系统将实现从图像识别到数…

SpringBoot JSON字典序列化翻译

&#x1f9e9; 一、效果预期 Data public class UserVO {private String status;DictTranslate(type "user_status")private String statusName; }最终返回 JSON&#xff1a; {"status": "1","statusName": "启用" }&#…

基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(5)失败用例截图与重试

在UI自动化测试用例执行过程中&#xff0c;经常会有很多不确定的因素导致用例执行失败&#xff0c;比如网络原因、环境问题等&#xff0c;所以我们有必要引入重试机制&#xff08;失败重跑&#xff09;&#xff0c;来提高测试用例执行稳定性。准备工作&#xff1a;我们在进行失…

【Oracle】centos7静默安装oracle19c

静默安装三步骤&#xff1a; 1、数据库安装db_install.rsp&#xff08;数据库软件安装响应文件&#xff09;2、配置监听netca.rap&#xff08;监听配置响应文件&#xff09;3、建库dbca.rsp&#xff08;建库响应文件&#xff09;安装oracle19c先决条件准备&#xff1a; 1.检查主…

MCP基础知识二(实战通信方式之Streamable HTTP)

介绍 MCP 使用 JSON-RPC 2.0 作为其传输格式。传输层负责将 MCP 协议消息转换为 JSON-RPC 格式进行传输&#xff0c;并将接收到的 JSON-RPC 消息转换回 MCP 协议消息。其中SSE被废弃了&#xff08;Server-Sent Events (SSE) - Deprecated&#xff09; SSE as a standalone tra…

量子计算与AI的融合:开启智能革命的“量子跃迁”新范式

当量子计算的并行算力与人工智能的深度学习能力相遇,一场颠覆传统认知的技术革命正在酝酿。从药物研发到自动驾驶,从金融风控到气候预测,两者的融合不仅突破了经典计算的算力天花板,更催生出全新的算法范式与产业生态。本文将深入解析量子计算与AI融合的技术逻辑、核心突破…

【氮化镓】不同偏压应力下电荷俘获效应导致的P-GaN HEMT阈值电压不稳定性

2022年12月7日,意大利国家研究委员会微电子与微系统研究所的Giuseppe Greco等人在《Applied Physics Letters》期刊发表了题为《Threshold voltage instability by charge trapping effects in the gate region of p-GaN HEMTs》的文章,基于对p-GaN高电子迁移率晶体管(HEMTs…

ONLYOFFICE深度解锁系列.10-如何识别图像和PDF扫描件中的文本?用ONLYOFFICE的AI OCR轻松搞定!

ONLYOFFICE 文档版本 9.0带来多项 AI 关键改进&#xff0c;显著提升您处理电子表格和 PDF 文件的工作效率。本指南将重点介绍新增的 OCR 功能&#xff0c;并讲解如何在 PDF 编辑器中利用 AI 助手将图像转为可编辑文本。什么是 OCR 文字识别&#xff1f;OCR 技术能够扫描各类文档…

单例模式详解:确保一个类只有一个实例

在软件开发中&#xff0c;设计模式是解决常见问题的经典方案。单例模式&#xff08;Singleton Pattern&#xff09;作为创建型设计模式中最简单也最常用的一种&#xff0c;确保一个类只有一个实例&#xff0c;并提供一个全局访问点。本文将全面探讨单例模式的概念、多种实现方式…

Appdynamic 配置 PostgreSQL 收集器

配置 PostgreSQL 收集器 您可以使用数据库可见性监控任何版本的 PostgreSQL。 连接详细信息 部分场地描述创建新的收集器数据库类型您想要监控的数据库类型。代理人管理收集器的数据库代理。收藏家姓名您想要用来识别收集器的名称。连接详细信息主机名或 IP 地址运行数据库的机…

其他常见 HTTP 方法

除了最常用的四种方法&#xff08;GET、POST、PUT、DELETE&#xff09;&#xff0c;HTTP 协议还定义了一些较少使用但非常有用的请求方法&#xff0c;常用于调试、部分更新、跨域预检等场景。1. HEAD 方法&#xff1a;获取响应头 特点&#xff1a; 用途&#xff1a;与 GET 类似…

Web应用防火墙(WAF)技术

目录 一&#xff1a;简介 1.1 Web安全现状 1.2 传统防御的局限性 二&#xff1a;Web应用防火墙技术解析 2.1 WAF核心架构 2.2 关键技术特性 三&#xff1a;WAF必要性 3.1 典型防护场景 3.2 与传统方案对比 四&#xff1a;进阶防护方案 4.1 智能WAF架构 4.2 关键技术…

机器学习之线性回归(七)

机器学习之线性回归&#xff08;七&#xff09; 文章目录机器学习之线性回归&#xff08;七&#xff09;一、线性回归线性回归超全指南&#xff1a;从“一条直线”到“正则化调参”的完整旅程0. 先对齐语言&#xff1a;标称型 vs 连续型1. 问题形式化2. 损失函数全景3. 求解方法…