Kafka 基本概念和术语

1、消息

Record:Kafka 是消息引擎嘛,这里的消息就是指 Kafka 处理的主要对象。

2、主题

Topic:主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务。在Kafka 中发布订阅的对象是 Topic。

3、分区

Partition:一个有序不变的消息序列。每个主题下可以有多个分区。业务上要保证顺序性,将消息都写到一个分区,由单个消费线程消费即可实现顺序消费。多个分区无法保证消息的全局顺序性

4、消息位移

Offset:表示分区中每条消息的位置信息,是一个单调递增且不变的值。kafka 底层是追加写,所以效率高,所以单调递增,一旦写到磁盘上后,消息的位置就是固定的了

5、副本

Replica:Kafka 中同一条消息能够被拷贝到多个地方以提供数据冗余,这些地方就是所谓的副本。

副本还分为领导者副本和追随者副本。领导者副本对外提供服务,生产者向领导者副本写消息,消费者从领导者副本读消息;追随者副本只是向领导者副本发起请求同步最新的消息。

为啥是追随者副本向领导者副本发起请求而不是领导者副本向追随者推送消息?Kafka 不是 PUSH 模型而是 PULL 模型。

副本是在分区层级下的,即每个分区可配置多个副本实现高可用

6、生产者

Producer:向主题发布新消息的应用程序,可以向一个或者多个主题发送消息。

7、消费者

Consumer:从主题订阅新消息的应用程序,可以同时订阅多个主题的消息。 一个主题可以让若干个 consumer 消费,若干个 consumer 组成一个 consumer group ,一条消息只能被 consumer group 中一个 consumer 消费,若干个 partition 被若干个 consumer 同时消费,达到消费者高吞吐量

8、消费者位移

Consumer Offset:表征消费者消费进度,每个消费者都有自己的消费者位移。正常都是顺序消费一遍的,当然也可以重置消费者位移来达到业务目的。

9、消费者组

Consumer Group:多个消费者实例共同组成的一个组,同时消费多个分区以实现高吞吐。

10、重平衡

Rebalance。消费者组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅主题分区的过程。Rebalance 是 Kafka 消费者端实现高可用的重要手段。

11、broker

服务代理节点,Kafka 服务实例。 N 个组成一个 Kafka 集群,通常一台机器部署一个 Kafka 实例,一个实例挂了其他实例仍可以使用,体现了高可用。

为什么 Kafka 不像 MySQL 那样允许追随者副本对外提供读服务?

为什么kafka不支持主从分离? - 知乎

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

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

相关文章

原子性、CAS操作

Java中的原子性操作 所谓原子性操作,是指执行一系列操作时,这些操作要么全部执行,要么全部不执行,不存在只执行其中一部分的情况。 在设计计数器时一般都先读取当前值,然后1,再更新。 这个过程是读—改—写的过程&a…

python归并排序

归并排序(Merge Sort)是一种经典的排序算法,它采用分治法的一个非常典型的应用。该算法将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。其基本步骤如下: 1…

msckf-vio 跑Euroc数据集,并用evo进行评估

所需材料: Euroc数据集主页:https://projects.asl.ethz.ch/datasets/doku.php?idkmavvisualinertialdatasetsevo评估工具代码:https://github.com/MichaelGrupp/evo向msckf-vio中添加保存位姿的代码,可参考https://blog.csdn.ne…

C++中使用vector保存新建对象中自指指针的问题

问题 在某些场景中(例如并查集),我们需要将新建对象中的指针指向对象自己。例如, struct factor {int data;factor* next;factor(int i) : data(i), next(this){} }; 这样的结构体当然没有问题,如果我们想以类似链表…

分布式锁3: zk实现分布式锁3 使用临时顺序节点+watch监听实现阻塞锁

一 zk实现分布式锁 1.1 使用临时顺序节点 的问题 接上一篇文章,每个请求要想正常的执行完成,最终都是要创建节点,如果能够避免争抢必然可以提高性能。这里借助于zk的临时序列化节点,实现分布式锁 1. 主要修改了构造方法和lock方…

MYSQL 索引使用规则

索引失效 最左前缀法则 where之后写的顺序不重要&#xff0c;存在就可以 范围查询后面的索引查询失效&#xff08;比如>&#xff09;,但是>或者<是不会失效的 不要在索引列上进行运算操作&#xff0c;否则索引失效。 字符串类型字段不加引号索引会失效 尾部模糊匹配…

cgo环境之-安装gcc mingw

下载 到官网下载&#xff1a; 官网 如果你是Windows arm 芯片&#xff0c;可以到这里下载 https://github.com/mstorsjo/llvm-mingw/releases

四、C语言中的数组:数组的输入与元素个数

本章的学习链接如下&#xff1a; 四、C语言中的数组&#xff1a;数组的创建与初始化 1.数组的输入 其实在之前的学习中&#xff0c;我们已经学过了如何用scanf()安全地输入数组&#xff0c;在这一章中我们讲解几种不同的方式。 在 C 语言中&#xff0c;数组的输入通常涉及到…

Spring05

一、Spring事务管理入门 1.1、创建数据库和表 创建一个Spring数据库&#xff0c;在Spring数据库中创建tb_account(账户表)&#xff0c;并初始化数据。 1.2、编写Service层、Mapper层以及调用层 1.2.1、AccountServiceImpl实现了AccountService接口 1.2.2、Mapper层中的代码 1…

数据分析概述

目录 1.数据分析的基本类型&#xff1a;2.数据分析的实现方式&#xff1a;3.机器学习和统计学的区别&#xff1a;3.1统计学3.2机器学习 小结&#xff1a; 1.数据分析的基本类型&#xff1a; 这就不得不提到Gartner分析学价值扶梯模型了&#xff0c;这个模型从复杂度和价值两个…

端口开放问题

端口开放问题 所遇问题 在宿主主机上可以ping通虚拟机ip192.168.27.129&#xff0c;但无法在宿主主机上访问http://192.168.27.129:8080navavcat 16连接mysql时&#xff0c;2002 - Can’t connect to server on ‘192.168.27.129’(100601&#xff09; 原因 以上两个问题&a…

树莓派4B使用ncnn部署yolov5-Lite,推理耗时 247ms 包含前后处理

一. 引言 最近在玩树莓派&#xff0c;想在树莓派上不是一个目标检测算法&#xff0c;大致看了一下&#xff0c;目前开源的大家都在使用yolov5-Lite&#xff0c;使用ncnn去推理加速&#xff0c;于是自己也尝试部署&#xff0c;在此记录一下&#xff0c;个人踩的坑。 二. 版本选…

Matlab三维绘图

绘制三维图plot3 t0:pi/50:10*pi; xsin(t); ycos(t); zt; plot3(x,y,z); 产生栅格数据点meshgrid 这个接口在绘制三维图像里面相当重要&#xff0c;很多时候要将向量变成矩阵才能绘制三维图。 x0:0.5:5; y0:1:10; [X,Y]meshgrid(x,y); plot(X,Y,o); x和y是向量&#xff0c;…

极值和平均值-第11届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第22讲。 极值和平均值&…

GO语言笔记1-安装与hello world

SDK开发工具包下载 Go语言官网地址&#xff1a;golang.org&#xff0c;无法访问Golang中文社区&#xff1a;首页 - Go语言中文网 - Golang中文社区下载地址&#xff1a;Go下载 - Go语言中文网 - Golang中文社区 尽量去下载稳定版本&#xff0c;根据使用系统下载压缩包格式的安装…

【算法】 dp题单练习(寒假正在更新中)

题单链接&#xff1a; https://vjudge.net/contest/574209#overview 目录 1. 洛谷 P1020 导弹拦截 &#xff08;dp二分Dilworth 定理&#xff09; 2. 洛谷 P1439 最长公共子序列&#xff08;二分求最长公共子序列&#xff09; 3. 洛谷 P1854 花店橱窗布置 &#xff08;线…

Illegal hex characters in escape (%) pattern

java.lang.NullPointerException 原因是关键字&#xff1a;5%葡萄糖注射液 其中的百分号通过HttpServletRequest的getParameter传到后端提示空指针异常&#xff0c;然后使用url格式&#xff0c;百分号的十六进制是%25&#xff08;百分号加25&#xff09; 在js代码中加入一段正…

Mybatis实现增删改查的两种方式-配置文件/注解

环境准备 1.数据库表tb_brand -- 删除tb_brand表 drop table if exists tb_brand; -- 创建tb_brand表 create table tb_brand(-- id 主键id int primary key auto_increment,-- 品牌名称brand_name varchar(20),-- 企业名称company_name varchar(20),-- 排序字段ordered int…

【SpringCloud Alibaba笔记】(2)Sentinel实现熔断与限流

Sentinel 概述 官网&#xff1a;https://github.com/alibaba/Sentinel 中文文档&#xff1a;https://sentinelguard.io/zh-cn/docs/introduction.html 类似Hystrix&#xff0c;以流量为切入点&#xff0c;从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热…

spdlog源码学习

前言 spdlog是一个跨平台c 的开源日志库 &#xff0c;可以head only 使用&#xff0c;包含部分modern c 语法&#xff0c; 更是兼容了c20 format&#xff0c;支持异步和格式化输出&#xff0c;通俗易懂&#xff0c;适合阅读。 源码下载 here 用法 直接贴上了 example.cpp …