中间件:
个人理解,早期WEB项目采用MVC架构,全靠一台服务器扛起来的,随着互联发发展,服务器压力越来越大,分布式框架被大量的运用在B2C等项目中,比如面相服务的SOA架构,所采用的方式就是将各个业务系统拆分开来,独自承担压力,这样的架构就保证了项目的高可用。那么问题也随之而来,各个服务间如何进行通信,使用点对点的方式后期发现调用易造成混乱,所以可以采用这个面相服务治理的中间件Dubbo。嘿嘿,那么中间件到底是干嘛的其实根据上面来说能够稍微知道一点,其实就好像上面大家说的,中间件跟业务无关,仅仅在做各个服务中连接问题,好像一个路由器一样,将所有的子系统统一管理,从dubbo的核心RPC和NIO也能看出来,主要还是在负责服务间连接通信。还有就是它要去使用还需要依赖一个注册中心,官方推荐Zookeeper,我的理解就是dubbo负责连接(就是用自己的方案来获取provider和customer的url)集中交给zookeeper注册中间统一管理。这样我们在调用服务的时候,只需要通过中间件,就可以完成。这样做的好处就是可以让我们不论是前端和后端人员,可以在大型的分布式系统中专注于自身业务即可
作者:(知乎)哈里亮
链接
下面是oracle官方的解释:
由于业务、机构和技术是不断变化的,因此为其服务的软件系统必须适应这样的变化。在合并、添加服务或扩展可用服务之后,公司可能无力负担重新创建信息系统所需的成本。正是在这个关键时刻,才需要集成新组件或者尽可能高效地扩展现有组件。要集成异类组件,最方便的方法不是将它们重新创建为同类元素,而是提供一个允许它们进行通信(不考虑它们之间的差异)的层。该层被称作中间件,它允许独立开发且运行于不同网络平台上的软件组件(应用程序、Enterprise Java Bean、Servlet 和其他组件)彼此交互。当能够进行这样的交互时,网络才成为计算机。
原文地址:原文链接
自己概括一下:中间件就是对服务组件之间进行相互关联和通信的非业务性的组件。