kafka

实时流计算中
kafka作为分布式、可分区、具有副本数日志收集中心
1.可扩展
2.高容错
3.访问速度快
4.分布式特性

Kafka中的消息以主题(Topic)为单位进行分类,主题是一个逻辑上的概念。
主题还可以细分为一个或多个分区,一个分区只属于单个主题,可以把分区称为主题分区。
同一个主题下的不同分区包含的消息是不同的,每个分区还可以有多个副本用于容灾备份。
分区在存储层面可以看作一个可追加的日志(Log)文件,消息在被追加到分区日志文件的时候都会分配一个特定的偏移量(offset)。
offset是消息在分区中的唯一标识,Kafka通过它来保证消息在分区内的顺序性,不过offset并不跨越分区,也就是说,Kafka保证的是分区有序而不是主题有序。

分区使用多副本机制来提升可靠性,每个分区的副本分为leader副本和follower副本。
只有leader副本对外提供读写服务,follower副本只负责在内部进行消息同步
一个分区的leader副本不可用,Kafka就会从follower副本中选举出一个新的leader副本

Kafka高性能的原因:
1)分区:
一个主题下的分区可以分布在集群的不同broker上面,一个主题可横跨多个broker。
分区的设计使得Kafka消息的读写性能可以突破单台broker的I/O性能瓶颈,增加分区数可以实现水平扩展
2)日志分段存储:
3)消息顺序追加:
4)页缓存:
5)零拷贝:
参考:https://www.cnblogs.com/lvnux/p/13174986.html (主要)
https://www.jianshu.com/p/9293b857c6ab (无关痛痒)

客户端写入到 Kafka 的数据首先是写入到操作系统缓存的(所以很快),
然后缓存里的数据根据一定的策略再写入到磁盘,
并且写入到磁盘的时候是顺序写,顺序写如果磁盘的个数和转数跟得上的话,快赶上写内存的速度

读数据的高性能设计?
每个消息都会有 offset,消费者消费某个 offset 的消息的时候是如何快速定位
跳表、稀松索引、零拷贝
参考:https://www.cnblogs.com/Jss-forever/p/13044294.html (主要)
https://blog.csdn.net/weixin_33939843/article/details/91542359 (笼统说法)

了解详情的搭建过程以及组成单元
kafka集群有多个kafka实例组成,每个实例(server)成为broker
https://blog.csdn.net/lzb348110175/category_9309572.html (主要)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值