1. 中間件是什么
中間件顧名思義就是系統(tǒng)軟件和應(yīng)用軟件之間連接的軟件,以便于軟件各部件之間的溝通,特別是應(yīng)用軟件對于系統(tǒng)軟件的集中的邏輯,是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源。中間件在客戶服務(wù)器的操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫之上,管理計(jì)算資源和網(wǎng)絡(luò)通信??偟淖饔檬翘幱谧约荷蠈拥膽?yīng)用軟件提供運(yùn)行與開發(fā)的環(huán)境、幫助用戶靈活、高效地開發(fā)和集成復(fù)雜的應(yīng)用軟件。
我們可以這樣理解:就是一類能夠?yàn)橐环N或多種應(yīng)用程序合作互通、資源共享,同時(shí)還能為該應(yīng)用程序提供相關(guān)的服務(wù)的軟件。中間件是一類軟件統(tǒng)稱,而非一種軟件;中間件不僅僅實(shí)現(xiàn)互連,還要實(shí)現(xiàn)應(yīng)用之間的互操作。
2. 為什么要用中間件
具體地說,中間件屏蔽了底層操作系統(tǒng)的復(fù)雜性,使程序開發(fā)人員面對一個(gè)簡單而統(tǒng)一的開發(fā)環(huán)境,減少程序設(shè)計(jì)的復(fù)雜性,將注意力集中在自己的業(yè)務(wù)上,不必再為程序在不同系統(tǒng)軟件上的移植而重復(fù)工作、從而大大減少了技術(shù)上的負(fù)擔(dān)。
中間件帶給應(yīng)用系統(tǒng)的,不只是開發(fā)的簡便、開發(fā)周期的縮短,也減少了系統(tǒng)的維護(hù)、運(yùn)行和管理的工作量,還減少了計(jì)算機(jī)總體費(fèi)用的投入。
3. 中間件的使用場景
- 進(jìn)行系統(tǒng)解耦
例如A系統(tǒng)給B系統(tǒng)發(fā)消息,A系統(tǒng)給C系統(tǒng)發(fā)消息,為了系統(tǒng)A不在隨意修改,則可以A系統(tǒng)發(fā)消息給消息中間件,消息中間件轉(zhuǎn)發(fā)消息給系統(tǒng)B系統(tǒng)C,也方便后面需要添加系統(tǒng)D,進(jìn)行消息交互,如果將來很多系統(tǒng)進(jìn)行信息交互時(shí),則可以考慮添加消息中間件進(jìn)行消息轉(zhuǎn)發(fā)。 - 消息異步處理
A系統(tǒng)發(fā)消息給B系統(tǒng),B在進(jìn)行消息處理,不用及時(shí)回復(fù)A,則可以考慮加消息中間件,A只管發(fā)消息給中間鍵,B從中間件取出消息進(jìn)行處理返回給A,消息中間件進(jìn)行消息緩存,B異步讀取處理。 - 大量請求需要屏蔽情況下,比如秒殺活動,排隊(duì)等情況
如雙十一開啟個(gè)秒殺活動,會有大量請求消息,如果服務(wù)器處理所有消息的請求顯然是不太合理的,秒殺結(jié)果只有少數(shù)人能得到,多數(shù)人是無效的請求,中間件緩存請求,后端服務(wù)器只需要取部分請求恢復(fù)處理即可。
4. 主要的中間件的分類
- Hadoop
當(dāng)一個(gè)大任務(wù)由一臺機(jī)器在規(guī)定的時(shí)間內(nèi)不能完成時(shí),人們就要采用分布式計(jì)算,即多臺機(jī)器聯(lián)合起來共同完成此任務(wù)。換句話說,就是將這個(gè)任務(wù)拆分成幾個(gè)小人物,由多臺計(jì)算機(jī)去完成。參與計(jì)算的多臺計(jì)算機(jī)組成一個(gè)分布式系統(tǒng),需要運(yùn)行一系列的分布式基礎(chǔ)算法。
Hadoop就是一個(gè)分布式計(jì)算平臺,是用Java語言開發(fā)的,他的三個(gè)核心部件分別是:Common、MapReduce和HDFS三個(gè)核心部件
- Common為Hadoop提供一些常用的工具,主要包括系統(tǒng)配置工具Configuration、遠(yuǎn)程過程調(diào)用RPC/序列化機(jī)制和Hadoop抽象文件系統(tǒng)等。
- MapReduce是處理海量數(shù)據(jù)的計(jì)算模型
- 而HDFS用于儲存海量數(shù)據(jù),它具備高度容錯(cuò)性,能在低成本的通用硬件上穩(wěn)定運(yùn)行。
用 Hadoop 構(gòu)建的應(yīng)用實(shí)例對于計(jì)算資源的消耗具備兩個(gè)明顯的特征:
- 資源需求大:表明 Hadoop 需要大量的存儲、計(jì)算和網(wǎng)絡(luò)帶寬。
- 資源需求具備季節(jié)性:表明除存儲需求是經(jīng)常性占用外,在運(yùn)行 Mapreduce 時(shí)才需要大量的計(jì)算和網(wǎng)絡(luò)資源,而分析大量數(shù)據(jù)的工作并不是經(jīng)常性的——稱為季節(jié)性
-
LVS
LVS是linux Virtual server的首字母縮寫,意為Linux虛擬服務(wù)器,即把許多臺物理 Linux 計(jì)算機(jī)邏輯上整合成一臺超級計(jì)算機(jī),但對用戶來說只是一臺計(jì)算能力很強(qiáng)的服務(wù)器
LVS就是一個(gè)由軟件實(shí)現(xiàn)的負(fù)載均衡器,工作在網(wǎng)絡(luò) OSI 的第四層(應(yīng)用層),代碼已經(jīng)并入了 Linux 內(nèi)核。利用它,再加上一臺廉價(jià)的計(jì)算機(jī),就能構(gòu)建一臺企業(yè)級的負(fù)載均衡器。 -
靜態(tài)網(wǎng)站服務(wù)器
我們?yōu)g覽一家公司的網(wǎng)站時(shí),很可能就是跟那家公司服務(wù)器上的 Apache 程序打交道,網(wǎng)頁瀏覽器與 Apache 成了標(biāo)準(zhǔn)的 C/S 模式,瀏覽器是客戶端,而 Apache 是服務(wù)端。Apache 首先把主頁對應(yīng)的文件 index.html 發(fā)給我們,我們看到主頁內(nèi)容后,點(diǎn)擊主頁上的某個(gè)鏈接,它又把該鏈接對應(yīng)的文件發(fā)給我們。文章來源:http://www.zghlxwxcb.cn/news/detail-461588.html -
動態(tài)應(yīng)用服務(wù)器
開源的動態(tài)應(yīng)用服務(wù)器有 JBoss、Tomcat、Geronimo、JOnAS等文章來源地址http://www.zghlxwxcb.cn/news/detail-461588.html
到了這里,關(guān)于常見的中間件以及什么是中間件的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!