
Kafka
kafka学习整理
有数的编程笔记
蓄势待发,待机而动
展开
-
Broker 和 Controller
文章目录1. Broker 和 Controller1.1. 集群管理1.2. Controller1.2.1. Controller 选举原理1.2.2. 手动触发 Controller 开启新一轮选举1.2.3. Partition 的 leader 选举2. broker 端配置2.1. 最基本的配置2.2. 主要的参数配置1. Broker 和 Controller对用户而言,broker的主要功能就是持久化消息以及将消息队列中的消息从发送端传输到消费端。Kafka的broker负责持久化pro原创 2020-10-09 22:58:09 · 681 阅读 · 1 评论 -
Kafka Producer
文章目录1. Kafka Producer1.1. Producer概览1.2. ProducerRecord1.3. RecordMetadata1.4. 发送消息1.4.1. 工作流程2. 参数配置2.1. 必填参数2.2. 其他参数1. Kafka Producer在0.9.0.0版本中,社区正式使用Java版本的producer替换了原Scala版本的producer。新版本的producer的主要入口类是org.apache.kafka.clients.producer.KafkaProduc原创 2020-10-09 22:27:32 · 442 阅读 · 0 评论 -
kafka-consumer-groups.sh
通过kafka-consumer-groups.sh 脚本查看或变更消费组的信息。消费组一共有 Dead 、Empty 、PreparingRebalance 、CompletingRebalance 、Stable 这几种状态,正常情况下, 一个具有消费者成员的消费组的状态为Stable 。可以通过 state 参数来查看消费组当前的状态, 示例如下:./kafka-consumer-groups.sh --bootstrap-server 169.163.100.10.208.180.222.原创 2023-10-31 16:38:00 · 1661 阅读 · 0 评论 -
__consumer_offsets
__consumer_offsets是kafka自行创建的,和普通的topic相同。它存在的目的之一就是保存consumer提交的位移。__consumer_offsets的每条消息格式大致如图所示:配图105,图5.5可以想象成一个KV格式的消息,key就是一个三元组:group.id+topic+分区号,而value就是offset的值。考虑到一个kafka生成环境中可能有很多...原创 2020-05-18 23:03:56 · 11067 阅读 · 0 评论 -
Kafka消息格式
从0.8.x版本开始到现在的2.x版本,Kafka的消息格式也经历了 3 个版本: v0 版本、v1 版本和 v2 版本 。v0版本Kafka 从 0.8.x 版本开始到 0.10.x 版本之前的消息格式通常称为 v0 版本。下图中左边的 “RECORD” 部分就是 v0 版本的消息格式,每个 RECORD ( v0 和 v1 版)必定对应一个 offset 和 message siz...原创 2020-04-27 00:54:15 · 1484 阅读 · 0 评论 -
Kafka日志索引
……原创 2020-05-19 00:25:51 · 1249 阅读 · 2 评论 -
Kafka 概要设计
消息引擎范型消息引擎范型描述了消息引擎系统的两个不同的子部分是如何交互且连接的。如果将消息引擎系统的两个不同的子部分比喻成两座城市,那么传输协议将是两座城市之间需要铺设的沥青公路,而引擎范型决定了来往穿梭于这两座城市之间的路线。最常见的两种消息引擎范型是消息队列模型和发布/订阅消息模型。(1)消息队列模型是基于队列提供消息传输服务的,多用于进程间通信(IPC)以及线程间通信。该模型定义了...原创 2019-12-18 23:42:16 · 190 阅读 · 0 评论 -
Consumer
consumer概览消费者在0.9.0版本中,提供了新版的consumer。新版本consumer的入口类是org.apache.kafka.clients.consumer.KafkaConsumer。由此可以看出,新版本客户端的代码包都是org.apache.kafka.clients新版的consumer不在依赖zookeeper。在旧版本的consumer中,消费位移(offse...原创 2019-12-25 00:19:32 · 1084 阅读 · 0 评论 -
Rebalance
只有消费组才会涉及Rebalance。在Rebalance发生期间,消费组内消费者无法读取消息。也就是说Rebalance期间的这一小段时间内,消费者组将变得不可用。另外,当一个分区重新分配给另一个消费者时,消费者当前的状态也会丢失。比如消费者消费完某个分区中的一部分消息时还没有来得及提交位移消费者就发生了Rebalance,之后这个分区又被分配给了消费者组内的另一个消费者,原来被消费完的那...原创 2019-12-17 01:00:16 · 2655 阅读 · 0 评论 -
Kafka 日志存储设计
Kafka日志Kafka日志和我们平时熟悉的程序请求日志、错误日志等不同,kafka日志则属于另一种类型:一种专门为程序访问的日志。从某种意义上说,kafka日志的设计更像是关系型数据库中的记录,抑或是某些系统中所谓的提交日志(commit log)或日志(journal)。这些日志有一个共同的特点就是:只能按照时间顺序在日志尾部追加写入记录(record)。Kafka其实并不是直接将原生消...原创 2019-12-17 01:09:09 · 666 阅读 · 0 评论 -
Topic 和 Partition
Topic和Partition从概念上讲,topic只是一个逻辑概念,代表了一类消息,也可以认为是消息被发送到的地方。通常可以使用topic来区分实际业务。Kafka中的topic通常会被多个消费者订阅,因此出于性能考虑,kafka并不是topic-meaaage的两极结构,而是采用了topic-partition-message的三级结构来分散负载。从本质上说,每个kafka的topic...原创 2019-11-21 22:43:56 · 1796 阅读 · 0 评论 -
kafka快速开始
核心功能:高性能的消息发送和高性能的消息消费。Kafka设计初衷就是为了解决互联网公司超大量级数据的实时传输。入门使用在启动kafka之前需要首先启动zookeeper服务器(zookeeper服务器为kafka提供协调服务的工具),在kafka内置提供了一个zookeeper服务器以及一系列相关的管理脚本。启动zookeeper和kafka的脚本的在KAFKA_HOME/bin目录...原创 2019-12-18 22:25:56 · 373 阅读 · 0 评论 -
消费组的订阅状态(SubscriptionState)
SubscriptionState新版API(KafkaConsumer)为消费者客户端提供了两种消费方式:订阅(subscribe)和分配(assgin)订阅模式:消费者会指定订阅的topic,由GroupCoordinator为消费者分配动态的分区。(实际上分区分配的具体分配还是由客户端决定的,GroupCoordinator并不实际参与) 分配模式:消费者指定消费特定的分区,这种模...原创 2019-08-28 22:20:45 · 1405 阅读 · 1 评论