kafka

基础

概念

Kafka是Apache旗下的一款分布式流媒体平台,Kafka是一种高吞吐量、持久性、分布式的发布订阅的消息队列系统。通过提供一套 API 实现生产者和消费者,降低网络传输和磁盘存储开销

常用术语:

(1)消息:Record。Kafka 是消息引擎嘛,这里的消息就是指 Kafka 处理的主要对象。
(2)主题:Topic。主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务。
(3)分区:Partition。一个有序不变的消息序列。每个主题下可以有多个分区。
(4)消息位移:Offset。表示分区中每条消息的位置信息,是一个单调递增且不变的值。
(5)副本:Replica。Kafka 中同一条消息能够被拷贝到多个地方以提供数据冗余,这些地方就是所谓的副本。副本还分为领导者副本和追随者副本,各自有不同的角色划分。副本是在分区层级下的,即每个分区可配置多个副本实现高可用。
(6)生产者:Producer。向主题发布新消息的应用程序。
(7)消费者:Consumer。从主题订阅新消息的应用程序。
(8)消费者位移:Consumer Offset。表征消费者消费进度,每个消费者都有自己的消费者位移。
(9)消费者组:Consumer Group。多个消费者实例共同组成的一个组,同时消费多个分区以实现高吞吐。
(10)重平衡:Rebalance。消费者组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅主题分区的过程。Rebalance 是 Kafka 消费者端实现高可用的重要手段。

(11)Broker:Kafka节点就是被称为Broker,Broker主要负责创建Topic,存储Producer所发布的消息,记录消息处理的过程,现是将消息保存到内存中,然后持久化到磁盘。

(12)ZooKeeper:ZooKeeper负责维护整个Kafka集群的状态,存储Kafka各个节点的信息及状态,实现Kafka集群的高可用,协调Kafka的工作内容。

特点

1.高吞吐量:可以满足每秒百万级别消息的生产和消费。

2.持久性:有一套完善的消息存储机制,确保数据高效安全且持久化。

3.分布式:基于分布式的扩展;Kafka的数据都会复制到几台服务器上,当某台故障失效时,生产者和消费者转而使用其它的Kafka。

 

传输方式

1.点对点(PTP)

也叫消息队列模型,一条消息仅能由一个消费者消费,其他的消费者都不能接收。若不存在消费者,消息存放在消息队列中,直到消费者上线消费完成。

 

 

 

2.消息发布/订阅

点对点不同的是这个模型可能存在多个发布者向相同的主题发布消息而订阅者也可能存在多个, 他们都能接收相同的主题的消息,如下图:

 

 

 

 

 

posted @ 2022-05-27 16:29  星海violet  阅读(34)  评论(0编辑  收藏  举报