目录
1.1、概述
Kafka其优良的性能使得其作为消息中间件具有得天独厚的优势,kafka是一个高吞吐的分布式消息系统,生产者生产数据,消费者消费数据。具体可以参考分布式流处理的王者之Kafka简介这篇博文。
1.2、消息系统
一个消息系统负责将数据从一个应用传递到另外一个应用,应用只需关注于数据,无需关注数据在两个或多个应用间是如何传递的。分布式消息传递基于可靠的消息队列,在客户端应用和消息系统之间异步传递消息。有两种主要的消息传递模式:点对点传递模式、发布 – 订阅模式。大部分的消息系统选用发布-订阅模式。Kafka 就是一种发布 – 订阅模式。
1.2.1、点对点消息传递模式
在点对点消息系统中,消息持久化到一个队列中。此时,将有一个或多个消费者消费队列中的数据。但是一条消息只能被消费一次。当一个消费者消费了队列中的某条数据之后,该条数据则从消息队列中删除。该模式即使有多个消费者同时消费数据,也能保证数据处理的顺序。点对点模式通常是基于拉取或者轮询的消息传送模型,队列中的消息由消费者主动的去拉取消息进行消费。点对点模型的的优点是消费者拉取消息的频率可以由自己控制。但是消息队列是否有消息需要消费,在消费者端无法感知,所以在消费者端需要额外的线程去监控。这种架构描述示意图如下:

1.2.2、发布-订阅消息传递模式
在发布 – 订阅消息系统中,消息被持久化到一个 topic 中。与点对点消息系统不同的是,消费者可以订阅一个或多个 topic,消费者可以消费该 topic 中所有的数据,同一条数据可以被多个消费者消费,数据被消费后不会立马删除。在发布 – 订阅消息系统中,消息的生产者称为发布者,消费者称为订阅者。发布订阅模式是一个基于消息推送的消息传送模型,改模型可以有多种不同的订阅者。生产者将消息放入消息队列后,队列会将消息推送给订阅过该类消息的消费者。由于是消费者被动接收推送,所以无需感知消息队列是否有待消费的消息。该模式的示例图如下:

1.3、Kafka的消息模型
Kafka中Producer为生产者,负责产生消息。每条消息都有一个主题Topic,生产者发送的消息进入对应的Topic,然后由消费者Consumer对Topic中的消息进行消费。消息模型架构如下所示:

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



