消息中间件(一)基础

简介:

消息中间件是用于分步式系统之间收发消息的组件。


消息中间件的作用

1. 应用解耦

2. 异步处理

比如用户注册场景,注册主流程完成以后,需要调用邮件系统发送邮件通知用户注册成功,可能还需要调用其他系统。这是串行的,如果一个系统依赖很多系统,那么这个主流程会比较长,耦合度高,整个系统维护成本也会越来越高。那么我们就可以使用消息中间件来进行解耦,通过发布订阅模式,完成用户注册之后,向中间件发送消息,这样就可以马上给用户返回,至于后续工作其他系统向中间件订阅这个消息并完成后续工作就好。这也就是一个解耦和异步处理过程。


中间件有下面两种模型

点对点模型

1.png

发布订阅模型

2.png


消息中间件的解耦和异步是两个最重要的需求点,除此之外还应该做一些其他事情比如:

  • 保证一致性,产生消息和发送消息是一致的,也就是如果操作成功,那么消息一定发送成功;如果业务操作没有成功那么就不能发送消息

  • 具备一定消息堆积能力,可以为后端挡住一些数据流保证后端不会被压垮

  • 具备消息实时性,保证消息的低延迟

  • 具备消息的可靠性,主要是可靠地存储和投递


消息系统里面应该有这样一个假设:消息一定会堆积。下游系统通常有很多,里面有重要的也不重要的,面对突发流量高峰,一定会有后端系统处理不过来的情况,从而造成消息堆积;当然还有一种情况是后端系统出现问题导致暂时无法消费消息从而造成消息中间件的消息堆积。所以中间件要起到蓄水池的作用。


数据一致性,这个很容易理解,因为是分布式异步的,但是又不能容忍数据出错,所以在性能和数据一致性方面就需要有所妥协,通常在互联网行业中采取最终一致性。需要注意的是最终一致性和弱一致性不同,弱一致性表示允许在异常情况下数据可能不一致,而最终一致性则是在某段时间内允许不一致但是最终会一致。






      本文转自linuxjavachen  51CTO博客,原文链接:http://blog.51cto.com/littledevil/2068474,如需转载请自行联系原作者





相关文章
|
网络协议 算法 数据库
OSPF中的Network LSA详解
OSPF中的Network LSA详解
888 4
|
前端开发 API 数据库
排队免单模式与众店模式:实现实体店引流和用户消费动力提升
本示例涵盖后端逻辑、数据库设计、前端界面及用户交互,包括用户、商家、订单管理及积分系统。通过Flask框架实现API接口,前端使用HTML/CSS/JS构建,确保安全、性能与良好用户体验。此为简化版,实际需详细开发测试。
|
SQL Python
SqlAlchemy 2.0 中文文档(五十七)(5)
SqlAlchemy 2.0 中文文档(五十七)
281 0
|
小程序 API 定位技术
微信小程序【关于地址信息的接入以及自动选择当前位置】
微信小程序【关于地址信息的接入以及自动选择当前位置】
768 0
|
Linux BI 开发者
Linux性能优化之cpu性能评估工具| 学习笔记
快速学习Linux性能优化之cpu性能评估工具。
Linux性能优化之cpu性能评估工具| 学习笔记
|
设计模式 前端开发 Java
六种方式,教你在SpringBoot初始化时搞点事情!
六种方式,教你在SpringBoot初始化时搞点事情!
|
存储 JSON 前端开发
JavaScript 数据结构与算法之美 - 栈内存与堆内存 、浅拷贝与深拷贝
JavaScript 数据结构与算法之美 - 栈内存与堆内存 、浅拷贝与深拷贝
301 0
JavaScript 数据结构与算法之美 - 栈内存与堆内存 、浅拷贝与深拷贝
|
设计模式 算法 Java
Java-设计模式之策略模式
策略模式作为常用的设计模式之一,在我们开发过程中经常会被用到;本文从概念、角色、实例应用、设计原则、优缺点和应用场景等方面对策略模式进行了解读,希望可以对大家有所帮助;如果有问题,欢迎大家来指证和讨论;
1076 0
Java-设计模式之策略模式
阿里云商标查询入口
阿里云商标注册服务,能够快速帮助你申请商标。阿里云的口碑就不多说了,有阿里云这个大牌子,服务肯定差不了。
36550 2
|
7天前
|
存储 弹性计算 缓存
阿里云服务器租赁费用:新版租赁收费标准及活动报价参考
本文更新了2026年阿里云全系列云服务器租赁活动报价,所有特惠资源均可前往阿里云活动中心选购,整体覆盖从个人入门到企业级高性能场景的全梯度需求。其中轻量应用服务器主打极致性价比,2核2G峰值200M带宽配置每日10点、15点限时抢购价仅38元/年,2核4G配置379元/年起;高性价比的经济型e实例、通用算力型u2i实例覆盖2核4G至4核32G全档位,适配开发测试与中小型企业业务;搭载英特尔至强6处理器的第九代c9i企业级实例算力较上代提升20%,支撑高并发生产环境,不同实例规格价差清晰,用户可根据自身业务负载与预算灵活选型。
1744 117