kafka---topic详解

devtools/2024/11/14 12:20:51/

一、分区与高可用

在Kafka中,事件(events 事件即消息)是以topic的形式进行组织的;同时topic是分区(partitioned)的,这意味着一个topic分布在Kafka broker上的多个“存储桶”(buckets)上。这种数据的分布式放置对于可伸缩性非常重要,因为它允许客户端应用程序同时从多个broker读取和写入数据。当新事件发布到主题时,它实际上会附加到主题的分区之一。具有相同事件键的事件(例如,客户或车辆 ID)被写入同一分区,Kafka确保了在分区维度上读写的顺序性,即与写入完全相同的顺序读取该分区的消息。相关架构如下:
在这里插入图片描述

二、数据组织架构

Message是按照topic来组织,每个topic可以分成多个的partition,partition在服务器上的表现形式就是一个一个的文件夹(命名规则:topic名称+分区序号);并且为了防止log文件过大,又将partition切割成一个一个log segment,一个log segment对应三个文件,即index、log、timeindex、snapshot。log文件就实际是存储 message 的地方,而 index 和 timeindex 文件为索引文件,用于检索消息,snapshot是快照文件。这三个文件文件名一致,只是后缀不一致;
==文件命名规则:==其中每个 LogSegment 都有一个 Offset 来作为基准偏移量(baseOffset),用来表示当前 LogSegment 中第一条消息的Offset。偏移量是一个64位的 Long 长整型数,最大长度为20位数字,日志文件和这几个索引文件都是根据基准偏移量(baseOffset)命名的,名称固定为20位数字,没有达到的位数前面用0填充。比如第一个 LogSegment 的基准偏移量为0,对应的日志文件为00000000000000000000.log。相关架构如下:
在这里插入图片描述
相关目录如下:

[zhjl@yyzc-zhjlpi01 bin]$ ls -lR /tmp/kafka-logs/
/tmp/kafka-logs/:
total 16
-rw-r--r-- 1 zhjl zhjl   0 Apr 14 13:51 cleaner-offset-checkpoint
-rw-r--r-- 1 zhjl zhjl   4 Apr 16 20:00 log-start-offset-checkpoint
-rw-r--r-- 1 zhjl zhjl  88 Apr 15 21:18 meta.properties
-rw-r--r-- 1 zhjl zhjl  44 Apr 16 20:00 recovery-point-offset-checkpoint
-rw-r--r-- 1 zhjl zhjl  44 Apr 16 20:00 replication-offset-checkpoint
drwxr-xr-x 2 zhjl zhjl 167 Apr 16 09:35 topic-A-0
drwxr-xr-x 2 zhjl zhjl 167 Apr 16 09:35 topic-A-1
drwxr-xr-x 

http://www.ppmy.cn/devtools/5776.html

相关文章

MySQL、Oracle查看最大连接数和当前连接数

文章目录 1. MySQL2. Oracle 1. MySQL -- 查看最大连接数 show variables like max_connections; select max_connections; -- select * from performance_schema.session_variables where VARIABLE_NAME in (max_connections); -- select * from performance_schema.global…

神经网络进阶学习文章(一)

1.讲解YOLO有关知识 深入浅出Yolo系列之Yolov5核心基础知识完整讲解 - 知乎 (zhihu.com) 2.目标检测算法综述 目标检测算法综述 - 知乎 (zhihu.com) 3.TensorFlow详解,当然现在用的最多的是Pytorch框架了 谷歌大神带你十分钟看懂TensorFlow - 知乎 (zhihu.co…

富格林:致用查明暗箱黑幕技巧

富格林认为,投资现货黄金对于新手投资者来说是一个很好的选择,但是在进行投资之前需要了解一些基本的技巧和策略用以查明暗箱黑幕。事实上,现货黄金市场充满着丰富的交易机会,以及并存的交易风险,因此投资者要想在这其…

政安晨:【深度学习神经网络基础】(十二)—— 深度学习概要

目录 概述 深度学习的概况 深度学习的组成部分 部分标记的数据 修正线性单元 卷积神经网络 神经元Dropout GPU训练 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨益&#xf…

高频前端面试题汇总之手写代码篇

一、JavaScript 基础 1. 手写 Object.create 思路:将传入的对象作为原型 function create(obj) {function F() {}F.prototype objreturn new F() } ​ 2. 手写 instanceof 方法 instanceof 运算符用于判断构造函数的 prototype 属性是否出现在对象的原型链中的…

免费ssl通配符证书申请教程

在互联网安全日益受到重视的今天,启用HTTPS已经成为网站运营的基本要求。它不仅保障用户数据传输的安全,提升搜索引擎排名,还能增强用户对网站的信任。通配符证书是一种SSL/TLS证书,用于同时保护一个域名及其所有下一级子域名的安…

全量知识系统 程序详细设计 定稿 之1 (QA SmartChat )

Q1. 从今天开始,我们进入到全量知识系统(简称“全知系统”)的程序详细设计的 整理成文阶段--“定稿”(或“成熟”)阶段(相应的,前一阶段可以称为程序详细设计的“构思”(或“喂养”&…

Flutter-----异步编程:Future和Stream

异步编程:使用 Future 和 async-await | Dart 什么是异步操作/异步操作的作用? Dart 代码运行在单个执行“线程”中。如果 Dart 代码在执行时阻塞,例如:处理一个需要长时间运行的计算操作或等待 I/O 完成。此时整个程序会被“冻…