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

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

我一个工作了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、常用的中间件有哪些?

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

如果是在面试官的面前,就会给人一种非常不专业的印象。

希望大家以我为鉴,要做一个善于深度思考的人

小北私藏精品  热门推荐
小北联合公司合伙人,一线大厂在职架构师耗时9个月联合打造2024年Java高级架构师课程》本课程对标外面3万左右的架构培训课程,分10个阶段,目前已经更新了181G视频,已经更新1000+个小时视频,一次购买,持续更新,无需2次付费
近期技术热文
都2024年了还在用JSON? 快来了解一下Msgpack!
提升单体springboot的并发数的8个小技巧
Springboot中使用@Transactional注解7大失效场景及解决方案
Springboot中使用@Async注解7大失效场景及解决方案
第3版:互联网大厂面试题
包括 Java 集合、JVM、多线程、并发编程、设计模式、算法调优、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat、Python、HTML、CSS、Vue、React、JavaScript、Android 大数据、阿里巴巴等大厂面试题等、等技术栈!
阅读原文: 高清 7701页大厂面试题  PDF

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。