![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kafka
zwq00451
这个作者很懒,什么都没留下…
展开
-
kafka原理解析之-日志管理
一、日志文件结构1、在磁盘的组织形式从上图可以看到segment的文件组成:以 *.log 结尾的日志文件以 *.index 结尾的 offset 索引 文件以 *.timeindex 结尾的 time offset 时间索引 文件2、SEGMENT日志文件达到一定的条件的时候需要进行切分,其对应的索引文件也会进行切分,日志文件满足以下条件之一就会进行切分。当前日志文件的大小超过了 broker 端参数 log.segment.bytes 配置的值,默认值为 1073741824 ,原创 2020-12-13 18:40:00 · 609 阅读 · 1 评论 -
kafka原理解析之-消息格式
kafka经过多个版本的演变,消息格式也在不断的变化改进,本文讨论kafka使用过的各种消息格式,有些格式在最新的版本中已经不用,但我们可以从中学习一些设计思想一、消息格式介绍各版本消息格式及版本变更特性1、V0: Kafka 0.10.0 之前的版本,属性说明:LOG_OVERHEAD : offset + message_size 合在一起,表示 日志头部, 固定为 12 B.MESSAGE : LOG_OVERHEAD + RECORD 一起描述 一条消息。offset : 每条消原创 2020-12-13 12:01:09 · 776 阅读 · 0 评论 -
kafka原理解析之-消息可靠性保障
本文讨论的是假设存在完美无缺的producer和consumer, 从broker角度保障数据可靠的机制。一、名词介绍ISR(In-sync Replication):所有与leader副本保持一定程度同步的副本(包括Leader),是kafka动态维护的一组同步副本,每当leader挂掉时,在ISR集合中选举出一个follower作为leader提供服务,当ISR中的副本被认为坏掉的时候,会被踢出ISR,当重新跟上leader的消息数据时,重新进入ISR。ISR中的节点必须满足:a、节点必须可以原创 2020-12-12 22:28:10 · 303 阅读 · 1 评论 -
kafka原理解析之-消息交付语义
消息交付语义kafka消息交付语义讨论的是假设存在完美无缺的 broker, producer 和 consumer 因为某些原因,需要重试生产消息或重新消费消息(可能是不同的消费实例)时的情况。Kafka提供了三种消息交付语义,如下。At most once——消息可能会丢失但绝不重传。At least once——消息可以重传但绝不丢失。Exactly once——这正是人们想要的, 每一条消息只被传递一次.本文只讲第三种Exactly once。在0.11.x版本之前,Apache原创 2020-12-12 21:30:00 · 373 阅读 · 1 评论 -
kafka原理解析之-高性能内幕
一、日志持久化设计1. partition的持久化队列结构:数据按先后顺序依次追加在文件末尾,读写操作分开,如下图所示。这种结构有如下优势:所有的操作复杂度都是O(1),读操作不会阻塞写操作,读操作之间也不会互相影响。由于性能和数据大小完全分离开来——服务器现在可以充分利用大量廉价、低转速的1+TBSATA硬盘,通过顺序写的方式追加数据。虽然这些硬盘的寻址性能很差,但他们在大规模读写方面的性能是可以接受的注:使用6个7200rpm、SATA接口、RAID-5的磁盘阵列在JBOD配置下的顺原创 2020-12-12 17:04:22 · 252 阅读 · 0 评论