97色精品视频在线观看免费,日韩欧美亚洲每日更新网,国产精品色婷婷99久久精品,99e热久久免费精品首页

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

2024-11-29 11:52:43 RAIZ

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

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

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

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

讓我們坐好板凳,回憶一下那些沒有中間件的那些日子,除了最簡單的不需要任何服務(wù)的單機版程序,一種較為樸實的技術(shù)系統(tǒng)設(shè)計架構(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),在實際部署中就是一臺服務(wù)器和一臺或者若干臺終端。終端就是客戶端,需要安裝客戶端程序(比如.exe、.apk等應(yīng)用程序),服務(wù)器上安裝數(shù)據(jù)庫系統(tǒng),提供數(shù)據(jù)庫存儲服務(wù)。這種架構(gòu)叫做兩層結(jié)構(gòu)。客戶端負責用戶界面和業(yè)務(wù)邏輯,服務(wù)器端負責數(shù)據(jù)存儲和處理


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



圖片



當業(yè)務(wù)發(fā)展得稍微復雜了,客戶端上的業(yè)務(wù)邏輯很復雜,我們?yōu)榱俗尶蛻舳耸菹聛恚ú皇菹聛淼脑挘浖_發(fā)人員無法合理分工高效開發(fā),另外對客戶端配置要求也越來越高),這個時候,我們增加了一個應(yīng)用服務(wù)中間層,我們在這臺服務(wù)器上實現(xiàn)了應(yīng)用服務(wù)。這就形成了三層結(jié)構(gòu)。如上圖所示。三層結(jié)構(gòu)通常是指將整個業(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ù)這個中間層慢慢發(fā)展,慢慢催生形成了一些中間件開發(fā)框架,也在某種意義上推動了C/S向B/S的轉(zhuǎn)變。

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

因為C/S架構(gòu)要求在每個客戶端安裝程序,在用戶使用方面是個阻礙。 由于瀏覽器的通用性,所以,很多技術(shù)系統(tǒng)都轉(zhuǎn)變成了B/S架構(gòu)。BBrowser,指的是Web瀏覽器,極少數(shù)事務(wù)邏輯在前端實現(xiàn),但主要事務(wù)邏輯在服務(wù)器端實現(xiàn)。B/S架構(gòu)的系統(tǒng)無須特別安裝,只要有Web瀏覽器即可。很多時候真是瀏覽器在手,天下我有。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請求(或者HTTPS)。

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

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

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

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

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


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

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


圖片

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

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


圖片


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

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

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

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

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

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

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

四、其他

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

常見的中間件分類包括:

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

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

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

4. Web服務(wù)器中間件:用于處理HTTP請求和響應(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ù)提供商

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

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

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



我要咨詢
主站蜘蛛池模板: 宜兰市| 永顺县| 思茅市| 富民县| 沅江市| 德兴市| 秦皇岛市| 天峻县| 靖西县| 无为县| 宝坻区| 康马县| 南安市| 永年县| 东源县| 古交市| 乐昌市| 南和县| 沙坪坝区| 芜湖县| 岳阳县| 双江| 贵港市| 平乡县| 郑州市| 宾川县| 正定县| 望江县| 慈利县| 呼图壁县| 木兰县| 沂南县| 吴川市| 民乐县| 房产| 五原县| 邵武市| 吉水县| 龙川县| 陆川县| 恩平市|