久久久久无码精品,亚洲国产精品国语在线,国产成人精品热玖玖玖,国产福利一区二区在线观看

中間件是什么?C/S、B/S、中間件淺易講解

2024-11-29 11:52:43 RAIZ

睿智創(chuàng)新RAIZ,一體化IT服務(wù)提供商

先拋出個(gè)經(jīng)濟(jì)學(xué)觀點(diǎn):社會(huì)的發(fā)展導(dǎo)致了社會(huì)分工,分工的結(jié)果是進(jìn)一步提高了技術(shù)生產(chǎn)能力。--《資本論》第一章

隨著技術(shù)系統(tǒng)的規(guī)模發(fā)展得足夠復(fù)雜,導(dǎo)致了開發(fā)團(tuán)隊(duì)無法親力親為參與每個(gè)技術(shù)系統(tǒng)的全部建設(shè),如果每次承接同類業(yè)務(wù)開發(fā)都從零開始對(duì)接,那么將大大增加研發(fā)成本。 這就導(dǎo)致了社會(huì)分工,有人把工程開發(fā)中基礎(chǔ)的、底層的、共用的服務(wù)和邏輯包裝成中間件,你只管使用就夠了。簡單理解:中間件就是將具體業(yè)務(wù)和底層邏輯解耦的組件。

給個(gè)比喻:中間件,就是所謂的中介,畢竟業(yè)務(wù)繁雜到一定程度后,干什么都需要中介。

讓我們坐好板凳,回憶一下那些沒有中間件的那些日子,除了最簡單的不需要任何服務(wù)的單機(jī)版程序,一種較為樸實(shí)的技術(shù)系統(tǒng)設(shè)計(jì)架構(gòu)叫做C/S架構(gòu)。


一、C/S架構(gòu)(客戶端/服務(wù)器架構(gòu)


C/S架構(gòu),即Client客戶端/Server服務(wù)器架構(gòu),是一種分布式應(yīng)用模式,最簡單的系統(tǒng)功能分為兩層:客戶端和服務(wù)器端。

如下圖,最簡單的技術(shù)系統(tǒng)分為兩層結(jié)構(gòu),在實(shí)際部署中就是一臺(tái)服務(wù)器和一臺(tái)或者若干臺(tái)終端。終端就是客戶端,需要安裝客戶端程序(比如.exe、.apk等應(yīng)用程序),服務(wù)器上安裝數(shù)據(jù)庫系統(tǒng),提供數(shù)據(jù)庫存儲(chǔ)服務(wù)。這種架構(gòu)叫做兩層結(jié)構(gòu)。客戶端負(fù)責(zé)用戶界面和業(yè)務(wù)邏輯,服務(wù)器端負(fù)責(zé)數(shù)據(jù)存儲(chǔ)和處理。


      多客戶端的話,C/S架構(gòu)需要在每個(gè)客戶端安裝專用的軟件。



圖片



當(dāng)業(yè)務(wù)發(fā)展得稍微復(fù)雜了,客戶端上的業(yè)務(wù)邏輯很復(fù)雜,我們?yōu)榱俗尶蛻舳耸菹聛恚ú皇菹聛淼脑?,軟件開發(fā)人員無法合理分工高效開發(fā),另外對(duì)客戶端配置要求也越來越高),這個(gè)時(shí)候,我們?cè)黾恿艘粋€(gè)應(yīng)用服務(wù)中間層,我們?cè)谶@臺(tái)服務(wù)器上實(shí)現(xiàn)了應(yīng)用服務(wù)。這就形成了三層結(jié)構(gòu)。如上圖所示。三層結(jié)構(gòu)通常是指將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表現(xiàn)層(客戶端呈現(xiàn))、業(yè)務(wù)邏輯層(應(yīng)用服務(wù)關(guān)聯(lián))、數(shù)據(jù)訪問層(數(shù)據(jù)庫服務(wù)關(guān)聯(lián))。

三層結(jié)構(gòu)在應(yīng)用服務(wù)這個(gè)中間層慢慢發(fā)展,慢慢催生形成了一些中間件開發(fā)框架,也在某種意義上推動(dòng)了C/S向B/S的轉(zhuǎn)變。

二、B/S架構(gòu)(瀏覽器/服務(wù)器架構(gòu)

因?yàn)镃/S架構(gòu)要求在每個(gè)客戶端安裝程序,在用戶使用方面是個(gè)阻礙。 由于瀏覽器的通用性,所以,很多技術(shù)系統(tǒng)都轉(zhuǎn)變成了B/S架構(gòu)。BBrowser,指的是Web瀏覽器,極少數(shù)事務(wù)邏輯在前端實(shí)現(xiàn),但主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn)。B/S架構(gòu)的系統(tǒng)無須特別安裝,只要有Web瀏覽器即可。很多時(shí)候真是瀏覽器在手,天下我有。B/S架構(gòu),就是瀏覽器/服務(wù)器架構(gòu),簡稱“鄙視”架構(gòu),誰用誰知道,用了都說好。



兩種架構(gòu)區(qū)別



圖片


B/S架構(gòu)是典型的三層結(jié)構(gòu),即表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層。客戶端使用應(yīng)用服務(wù)的流程如下:

1 客戶端輸入鏈接,向web服務(wù)器發(fā)起HTTP請(qǐng)求(或者HTTPS)。

2 web服務(wù)能夠處理HTTP請(qǐng)求,并且調(diào)用應(yīng)用服務(wù)器的暴露接口。

3 應(yīng)用服務(wù)器的接口被web服務(wù)器調(diào)用,會(huì)執(zhí)行對(duì)應(yīng)的暴露方法。如果有必要和數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互,應(yīng)用服務(wù)器會(huì)和數(shù)據(jù)庫進(jìn)行交互后,將json數(shù)據(jù)返回給web服務(wù)器。

4 web服務(wù)器將html前臺(tái)模板+數(shù)據(jù)組合渲染成html返回給客戶端。

5 客戶端瀏覽器呈現(xiàn)html效果。

具體的web實(shí)際應(yīng)用部署中,我們經(jīng)常會(huì)見到以下兩種簡單架構(gòu)。


(1) 單體架構(gòu)

這個(gè)B/S架構(gòu)下,數(shù)據(jù)庫和web應(yīng)用都安裝在同一個(gè)服務(wù)器。


圖片

(2) 應(yīng)用與數(shù)據(jù)庫分離架構(gòu)

 這個(gè)B/S架構(gòu)下,web應(yīng)用和數(shù)據(jù)庫單獨(dú)分開安裝在不同服務(wù)器。


圖片


單體架構(gòu)、分離架構(gòu)的區(qū)別其實(shí)就是為了緩解應(yīng)用服務(wù)和數(shù)據(jù)服務(wù)捆在一起的壓力,讓凱撒的歸凱撒,上帝的歸上帝,各自分開負(fù)責(zé)應(yīng)用和數(shù)據(jù)。其他復(fù)雜的一些架構(gòu),比如使用負(fù)載均衡、緩存抗量、多應(yīng)用部署和Nginx反向代理、 數(shù)據(jù)庫讀寫分離、應(yīng)用分組部署等架構(gòu),主要是為了承受大規(guī)模的用戶訪問和高并發(fā)服務(wù)。比如12306網(wǎng)站,肯定采用了較為復(fù)雜的設(shè)計(jì)架構(gòu)。

三、 C/S、B/S、中間件的關(guān)聯(lián)

B/S是隨著瀏覽器的更普遍應(yīng)用興起的的技術(shù)系統(tǒng)設(shè)計(jì),在這種架構(gòu)下,在web和應(yīng)用服務(wù)這個(gè)中間層,它至少需要提供兩個(gè)功能。

(1)web基礎(chǔ)交互功能(與瀏覽器交互的用于處理HTTP請(qǐng)求和響應(yīng)功能

這塊功能是工程開發(fā)中基礎(chǔ)的、底層的、共用的服務(wù)。所以web基礎(chǔ)交互方面已經(jīng)發(fā)展了一些成熟的Web服務(wù)器中間件,如Nginx、Apache、IIS 等中間件。

(2)具體業(yè)務(wù)對(duì)應(yīng)的業(yè)務(wù)邏輯功能(比如政府采購網(wǎng)站,需要登錄注冊(cè)還有貨品展示、下單等功能)

這部分我們常稱之為應(yīng)用服務(wù),是開發(fā)過程中個(gè)性化開發(fā)的部分,開發(fā)好了,我們將編譯后的應(yīng)用服務(wù)代碼部署在web應(yīng)用服務(wù)器,然后再安裝配置Web服務(wù)器中間件,網(wǎng)站就可以進(jìn)行訪問使用了。

四、其他

中間件還有很多其他方面的應(yīng)用。web服務(wù)器中間件只是其中一種。

常見的中間件分類包括:

1. 消息隊(duì)列中間件:用于在應(yīng)用程序之間進(jìn)行異步消息傳遞。消息隊(duì)列中間件包括RabbitMQ、Apache Kafka、ActiveMQ等。

2. 數(shù)據(jù)庫中間件:用于管理和訪問數(shù)據(jù)庫。數(shù)據(jù)庫中間件包括MySQL Proxy、PostgreSQL PgBouncer等。

3. 緩存中間件:用于加速數(shù)據(jù)訪問,減輕數(shù)據(jù)庫負(fù)載。緩存中間件包括Redis、Memcached等。

4. Web服務(wù)器中間件:用于處理HTTP請(qǐng)求和響應(yīng)。常見的Web服務(wù)器中間件包括Nginx、Apache等。

5. 應(yīng)用服務(wù)器中間件:用于托管和管理應(yīng)用程序的執(zhí)行環(huán)境。它們通常用于Java EE和其他應(yīng)用程序開發(fā)技術(shù)中。常見的應(yīng)用服務(wù)器中間件包括Tomcat、Jboss等。

6、其他中間件。


睿智創(chuàng)新.RAIZ

致力于信息技術(shù)與開發(fā)應(yīng)用的,一體化IT服務(wù)提供商

運(yùn)維外包 | 網(wǎng)站建設(shè) | 軟件開發(fā) | 系統(tǒng)集成

技術(shù)服務(wù)交流,優(yōu)秀案例分享,歡迎關(guān)注私信

睿智創(chuàng)新RAIZ,一體化IT服務(wù)提供商



我要咨詢
沙田区| 靖西县| 措美县| 德庆县| 南陵县| 石狮市| 徐闻县| 剑川县| 湄潭县| 南宫市| 夏津县| 汝城县| 科技| 喀什市| 凯里市| 沭阳县| 鄂州市| 冷水江市| 水富县| 中西区| 菏泽市| 抚宁县| 兰考县| 太仆寺旗| 汝州市| 中山市| 望谟县| 高台县| 饶平县| 旬邑县| 隆尧县| 九台市| 潢川县| 长乐市| 保康县| 汾西县| 翁牛特旗| 漳州市| 香格里拉县| 江川县| 陆川县|