12. 消息队列-Kafka基础
文章目录前言一、概念1. MQ简介2. 主流评比二、机制1. 基础架构2. 数据存储设计3. 生产者设计4. 消费者设计5. 工作过程前言KafkaKafka 是一种高吞吐量、分布式、基于发布/订阅的消息系统,最初由 LinkedIn 公司开发,使用Scala 语言编写,目前是 Apache 的开源项目。一、概念1. MQ简介MQ(Message Queue)是一种跨进程的通信机制,用于上下游传递消息。本质是个 FIFO 先进先出的数据结构,只不过队列中存放的内容是 message 。消息中间件在早已成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。中间件的标准用法是生产者生产消息传送到队列,消费者从队列中拿取消息并处理,生产者不用关心是谁来消费,消费者不用关心谁在生产消息。2. 主流评比因此,当需要一个性能稳定、低延时、功能强大且易于管理的消息队列可以选择RabbitMQ。如果对消息吞吐量需求很大,且不在乎消息偶尔丢失的情况可以使用Kafka。二、机制1. 基础架构服务器端由多个 broker 组成,每个 broker 是一个节点。消息生产者创建一个topic,这个 topic 可以划分为多个 p