架构计算机基础

Java开发者为什么称Redis、RabbitMQ为中间件

转载:Java开发者为什么称Redis、RabbitMQ为中间件

背景


今天逛知乎无意间看到一个高赞问题,

本想试着回答一下,仔细阅读后我突然一愣,平时我们天天挂在嘴边的一个词语

我一个工作了10+的程序员竟然不知道它为什么叫这个名字。

题目的内容是:

Java开发者为什么称Redis、RabittMQ这些东西为中间件?

redis熟吧,RabittMQ熟吧,“中间件”这个词也很熟吧?

那个为什么它们叫中间件呢?起源又是怎么样的呢?

后知后觉的我赶紧去查找了一下资料,终于搞懂了“Redis、RabittMQ这些东西为什么叫中间件了”。

于是我就迫不及待的想要分享给大家,让大家的专业词汇库可以多一个新成员,面试的时候可以更好的装逼了

中间件的起源


中间件是一个很古老的架构概念,它出现在90年代末,兴盛于00年初。

实际上,它跟JAVA不JAVA没啥关系,所以不仅仅是Java开发者称它们为中间件,其他编程语言也叫它们为中间件。

在互联网发展初期的时候,两个系统之间对接,需要一种方法来简化不同系统、不同服务之间的沟通和数据交换。

比如:这是一个令人非常讨厌,又不得不干的脏活。为了解决这种脏活,最开始的中间件可能只是简单的数据传输服务,比如开发者一开始用数据库来作为两个系统之间的数据交换

比如:

简单来说,中间件是站在两个系统中间帮忙传话的,让数据流转起来更流畅、更有条理。

这就是互联网最初的形态,数据库存储数据,作为多个系统之间数据交互、沟通的中间件。

但随着时间的推移,需求增多,技术进步(比如电商的爆发),中间件也变得更加复杂和强大。

它们开始承担更多角色,比如数据缓存、消息队列、负载均衡等等,从而支持更加复杂的应用场景。

所以这就是中间件的由来:

位于系统中间的组件,就叫中间件

下面我们再来说说Redis和RabbitMQ为啥被称为中间件:

首先,Redis吧,它是一个超快的键值存储系统,被广泛用作缓存来提速应用,因为它可以瞬间返回数据,大大减少了等待时间。

除了缓存,Redis还能作为消息队列,支持发布/订阅模式。这就是典型的中间件功能:

帮助数据在不同应用间流动。

RabbitMQ的情况类似,但它是专门做消息队列的。

它允许应用程序发送消息到队列,其他程序再去队列里取这些消息。

这种方式能有效地解耦应用程序,让它们不必直接对话,而是通过RabbitMQ这个中间人进行交流。z这也是典型的中间件功能:

帮助数据在不同应用间流动

所以到这里,大家都明白了Redis和RabbitMQ为啥被称为中间件了吧。

能帮助数据在不同应用之间流动的组件,就可以被称为中间件

本文总结


经过这次的经历,我突然明白了,其实想要比别人优秀,就要对我们平时接触的知识多问几个为什么?

比如接触到中间件这个词汇,我们问自己几个为什么?

1、什么是中间件 ?
2、为什么叫中间件?
3、常用的中间件有哪些?

那么你就不会像我一样,突然某一天出现这个问题,才发现日常中常见的一些专业概念竟然不知道起源。