kafka学习笔记一

目录

第一章 初识Kafka

一、kafka的作用

二、kafka架构

三、分区&日志

四、生产者&消费者

五、kafka高性能之道

总结:kafka读写性能高的原因?

第二章 Kafka环境搭建 & Topic管理

第三章 Kafka 基础 API

第四章 Kafka 高级API

4.1 offset自动控制 

4.2 应答&重试

4.3 幂等性

4.4 事务控制

第五章 Kafka 架构进阶

5.1 数据同步机制

5.2 Kafka监控系统Kafka Eagle

5.3 Kafka-Flume集成

5.4 Kafka-SpringBoot集成


kafka学习笔记一_第1张图片

kafka学习笔记一_第2张图片

第一章 初识Kafka

一、kafka的作用

主要有两大作用:用作消息队列MQ;流处理。具体见下图:

kafka学习笔记一_第3张图片

kafka学习笔记一_第4张图片

二、kafka架构

kafka学习笔记一_第5张图片

Record:它是kafka消息队列中的一则消息;

Topic:它是对kafka消息队列中Record的一种分类机制。

生产者负责发送消息,消费者负责订阅和读取消息。 

kafka学习笔记一_第6张图片

分区:指的是一个Topic中的数据会被分散地存储在多个独立的文件当中;

副本因子:指当前分区文件会在集群中有多少个备份数据。

在kafka集群中,它的服务节点有两类—— 一类叫broker,负责响应管理分区的数据;leader负责分区的读写,flower负责分区的备份,zookeeper负责集群的健康监测、Topic中的创建信息和元数据存储等。

kafka学习笔记一_第7张图片

三、分区&日志

同一Topic中只能保证同一分区中消息的先后顺序,不能保证不能分区之间消息进入的先后顺序。

分区越大,理论上能够处理的并发请求就越大,存储能力也会线性增长。(通常,一个分区对应一个服务器

kafka学习笔记一_第8张图片

kafka学习笔记一_第9张图片

四、生产者&消费者

在kafka中,消费者对分区中数据的消费彼此之间是相互独立的。

消费者在消费完分区中的消息时,会定期提交下一次再消费消息的偏移量offset;kafka默认消息保存的时间是168h,即7天,可以修改。消息可多次消费,没有任何次数限制。

kafka学习笔记一_第10张图片

分区不仅仅可以提高存储和写入能力,也可以提高消费能力。

五、kafka高性能之道

kafka学习笔记一_第11张图片

kafka学习笔记一_第12张图片

kafka学习笔记一_第13张图片

kafka学习笔记一_第14张图片

kafka学习笔记一_第15张图片

总结:kafka读写性能高的原因?

第一,Topic的分区决定了kafka的读入和写入性能;

第二,从顺序写和MMFile的角度分析:顺序写可以减少寻址时间,内存映射文件可以减少IO,使写入性能逼近内存;

第三,Kafka服务器在响应客户端读取的时候,底层使用ZeroCopy技术,直接将磁盘无需拷贝到用户空间,而是直接将数据通过内核空间传递输出,数据并没有抵达用户空间。

第二章 Kafka环境搭建 & Topic管理

kafka学习笔记一_第16张图片

kafka学习笔记一_第17张图片

kafka学习笔记一_第18张图片

kafka学习笔记一_第19张图片

kafka学习笔记一_第20张图片

kafka学习笔记一_第21张图片

第三章 Kafka 基础 API

第四章 Kafka 高级API

4.1 offset自动控制 

4.2 应答&重试

“应答”虽然能够保证数据的可靠性传输,但配合request使用可能会导致数据的重复,在一个分区中可能会导致一条数据发送多次,在某些情况会是灾难性的后果。

kafka学习笔记一_第22张图片

kafka学习笔记一_第23张图片

4.3 幂等性

kafka学习笔记一_第24张图片

kafka学习笔记一_第25张图片kafka学习笔记一_第26张图片 

4.4 事务控制

  • 生产者事务Only
  • 消费者&生产者事务

第五章 Kafka 架构进阶

5.1 数据同步机制

kafka学习笔记一_第27张图片

在kafka-0.11以前版本,通过HW机制解决数据同步时存在的两个问题:

kafka学习笔记一_第28张图片

kafka学习笔记一_第29张图片

为了解决HW机制存在的问题,在0.11版本中,引入了Leader Epoch,如下:

kafka学习笔记一_第30张图片

kafka学习笔记一_第31张图片

kafka学习笔记一_第32张图片

引入了Leader Epoch后,再来看HW的那两个问题,就不存在了。如下:

kafka学习笔记一_第33张图片

5.2 Kafka监控系统Kafka Eagle

这是一款可视化的监控软件。

5.3 Kafka-Flume集成

5.4 Kafka-SpringBoot集成

 

你可能感兴趣的:(分布式,kafka)