查看“消息队列的流派”的源代码
←
消息队列的流派
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
=== 什么是 MQ === MessageQueue(MQ),消息队列中间件。 很多人都说:MQ通过将消息的发送和接收分离来实现应用程序的异步和解偶,这个给人的直觉是一一MQ是异步的,用来解耦的,但是这个只是MQ的效果而不是目的。 MQ真正的目的是为了通讯,屏蔽底层复杂的通讯协议,定义了一套应用层的、更加简单的通讯协议。 一个分布式系统中两个模块之间通讯要么是HTTP,要么是自己开发的(rpc)TCP,但是这两种协议其实都是原始的协议。 HTTP 协议很难实现两端通讯一一模块A可以调用B,B也可以主动调用A,如果要做到这个两端都要背上 WebServer ,而且还不支持长连接(HTTP2,0的库根本找不到)。 TCP 就更加原始了,粘包、心跳、私有的协议,想一想头皮就发麻。 MQ 所要做的就是在这些协议之上构建一个简单的"协议<nowiki>''</nowiki>一一生产者/消费者模型。 MQ 带来“协议”不是具体的通讯协议,而是更高层次通讯模型。 它定义了两个对象一一发送数据的叫生产者;接收数据的叫消费者,提供一个SDK让我们可以定义自己的生产者和消费者实现消息通讯而无视底层通讯协议 === 有 Broker 的 MQ === 这个流派通常有一台务器作为 Broker,所有的的息都过它中转。 生产者把消息发送给它就结束自己的任务了,Broker 则把消息主动推送给消费者(或者消者主动轮询) ==== 重 Topic ==== Kafka、JMS(ActiveMQ)就属于这个流派,生产者会发送 key 和数据到 Broker,由 Broker 比较 key 之后决定给哪个消费者。 这种模式是我们最常见的模式,是我们对 MQ 最多的印象。 在这种模式下一个 topic 往往是一个比较大的概念,甚至一个系统中就可能只有一个 topic, topic 某种意义上就是 queue,生产者发送 key 相当于说:“把数据放到key的队列中”
返回至
消息队列的流派
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
Spring Boot 2 零基础入门
Spring Cloud
Spring Boot
设计模式之禅
VUE
Vuex
Maven
算法
技能树
Wireshark
IntelliJ IDEA
ElasticSearch
VirtualBox
软考
正则表达式
程序员精讲
软件设计师精讲
初级程序员 历年真题
C
SQL
Java
FFmpeg
Redis
Kafka
MySQL
Spring
Docker
JMeter
Apache
Linux
Windows
Git
ZooKeeper
设计模式
Python
MyBatis
软件
数学
PHP
IntelliJ IDEA
CS基础知识
网络
项目
未分类
MediaWiki
镜像
问题
健身
国债
英语
烹饪
常见术语
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息