Kafka-深入服务端

43 阅读1分钟

前言

协议设计、时间轮、延迟操作、控制器、参数解密

协议设计

Kafka 是高性能、可扩展的消息中间件。

Kafka自定义了一组基于TCP的二进制协议

时间轮

Kafka中存在大量的延时操作:延时生产、延时拉取、延时删除等。 基于时间轮的概念自定义实现了一个用于延时功能的定时器。

像其他框架:Netty、Akka、Quartz、Zookeeper等都存在时间轮

Kafka中的时间轮是一个存储定时任务的环形队列,底层采用数组实现,数组中每个元素可以存放一个定时任务列表。TimerTaskList是一个环形的双向链表,链表中的每一项表示的都是定时任务项。

时间轮由多个时间格组成,每个时间格代表当前时间轮的基本时间跨度(tickMs)。时间轮的时间格个数是固定的(wheelSize)。

image.png