信鸽

消息代理消息中间件和消息队列的区别和联

发布时间:2022/10/31 15:05:21   

如果你是IT从业人员或者对IT比较感兴趣,基本都听说过消息代理、消息中间件和消息队列这几个词汇。今天郑州翔天信鸽就为大家分享一下它们的区别和联系。

ONE

简单来说,中间件其实就是帮助应用程序与其他应用程序、网络、硬件、操作系统交互或者通信的软件。它是相对于架构体系的,并不涉及具体的业务逻辑,也不涉及底层的硬件逻辑,用于用户数据交换和管理,可以起到“中介”的作用。任何中间件必然是为了解决特定领域的某个/某些问题而出现的。

TWO

消息可以说是一个数据传输单位,它包含了创建时间、通道/主题信息、输入参数等全部数据;队列是一种FIFO的数据结构。编程语言一般都内置队列实现,可以作为进程间通讯的方法。

使用队列中最常见的场景就是生产者/消费者模式:生产者生产消息放到队列中,消费者从队列里面获取消息消费。

准确的来说,消息队列是一种可以实现生产者到消费者单向通信的通信模型,一般大家说MQ指的是实现了这个模型的中间件。

可以说,消息中间件是现在企业架构中不可或缺的组成部分,虽然不同的中间件实现方案不同,但都具备以下这几个特点:

(1)分布式。其实消息中间件解决的就是分布式系统之间消息传递的问题,消费者可以分布在多台服务器上,一方面降低了由于单点故障引起的消息队列阻塞的风险,另一方面也很容易横向扩展。

(2)持久可靠。消息队列一般会把接收到的消息存储在本地硬盘上,保证消息不会在未消失之前莫名丢失。

(3)高性能和高吞吐量。比如RocketMQ有亿级消息堆积能力,广泛应用在阿里系的各种高并发场景下。

THREE

消息代理是一种架构模式,主要用于消息验证、变换、路由。不同的消息中间件架构和实现各不相同,但大部分都实现了Broker,其实就是消息中间件服务器,是中间件的核心。



转载请注明:http://www.aideyishus.com/lkcf/1714.html
------分隔线----------------------------