day 12

86 阅读2分钟

Kafka的学习笔记

这是一个消息队列

kafka包含Topic,Partition,Consumer,Producer,副本等概念。

消息系统

kafka和传统的消息系统都具备系统解耦,荣誉存储,流量削峰,缓冲,异步通信,拓展性,可恢复性等功能。与此同时kafka提供了消息顺序性保障和回溯消费的能力。

存储系统

存在磁盘

流式处理

kafka提供了一系列工具库,完成流式处理的 窗口,链接,变换,聚合等各类操作。

Kafka整体架构

生产者生产给许多个kafka broker

消费者从中获取,

还有一个Zookeepeer集群,用来控制各个broker、的管理和选举操作。

  • Producer:生产者,消息发送方
  • Consumer:消费者,接收消息的一方,进行业务逻辑的处理。
  • Broker:服务代理节点。对于kafka而言,Broker可以简单看成kafka的服务实例。

Kafka的重要概念

主题Topic和分区Partition

kafka集群中的生产者需要指定一个Topic,通过这个东西来进行归类,消费者负责订阅主题并进行消费。

主题只是一个逻辑上的概念,可以细分为很多分区。一个分区只是一个单个主题,很多时候会把分区称为主题分区。同一主题下的消息是不同的。每一个消息将会被分配一个offset。唯一标识一个消息。

一个Topic竟然可以横跨多个Broker。需要在一开始的时候就设置好。

消费者与消费组

每一个消费者都有一个消费组,当消息发布到主题后,只会被投递给订阅他的每个消费组中的一个消费者。

假设一个Topic四个分区Partition,P0,P1,P2,P3. C0123为A组,C45为B组,订阅之后kafka会给每一个分区对应上一个消费者,均匀分配消息。如果消费者比分区多则会有饥饿。也可以自定义。

Kafka存储结构

一个分区多个Log,LogSegment是一个单位,存储index,时间等信息。