欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Kafka原理&实战——(三)消息队列的流派

时间:2023-06-08

目录

1 、什么是MQ

2 、消息队列的流派

2.1、有Broker的MQ

2.1.1  重 topic

2.1.2 轻 topic

2.2 无Broker的MQ


1 、什么是MQ

    Message Queue(MQ),消息队列中间件。通常说,MQ通过消息的发送和接收分离来实现应用程序的异步和解耦,但这只是效果而不是目的,MQ真正的目的是为了通讯,屏蔽底层一整套复杂的通讯协议,定义了一套应用层的,更加简单的通讯协议。MQ带来的不是具体的通讯协议,而是更高层次的通讯模型。它定义了两个对象,发送数据的生产者和接收数据的叫消费者 

2 、消息队列的流派

2.1、有Broker的MQ

    这个流派通常有一台服务器作为Broker,所有的消息都通过它中转。生产者把消息发送给她就结束自己的任务了,Broker则把消息主动推送给消费者(或者消费者主动轮训)

2.1.1  重 topic

    kafka,JMS(ActiveMQ)就属于这个流派,生产者会发送key和数据到Broker,由broker比较key之后决定给哪个消费者。这种模式是我们最常见的模式,是我们对MQ最多的印象、在这种模式下topic往往是一个比较大的概念,甚至一个系统中可能只有一个topic。topic某种意义上就是queue。

    如上图所示,broker定义了三个队列key1,key2,key3,生产者发送数据的时候会发送key1和data,Broker在推送数据的时候则推送data(也可能把key带上)

    虽然架构是一样的,但是kafka的性能比JMS不知道高多少倍,所以基本这种类型的MQ只有kafka一种备选方案

2.1.2 轻 topic

    这种代表是RabbitMQ,生产者发送key和数据,消费者定义订阅的队列,Broker收到数据后会通过一定的逻辑计算出key对应的队列,然后把数据交给队列。

 

2.2 无Broker的MQ

 在生产者和消费者之间没有broker,l例如ZeroMQ,直接通过Socket通信

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。