![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Kafka
琦小虾
抱拳会天下英豪,煮酒论成败是非。
展开
-
Kafka技术知识总结之九——Kafka消息压缩与日志压缩
接上篇《Kafka技术知识总结之八——Kafka生产者结构》9. Kafka 消息压缩与日志压缩9.1 消息压缩日志 v2 版本的压缩,优化内容:RecordBatch 与 Record:对多条消息 (Record) 进行压缩,称为消息集 (RecordBatch),压缩形式为外层 (RecordBatch) - 内层消息 (Record) 的形式,每个消息集对应一个或多个消息;变长字段 Variant:变长字段用来对数值内容进行压缩;(1) Variant 变长字段可以表示 int32.原创 2020-07-07 22:44:38 · 609 阅读 · 0 评论 -
Kafka技术知识总结之八——Kafka生产者结构
接上篇《Kafka技术知识总结之七——Kafka磁盘存储》八. Kafka 生产者结构Kafka Producer 主要有三个部分组成:主线程、Sender 线程、RecordAccumulator。主线程:执行序列化、分区、拦截器处理等主要操作,并将消息缓存到 RecordAccumulator 中;Sender 线程:从 RecordAccumulator 中拉数据,发送到 broker;RecordAccumulator:缓存主线程的消息,并提供给 Sender 线程;生产者执行流.原创 2020-07-07 22:42:54 · 193 阅读 · 0 评论 -
Kafka技术知识总结之七——Kafka磁盘存储
接上篇《Kafka技术知识总结之六——Kafka负载均衡策略》七. 磁盘存储参考地址:《Kafka如何实现每秒上百万的高并发写入》《深入理解 Kafka:核心设计与实践原理》5.5 章节Kafka 在大数据领域有极为广泛的运用,配置良好的 Kafka 集群甚至可以做到每秒几十万、上百万的超高并发写入。通常磁盘写入是一种非常缓慢的操作,Kafka 的高并发写入主要是依靠页缓存和零拷贝两种技术实现的。7.1 页缓存操作系统本身有一层缓存,叫做页缓存 (Page Cache),又被称为 OS.原创 2020-07-07 22:40:44 · 1372 阅读 · 1 评论 -
Kafka技术知识总结之六——Kafka负载均衡策略
接上篇《Kafka技术知识总结之五——Kafka的高可用性》六. Kafka负载均衡策略6.1 分区器分区器是生产者层面的负载均衡。Kafka 生产者生产消息时,根据分区器将消息投递到指定的分区中,所以 Kafka 的负载均衡很大程度上依赖于分区器。Kafka 默认的分区器是 Kafka 提供的 DefaultPartitioner。它的分区策略是根据 Key 值进行分区分配的:如果 key 不为 null:对 Key 值进行 Hash 计算,从所有分区中根据 Key 的 Hash 值计算出.原创 2020-07-07 22:35:54 · 3984 阅读 · 0 评论 -
Kafka技术知识总结之五——Kafka的高可用性
接上篇《Kafka技术知识总结之四——Kafka 再均衡》五. 消息中间件的高可用性5.1 消息中间件的高可用性Kafka 实现高可用性的方式是进行 replication。对于 kafka,如果没有提供高可用性机制,一旦一个或多个 Broker 宕机,则宕机期间其上所有 Partition 都无法继续提供服务。若该 Broker永远不能再恢复,那么所有的数据也就将丢失,这是不可容忍的。所以 kafka 高可用性的设计也是进行 Replication。Replica 的分布:为了尽量做好负载均衡.原创 2020-07-07 22:32:54 · 385 阅读 · 0 评论 -
Kafka技术知识总结之四——Kafka 再均衡
接上篇《Kafka技术知识总结之三——Kafka 高效文件存储设计》四. Kafka 再均衡原理4.1 消费者再均衡Kafka 通过 消费组协调器 (GroupCoordinator) 与消费者协调器 (ConsumerCoordinator),实现消费者再均衡操作。消费组协调器 (GroupCoordinator):Kafka 服务端中,用于管理消费组的组件;消费者协调器 (ConsumerCoordinator):Consumer 客户端中,负责与 GroupCoordinator 进行.原创 2020-07-07 22:28:27 · 2807 阅读 · 0 评论 -
Kafka技术知识总结之三——Kafka 高效文件存储设计
接上篇《Kafka技术知识总结之二——Kafka事务》三. Kafka 高效文件存储设计参考地址:《kafka的消息消费机制、consumer的负载均衡、文件存储机制》Kafka 把 topic 中一个 parition 大文件分成多个小文件段,通过多个小文件段,就容易定期清除或删除已经消费完文件,减少磁盘占用。通过索引信息可以快速定位 message 和确定 response 的最大大小。通过 index 元数据全部映射到内存,可以避免 segment 文件的 IO 磁盘操作。通过索.原创 2020-07-07 07:30:10 · 444 阅读 · 0 评论 -
Kafka技术知识总结之二——Kafka事务
接上篇《Kafka技术知识总结之一——Kafka 的元素,组成,架构》二. Kafka 事务参考地址:《【干货】Kafka 事务特性分析》2.1 Kafka 事务简述Kafka 事务与数据库的事务定义基本类似,主要是一个原子性:多个操作要么全部成功,要么全部失败。Kafka 中的事务可以使应用程序将消费消息、生产消息、提交消费位移当作原子操作来处理。为了实现事务,Producer 应用程序必须做到:提供唯一的 transactionalIdproperties.put(Produ.原创 2020-07-07 07:29:51 · 1161 阅读 · 3 评论 -
Kafka技术知识总结之一——Kafka 的元素,组成,架构
一. Kafka 的元素,组成,架构1.1 Kafka 的基本组成Kafka将消息以topic为单位进行归纳将向Kafka topic发布消息的程序成为producers.将预订topics并消费消息的程序成为consumer.Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker.producers通过网络将消息发送到Kafka集群,集群向消费者提供消息1.2 Kafka 分区的 HW, LEO参考地址:《Kafka中的HW、LEO、LSO等分别代表什么?》原创 2020-07-07 07:29:30 · 609 阅读 · 0 评论