Java问题:中间件是什么

和朋友聊天时被问到中间件是什么?一时有点语赛,感觉熟悉这个概念,但又完全不知道如何清楚的向别人讲这些。

网络上搜了一下,也没找到让自己很认可的说法,有的说非业务的技术类组件,是操作系统之上和业务逻辑之下的中间层都可以称之为中间件,有说用于解耦底层逻辑和业务应用的组件,也有说是一些可复用的后台组件,似乎有点道理但又没完全讲清楚这个概念。

中间件就是在大型网站中,帮助各子模块间实现互相访问,消息共享或统一访问等功能的软件产品。常见的有: 
远程服务框架中间件:主要解决各子模块之间互相访问的问题。 如分布式服务框架Dubbo,RPC框架等
消息队列中间件:主要解决各子模之间消息共享的问题。 是一种EDA架构(event driven architecture):通过在低耦合的模块之间传输事件消息来完成模块之间的合作。大型网站中,消息队列采用发布/订阅模式。消息发布者发布消息到消息队列,消息消费者只要对该类消息感兴趣,就可以订阅该消息,对其他的业务没有任何的影响。
数据访问中间件:用于简化应用层对数据层的访问。 

从草稿箱中翻出这篇文章,再看这个问题,觉得中间件其实也有两个层面不同理解。狭义中间件如常见的远程服务框架、消息队列、缓存等;广义的中间件是操作系统之上业务逻辑之下的所有可复用的后台组件。

今天是教师节,向所有曾教过自己的教师表示感恩!

猜你喜欢

转载自www.cnblogs.com/doit8791/p/7354203.html