第1章 初始Kafka

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010819416/article/details/83956891

1.1 发布与订阅消息系统
发布与订阅系统一般会有一个broker,也就是发布消息的中心点。

1.1.1 如何开始

1.1.2 独立的队列系统

1.2 Kafka登场

1.2.1 消息和批次
数据单元称为消息,消息由字节数组组成,消息有一个可选的键,键也是字节数组。

消息分批次写入Kafka,批次就是一组消息,属于同一个主题和分区。

1.2.2 模式
用一些额外的结构来定义消息内容,让它们更易于理解。消息模式有许多可用的选项。JSON、XML、Apache Avro。

1.2.3 主题和分区
消息通过主题进行分类。
主题可以被分为若干个分区,一个分区就是一个提交日志。消息以追加的方式写入分区,然后以先入先出的顺序读取。

使用流来描述这类系统的数据。流是一组从生产者移动到消费者的数据。

1.2.4 生产者与消费者
生产者和消费者;
高级客户端API:
1)用于数据集成的Kafka Connect API
2)用于流式处理的Kafka Streams

生产者创建消息,把消息均衡地分布到主题的所有分区上,而并不关心特定消息会被写到哪个分区上,可以通过消息键和分区器,把消息直接写到指定的分区。分区器为键生成一个散列值,并将其映射到指定分区。

消费者读取消息。消费者订阅一个主题或多个主题,并按照消息生成的顺序读取它们。消费者通过检查消息的偏移量来区分已经读取过的消息。偏移量,一个不断递增的整数值,创建消息时添加到消息里。消费者把每个分区最后读取的消息偏移量保存在Zookeeper或Kafka上。

消费者群组:会有一个或多个消费者共同读取一个主题。群组保证每个分区只能被一个消费者使用。

1.2.5 broker和群组
一个独立的Kafka服务器被称为broker。
broker是集群的组成部分。每个集群都有一个broker同时充当了集群控制器的角色(自动从集群的活跃成员中选举出来)。
控制器负责管理工作,包括将分区分配给broker和监控broker。
在集群中,一个分区从属于一个broker,改broker称为分区的首领。
一个分区可以分配给多个broker,这个时候会发生分区复制。
保留消息。消息保存策略:保留一段时间;或保留到消息达到一定大小的字节数。

1.2.6 多集群
MirrorMaker工具实现集群间的消息复制。

1.3 为什么选择Kafka

1.3.1 多个生产者

1.3.2 多个消费者

1.3.3 基于磁盘的数据存储

1.3.4 伸缩性

1.3.5 高性能

1.4 数据生态系统

使用场景:

  1. 活动跟踪
    跟踪用户的活动

  2. 传递消息

  3. 度量指标和日志记录

  4. 提交日志

  5. 流处理

1.5 起源故事

1.5.1 LinkedIn的问题

1.5.2 Kafka的诞生

1.5.3 走向开源

1.5.4 命名

1.6 开始Kafka之旅

猜你喜欢

转载自blog.csdn.net/u010819416/article/details/83956891