更新时间:2020-05-29 来源:黑马程序员 浏览量:
大数据系统面临的首要困难是海量数据之间该如何进行传输。为了解决大数据集的传输困难,就必须要构建一个消息系统。一个消息系统负责将数据从一个应用程序传递到另外一个应用程序中,应用程序只关注数据,无须关注数据在多个应用之间是如何传递的,分布式消息传递基于可靠的消息队列,在客户端应用和消息系统之间异步传递消息。
目前市面上有许多消息系统,如Kafka、RabbitMQ、ActiveMQ等。Kafka是专门为分布式高吞吐量系统而设计开发的,它非常适合在海量数据集的应用程序中进行消息传递。消息传递一共有两种模式,分别是点对点消息传递模式和发布订阅消息传递模式。接下来,详细讲解消息传递的两种模式。
1、点对点消息传递模式
点对点消息传递模式(Pointtopoint,P2P),通常是一个基于拉取或者轮询的消息传递模式,其消息传递结构如下图。
图中所示的点对点消息传递模式结构中,消息是通过一个虚拟通道进行传递的,生产者发送一条数据,消息将持久化到一个队列中,此时将有一个或者多个消费者会消费队列中的数据,但是一条消息只能被消费一次,并且消费后的消息会从消息队列中删除,因此,即使有多个消费者同时消费数据,数据都可以被有序处理。
2、发布订阅消息传递模式
发布订阅消息传递模式(Publish//Subscribe)是一个基于推送的消息传送模式,其消息传递结构如下图所示:
从上图中可以看出,在发布订阅模式中,发布者用于发布消息,订阅者用于订阅消息,发布订阅模式可以有多种不同的订阅者,发布者发布的消息会被持久化到一个主题中,与点对点模式不同的是,订阅者可以订阅一个或多个主题,订阅者可以读取该主题中的所有数据,同一条数据可以被多个订阅者消费,数据被消费后也不会立即删除。
猜你喜欢: