常用的中間件


常用的中間件

中間件是什么

中間件(英語:Middleware)顧名思義是系統軟件和用戶應用軟件之間連接的軟件,以便於軟件各部件之間的溝通,特別是應用軟件對於系統軟件的集中的邏輯,是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源。中間件在客戶服務器的操作系統、網絡和數據庫之上,管理計算資源和網絡通信。總的作用是為處於自己上層的應用軟件提供運行與開發的環境,幫助用戶靈活、高效地開發和集成復雜的應用軟件。

也就是說,關於中間件,我們可以理解為:是一類能夠為一種或多種應用程序合作互通、資源共享,同時還能夠為該應用程序提供相關的服務的軟件。中間件是一類軟件統稱,而非一種軟件;中間件不僅僅實現互連,還要實現應用之間的互操作。

 

特點

  • 滿足大量應用的需要;
  • 運行於多種硬件和OS平台;
  • 支持分布計算,提供跨網絡、硬件和OS平台的透明性的應用或服務的交互;
  • 支持標准的協議;
  • 支持標准的接口。

RabbitMQ

是使用Erlang編寫的一個開源的消息隊列,本身支持很多的協議:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它變的非常重量級,更適合於企業級的開發。同時實現了一個經紀人(Broker)構架,這意味着消息在發送給客戶端時先在中心隊列排隊。對路由(Routing),負載均衡(Load balance)或者數據持久化都有很好的支持。

Redis

是一個Key-Value的NoSQL數據庫,開發維護很活躍,雖然它是一個Key-Value數據庫存儲系統,但它本身支持MQ功能,所以完全可以當做一個輕量級的隊列服務來使用。對於RabbitMQ和Redis的入隊和出隊操作,各執行100萬次,每10萬次記錄一次執行時間。測試數據分為128Bytes、512Bytes、1K和10K四個不同大小的數據。實驗表明:入隊時,當數據比較小時Redis的性能要高於RabbitMQ,而如果數據大小超過了10K,Redis則慢的無法忍受;出隊時,無論數據大小,Redis都表現出非常好的性能,而RabbitMQ的出隊性能則遠低於Redis。

Jafka/Kafka

Kafka是Apache下的一個子項目,是一個高性能跨語言分布式Publish/Subscribe消息隊列系統,而Jafka是在Kafka之上孵化而來的,即Kafka的一個升級版。具有以下特性:快速持久化,可以在O(1)的系統開銷下進行消息持久化;高吞吐,在一台普通的服務器上既可以達到10W/s的吞吐速率;完全的分布式系統,Broker、Producer、Consumer都原生自動支持分布式,自動實現復雜均衡;支持Hadoop數據並行加載,對於像Hadoop的一樣的日志數據和離線分析系統,但又要求實時處理的限制,這是一個可行的解決方案。Kafka通過Hadoop的並行加載機制來統一了在線和離線的消息處理,這一點也是本課題所研究系統所看重的。Apache Kafka相對於ActiveMQ是一個非常輕量級的消息系統,除了性能非常好之外,還是一個工作良好的分布式系統。

其他一些隊列列表HornetQ、Apache Qpid、Sparrow、Starling、Kestrel、Beanstalkd、Amazon SQS就不再一一分析。

ActiveMQ

是Apache下的一個子項目。 類似於ZeroMQ,它能夠以代理人和點對點的技術實現隊列。同時類似於RabbitMQ,它少量代碼就可以高效地實現高級應用場景。RabbitMQ、ZeroMQ、ActiveMQ均支持常用的多種語言客戶端 C++、Java、.Net,、Python、 Php、 Ruby等。

ZeroMQ

號稱最快的消息隊列系統,尤其針對大吞吐量的需求場景。ZMQ能夠實現RabbitMQ不擅長的高級/復雜的隊列,但是開發人員需要自己組合多種技術框架,技術上的復雜度是對這MQ能夠應用成功的挑戰。ZeroMQ具有一個獨特的非中間件的模式,你不需要安裝和運行一個消息服務器或中間件,因為你的應用程序將扮演了這個服務角色。你只需要簡單的引用ZeroMQ程序庫,可以使用NuGet安裝,然后你就可以愉快的在應用程序之間發送消息了。但是ZeroMQ僅提供非持久性的隊列,也就是說如果down機,數據將會丟失。其中,Twitter的Storm中使用ZeroMQ作為數據流的傳輸。

BEA Weblogic

Weblogic系列的最大特點是平台開放。 Weblogic和其他第三方開發工具的結合也非常好,常見的組合就是 Jbuilder Weblogic的開發環境。

BEA Weblogic integration是 BEA Weblogic Enterprise Platform的一個組件,它提供了企業應用集成所需的各種功能,可用開發新應用,將新應用與現有系統集成,簡化業務流程以及通過門戶網關擴展業務基礎結構。 BEA Weblogic Integration為快速交付業務集成、簡化生產管理提供了通用的開發環境,整合了業務集成領域各種不同的部件,其中包括ERP、CRM遺留應用、業務用戶、供應鏈和業務伙伴。

Oracle fusion

甲骨文公司的 Oracle融合中間件 Oracle fusion middleware是一個全面的中間件產品系列,由甲骨文公司的SOA和中間件產品組成,其中包括: Oracle應用服務器10g、 Oracle應用服務器產品和可選配件、 Oracle數據平台、 Oracle內容服務10g、 Oracle實時協作10g和 Oracle統一傳信。這一經過驗證的中間件產品系列可幫助各企業提高公共運作的效率及敏捷性, Oracle fusion middleware還為客戶的面向服務應用提供貫穿整個生命周期的全面支持,由於其獨特的插作式架構,這個系列產品具有與企業現有T基礎設施的互操作性。

SA PXI

SA PXI應用集成套件作為 SA NEtweaver中間件產品的一部分,目的是為non-SAP系統提供一個其他管理信息系統與SAP系統進行數據和流程交互的平台,因為SAP定位於ERP系統,關注點在企業的人、財、物,但對於企業其他的專業系統,SAP的功能無法覆蓋和取代,因此,必須有這樣的“接口”來實現相互之間的數據和業務交換。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM