Apache kafka,类消息队列系统,是一种高吞吐量的分布式发布订阅消息系统,即使是非常普通的硬件,也可以支持每秒数百万的消息。通过I/O的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。

  • 可靠性高
  • 吞吐量高
  • 伸缩性强
  • 高并发

一、应用场景

缓存/消峰,解耦,异步通信

缓存/消峰
解耦
异步通信

二、模式

  • 点对点模式:消费者收到消息后,发送确认,MQ删除信息
  • 发布订阅模式:消费者收到消息后不删,供其它消费者再用,消息通过其它机制再删除

三、关键术语

术语 语义
Producer 客户端,生产者,消息提供者,负责发出消息到服务端Broker
Broker 服务端,负责处理生产者的消息,分发到Topic
Topic 服务端,消息的主题,消息的管道,消息的区分
Partition 服务端,Topic消息的存储块,多个分区(副本)间的消息同步,确保消息不会丢失
Consumer 客户端,消费者,读取(消费)服务端Partition的消息

四、基础架构

4.1 单机模式

一个生产者,多个消费者。

4.2 集群模式

一个生产者,多个Borker的集群模式,分区交叉同步副本,一个消费者组;
分区并行消费,对应多个消费者,形成消费组;当一个Server宕机后,不影响数据的丢失。