本文将从三步讲述消息中间件
消息队列,一般我们会简称它为MQ(Message Queue),直白的说就是储存消息与释放消息的先进先出结构。
那么把数据放到消息队列叫做生产者,从消息队列里边取数据则被叫做消费者。
功能与优点
1,解耦
我们作为A系统开发,当A系统处于1时刻的时候他只需需要向系统B与系统C提供相应的数据,但是因为某些原因B系统需要被D系统替代,那么我们要在A代码中去掉B系统的换成C系统。比如后来下游数据系统又出现问题,那么我们是不是又要更改代码。
但是我们可以直接发数据发送给相应的消息队列,然后让BCD。。。Z系统自己去改相应的代码,作为A系统开发的我们无需修改代码。这不仅是解耦。
同时也是一种数据使用规则,当上游系统已经提供相应的数据时,上游系统只提供相应的内聚接口,而下游对数据是否使用如何使用使用什么是由下游代码决定,而上游代码尽量无需修改。
2.异步
假设我们系统A还是直接向系统B、C、D传输相应的数据并没有使用消息队列且A系统只能使用单进程单线程,
当我们产生数据而且还要传输数据到B,可能系统B此时没有相应的资源去消费数据,那么我们的这个传输过程将会处于阻塞一直等待B系统有资源去消费数据,而且消费过程也是会占用我们的时间(同步)
,然后我们才能继续往CD等系统传输数据。
但是我们采用消息队列的方式,我们A系统只用负责往队列中填放数据即可,同时数据会被队列存贮(持久性),然后继续往队列中生产数据。与此同时,BCD系统可以自己从队列中直接取数据。
整个过程我们无须等待,所以是异步的。
3.冗余存储
4.流量削峰
消息中间件
官方的解释:
Middleware is computer software that provides services to software applications beyond those available from the operating system.
It can be described as "software glue".
Middleware makes it easier for software developers to implement communication and input/output, so they can focus on the specific purpose of their application.
消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,
它可以在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等等功能,其作为分布式系统架构中的一个重要组件,有着举足轻重的地位。
原文:https://www.cnblogs.com/wqbin/p/12609646.html