摘要: 前言 在了解消费者与消费组之前的的概念之后,可以进行消费者客户端的开发了; 参数配置 在Kafka消息者端KafkaConsumer中有4个参数是必填的: bootstrap.servers:该参数与生产者相同,指定连接Kafka集群所需的broker地址清单,格式为:host1:port,host 阅读全文
posted @ 2020-11-25 16:03 lenomail 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 消费者和消费组 在Kafka中,每个消费者都有一个对应的消费组。当消息发布到主题后,只会被投递给订阅它的每个消费组中的一个消费者。每个消费者只能消费所分配到的分区中的消息。 而每一个分区只能被一个消费组中的一个消费者所消费。 入上图所示,我们可以设置两个消费者组来实现广播消息的作用,消费组A和组B都 阅读全文
posted @ 2020-11-25 14:04 lenomail 阅读(188) 评论(0) 推荐(0) 编辑
摘要: Broker 处理请求流程 在Kafka的架构中,会有很多客户端向Broker端发送请求,Kafka 的 Broker 端有个 SocketServer 组件,用来和客户端建立连接,然后通过Acceptor线程来进行请求的分发, 由于Acceptor不涉及具体的逻辑处理,非常得轻量级,因此有很高的吞 阅读全文
posted @ 2020-11-25 13:53 lenomail 阅读(552) 评论(0) 推荐(0) 编辑
摘要: 一、前言 一个正常的生产逻辑需要具备以下几个步骤: 配置生产者客户端参数及创建相应的生产者实例; 构建待发送的消息; 发送消息; 关闭生产者实例; 二、原理分析 2.1 整体架构 整个生产者客户端由两个线程协调运行,这两个线程分别为主线和Sender线程; 在主线程中由KafkaProducer创建 阅读全文
posted @ 2020-11-23 17:03 lenomail 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 前言 Kafka将消息存储在磁盘中,为了控制磁盘占用空间。kafka中每个分区副本都对应一个Log,而Log对应多个日志分段,这样有利日志清理操作。Kafka提供两种日志清理策略: 日志删除(Log retention):按一定的保留的策略直接删除不符条件的日志分段; 日志压缩(Log compat 阅读全文
posted @ 2020-11-23 15:54 lenomail 阅读(1864) 评论(0) 推荐(0) 编辑
摘要: 目录 日志 Kafka 日志索引 :https://www.cnblogs.com/lenoblog/p/14023018.html Kafka日志目录布局:https://www.cnblogs.com/lenoblog/p/14011032.html Kafka日志存储原理:https://ww 阅读全文
posted @ 2020-11-23 15:39 lenomail 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 前言 Kafka中的索引文件以稀疏索引(sparse index)的方式构造消息的索引,并不保证每个消息在索引中都有对应的索引项。 每当写入一定量(由Broker端参数log.index.interval.bytes指定,默认值4K),偏移量索引文件、时间戳索引文件分别增加一个偏移量索引项和时间戳索 阅读全文
posted @ 2020-11-23 10:05 lenomail 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 文件结构 Kafka中的消息是以主题为基本单位进行归类的,各个主题以逻辑上是独立的。每个主题又可以分为一个或多个分区,分区的数量是在主题创建时指定的。 一个分区对应一个日志(Log),为了防止日志过大,引入了日志分段(LogSegment)概念,切分成多个较小文件。 Log在物理上只以文件夹的形式存 阅读全文
posted @ 2020-11-20 15:12 lenomail 阅读(1388) 评论(0) 推荐(0) 编辑
摘要: 引言 Kafka中的Message是以topic为基本单位组织的,不同的topic之间是相互独立的。每个topic又可以分成几个不同的partition(每个topic有几个partition是在创建topic时指定的),每个partition存储一部分Message。 Partition的数据文件 阅读全文
posted @ 2020-11-20 13:55 lenomail 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 引言 大多数分布式系统采用多副本的机制,以此来实现水平扩展、提供容灾能力、提供可用性和可靠性等。 副本是相对分区而言的,即副本是特定分区的副本; 一个分区中包含一个或多个副本,其中一个为leader副本,其余都会follower副本,各个副本位于不同broke节点中,只有leader副本对外提供服务 阅读全文
posted @ 2020-11-19 09:07 lenomail 阅读(119) 评论(0) 推荐(0) 编辑