中间件系列ActiveMQ,Rocketmq,Rabbitmq,Kafka,Mycat让你深入理解学习中间件
Posted java6655
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中间件系列ActiveMQ,Rocketmq,Rabbitmq,Kafka,Mycat让你深入理解学习中间件相关的知识,希望对你有一定的参考价值。
以前的网络主要是客户端与服务器(C/S)结构或浏览器/服务器(B/S) 形式的两层结构,随着企业信息的不断扩大,企业级应用不再满足于简单的两层系统,而是向着三层和多层体系结构发展。中间件就是在其中加入一个中间层,以支持更多的功能和服务。
一、什么是中间件
通常,中间件是位于硬件操作系统和软件之间的通用服务。这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。
通俗点说:
中间件是为上层应用提供底层服务的软件。它对用户是透明的,用户并不关心处理是怎样进行的,只要能顺利的完成事务处理获取所需消息即可。由此可见,中间件是一种独立的服务程序,分布式应用软件借助中间件在不同技术之间共享资源。
并且,中间件位于服务器操作系统之上,和OS、DB并列为三大软件基础。在金融、电信、交通、电子商务都有着广泛的应用。
二、中间件的分类
1、数据库中间件(DM,Database Middleware)
数据库中间件是在所有中间件中应用最广泛、最成熟的一种。最典型的例子就是ODBC,ODBC是基于数据库的中间件标准,提供了一系列应用程序接口API,允许应用程序和数据库进行通信。
从经验上来看,我们在连接数据库时,至于要在ODBC中添加数据源,就可以连接数据库,而不用关心目标数据库的实现原理、机制。java同样通过JDBC数据库中间件,也可以实现同样的需求。
2、远程过程调用中间件(RPC ,Remote Procedure Call)
远程调用在ITOO项目中应该是使用极为广泛了,实现远程调用的功臣为EJB不可。同样EJB亦是远程过程调用中间件的一个代表。启动远程调用,然后将运行结果返回到本地程序。同样用户也无需EJB远程调用中间件内部是如何实现调用的。
3、面向消息中间件(MOM,Message Oriented Middleware)
消息中间件的有点在于能够在客户端和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传递或存储、转发。消息中间件适用于需要在多个进程之间进行可靠的数据传递的分布式环境。
4、基于对象请求代理(ORB,Object Request Broker)
对象请求代理是近年来才发展起来的,它可以看作是与编程语言无关的面向对象的远程调用,适用于非结构化或者非关系型的数据。
5、事务处理中间件(TPM,transaction Pprocessing Monitor)
事务处理中间件是针对复杂环境下分布式应用的速度和可靠性要求实现的,它提供了一个事务处理的API,开发者可使用这个程序接口,编写高速可靠的事务管理应用程序。
事务管理中间件常见的功能包括:全局事务协调、事物的分布式提交、故障恢复、网络负载均衡。
三、中间件的优势
1、缩短应用的开发周期,本来由程序开发做的控制,通过中间件介入都给你做了。
2、降低开发的失败率,通过引入成熟的中间件,增加了软件应用开发的成功率。
3、提高应用的开发质量。
4、减少前期开发成本和维护费用
总而言之,中间件向下屏蔽了操作系统的复杂性,使得开发人员仅面对一个简单统一的开发环境;向上使得应用程序开发简便,周期缩短,减少了系统运维的工作量。在网络经济发展的情况下,稳定可靠的中间件颇受电子商务发展的青睐,使不同操作系统和各种应用程序间无缝连接称为可能。
以上是关于中间件系列ActiveMQ,Rocketmq,Rabbitmq,Kafka,Mycat让你深入理解学习中间件的主要内容,如果未能解决你的问题,请参考以下文章
rocketmq(Activemq的缺点以及rocketmq解释)
MQ概览:ActiveMQ,Kafka,MetaMQ,RocketMQ 消息中间件使用场景