如何设计一个消息中间件? 消息中间件的总体架构
架构 如何 一个 设计 总体 消息中间件
2023-09-14 09:07:21 时间
MQ 概念
1.消息(Message)
消息是MQ中最小的概念,本质上就是一段数据,它能被一个或者多个应用程序所理解,是应用程序之间传递的信息载体。
2.队列(Queue)
2.1 本地队列
本地队列按照功能可划分为初始化队列,传输队列,目标队列和死信队列。
初始化队列用作消息触发功能。
传输队列只是暂存待传的消息,条件许可的情况下,通过管道将消息传送到其他的队列管理器。
目标队列是消息的目的地,可以长期存放消息。
如果消息不能送达目标队列,也不能再路由出去,则被自动放入死信队列保存。
2.2 别名队列&远程队列
只是一个队列定义,用来指定远端队列管理器的队列。使用了远程队列,程序就不需要知道目标队列的位置。
2.3 模型队列
模型队列定义了一套本地队列的属性结合,一旦打开模型队列,队列管理器会按照这些属性动态地创建出一个本地队列。
3.队列管理器(Queue Manager)
队列管理器是一个负责向应用程序提供消息服务的机构,如果把队列管理器比作数据库,那么队列就是其中一张表。
4.通道(Channel)
通道是两个管理器之间的一种单向点对点的的通信连接,如果需要双向交流,可以建立一对通道。
5.监听器(listener)
MQ产品的特性
可靠性传输
这个特点可以说是消息中间件的立足之本,对于应用来说,只要成功把数据提交给消息中间件,那么关于数据可靠传输的问题就由消息中间件来负责。
不重复传输
不重复传播也就是断点续传的功能,特别适合网络
相关文章
- Java线程池架构(二)多线程调度器
- CSS架构最佳实践:预测、重用、扩展、维护
- IOS应用架构思考二(网络图片库)
- HEVC算法和体系结构:编码结构之编码完后码流的语法架构
- 快速了解云原生架构
- 【阿里云资讯】如何在阿里云数加平台实践Serverless架构?
- 后Hadoop时代,我们该如何去架构自己的大数据平台
- mysql-mmm高可用架构
- 关于如何设计一个基于事件驱动架构的思考
- Qt项目架构经验总结
- orbeon form 的架构简介 - 如何访问用户通过 form 存储的数据
- SAP Fiori架构一览
- BaaS云架构核心模式之Serverless架构 - 用服务代替服务器(Martin Fowler)
- ART世界探险(3) - ARM 64位CPU的架构快餐教程
- 【华为云技术分享】如何做一个优秀软件-可扩展的架构,良好的编码,可信的过程
- 程序员架构修炼之道:如何设计“易理解”的系统架构?
- 【Android架构GPS篇】之定位数据如何从GPS芯片到应用层
- Sidecar模式:下一代微服务架构的关键
- 如何在Python中使用ZeroMQ和Docker构建微服务架构