kafka入门

文章目录

主题

kafka中的消息存在topic中,也就是主题,类似于数据库中的表,通常我们将相同类型的消息存放在一个主题中。数据库的表是结构化,而topic是半结构化,某些情况下我们也可以将不同类型的消息存放在同一个topic中。

分区

主题可以包含多个分区,kafka是分布式的消息系统,可以将不同的分区存到不同的服务器上,这样就使得kafka具有拓展性。可调整分区的数量和kafka节点的数量来进行拓展。

分区是线性增长的,当消息存到kafka分区里,就不可变更,kafka会为每个消息分配一个偏移量,也就是offset,offset会记录每条消息的位置,kafka可通过偏移量对消息进行提取,但没法对消息的内容进行检索和查询。偏移量在每个分区中是唯一的,不可重复,递增的。不同的分区之间偏移量可以重复。

kafka中的消息 record是以键值对的形式进行存储的,不指定key,那key的值就是空。

key值为空,kafka会以轮询的方式讲消息写到不同的分区中。

如果我们指定了key,那么相同key的消息会被写入相同的分区。

副本

kafka通过副本机制来保证消息的可靠性。

消息代理

Broker负责消息的读写请求,并将数据写入到磁盘中。

相关推荐
小马爱打代码8 小时前
分布式事务(半消息)
分布式
黄尚圈圈8 小时前
RabbitMQ 消息队列:生产者与消费者实现详解
分布式·rabbitmq
TravisBytes9 小时前
Protobuf 为什么这么快?解密它背后的高效编码机制与 C++ 实践
c++·分布式·go
懒鸟一枚10 小时前
Zookeeper下载、安装配置
分布式·zookeeper
肖恩架构10 小时前
ZK不香吗?Kafka为什么要放弃Zookeeper?
后端·架构·kafka
xingjigongsi11 小时前
详解mysql和消息队列数据一致性问题
mysql·kafka·rocketmq·cdc·数据双写·消息不一致
极客先躯12 小时前
高级java每日一道面试题-2024年9月26日-运维篇[分布式篇]-如何保证每个服务器的时间都是同步的?
linux·运维·分布式·面试·时间同步·网络时间协议(ntp)·精密时间协议(ptp)
goTsHgo12 小时前
Spark 中所有用到了Job对象的组件模块和关系
大数据·分布式·spark
goTsHgo12 小时前
Spark Job 对象 详解
大数据·分布式·spark
Dylanioucn13 小时前
【分布式微服务云原生】Docker常用命令指南
分布式·docker·微服务