1. 程式人生 > >中間件系列ActiveMQ,Rocketmq,Rabbitmq,Kafka,Mycat讓你深入理解學習中間件

中間件系列ActiveMQ,Rocketmq,Rabbitmq,Kafka,Mycat讓你深入理解學習中間件

quest 協議 允許 開發環境 不同 ket 周期 數據傳遞 pro

以前的網絡主要是客戶端與服務器(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讓你深入理解學習中間件