栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

目录

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通信

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/737380.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号