本篇內(nèi)容主要講解“Nginx的微服務(wù)架構(gòu)分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Nginx的微服務(wù)架構(gòu)分析”吧!
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比點(diǎn)軍網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式點(diǎn)軍網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋點(diǎn)軍地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。
介紹
NGINX從一開始就參與了微服務(wù)運(yùn)動(dòng)。 NGINX的輕巧,高性能和靈活性非常適合微服務(wù)。
NGINX Docker映像是Docker Hub上排名第一的應(yīng)用程序映像,您今天在Web上找到的大多數(shù)微服務(wù)平臺(tái)都包含一個(gè)演示,它以某種形式部署NGINX并連接到歡迎頁面。
因?yàn)槲覀冋J(rèn)為轉(zhuǎn)向微服務(wù)對(duì)于客戶的成功至關(guān)重要,我們NGINX已經(jīng)啟動(dòng)了一個(gè)專門的程序來開發(fā)支持Web應(yīng)用程序開發(fā)和交付這種地震轉(zhuǎn)變的功能和實(shí)踐。我們還認(rèn)識(shí)到,實(shí)現(xiàn)微服務(wù)有許多不同的方法,其中許多方法都是新穎的,并且特定于各個(gè)開發(fā)團(tuán)隊(duì)的需求。我們認(rèn)為需要使用模型來使公司更容易開發(fā)和交付自己的基于微服務(wù)的應(yīng)用程序。
考慮到這一切,NGINX專業(yè)服務(wù)部門正在開發(fā)NGINX微服務(wù)參考架構(gòu)(MRA) - 一組可用于創(chuàng)建自己的微服務(wù)應(yīng)用程序的模型。
MRA由兩部分組成:三個(gè)模型中的每一個(gè)的詳細(xì)描述,以及實(shí)現(xiàn)我們的示例照片共享程序的可下載代碼,Ingenious。三種型號(hào)的唯一區(qū)別是用于為每種型號(hào)配置NGINX Plus的配置代碼。這一系列博客文章將提供每個(gè)模型的概述說明; Ingenious示例程序的詳細(xì)描述,配置代碼和代碼將在今年晚些時(shí)候推出。
我們構(gòu)建此參考架構(gòu)的目標(biāo)有三個(gè):
為客戶和行業(yè)提供隨時(shí)可用的藍(lán)圖,用于構(gòu)建基于微服務(wù)的系統(tǒng),加速和改進(jìn)開發(fā)
創(chuàng)建用于測(cè)試NGINX和NGINX Plus中新功能的平臺(tái),無論是內(nèi)部開發(fā)還是外部開發(fā),分布在產(chǎn)品核心中或作為動(dòng)態(tài)模塊
為了幫助我們了解合作伙伴系統(tǒng)和組件,我們可以從整體上了解微服務(wù)生態(tài)系統(tǒng)
微服務(wù)參考架構(gòu)也是NGINX客戶專業(yè)服務(wù)產(chǎn)品的重要組成部分。在MRA中,我們盡可能使用NGINX開源和NGINX Plus共有的功能,并在需要時(shí)使用NGINX Plus特有的功能。 NGINX Plus依賴關(guān)系在更復(fù)雜的模型中更強(qiáng),如下所述。我們預(yù)計(jì),MRA的許多用戶將受益于NGINX專業(yè)服務(wù)的訪問以及NGINX Plus訂閱的技術(shù)支持。
微服務(wù)參考架構(gòu)概述
我們正在構(gòu)建參考架構(gòu)以符合Twelve-Factor App的原則。這些服務(wù)設(shè)計(jì)為輕量級(jí),短暫的和無狀態(tài)的。
MRA使用行業(yè)標(biāo)準(zhǔn)組件,如Docker容器,各種語言 - Java,PHP,Python,NodeJS / JavaScript和Ruby - 以及基于NGINX的網(wǎng)絡(luò)。
遷移到微服務(wù)時(shí),應(yīng)用程序設(shè)計(jì)和體系結(jié)構(gòu)的最大變化之一是使用網(wǎng)絡(luò)在應(yīng)用程序的功能組件之間進(jìn)行通信。在單片應(yīng)用程序中,應(yīng)用程序組件在內(nèi)存中進(jìn)行通信。在微服務(wù)應(yīng)用程序中,該通信通過網(wǎng)絡(luò)進(jìn)行,因此網(wǎng)絡(luò)設(shè)計(jì)和實(shí)施變得至關(guān)重要。
為了反映這一點(diǎn),MRA已經(jīng)使用三種不同的網(wǎng)絡(luò)模型實(shí)現(xiàn),所有這些模型都使用NGINX或NGINX Plus。它們的范圍從相對(duì)簡(jiǎn)單到功能豐富且更復(fù)雜:
代理模型 (Proxy Model)- 一種簡(jiǎn)單的網(wǎng)絡(luò)模型,適用于實(shí)現(xiàn)NGINX Plus作為微服務(wù)應(yīng)用程序的控制器或API網(wǎng)關(guān)。該模型建立在Docker Cloud之上。
路由器網(wǎng)格模型(Router Mesh Model ) - 一種更強(qiáng)大的網(wǎng)絡(luò)方法,每臺(tái)主機(jī)上都有一個(gè)負(fù)載均衡器,可以管理系統(tǒng)之間的連接。該模型類似于Deis 1.0的體系結(jié)構(gòu)。
織品模型 (Fabric Model) - MRA的皇冠上的明珠,面料模型在每個(gè)容器中都有NGINX Plus,處理所有入口和出口交通。它適用于高負(fù)載系統(tǒng),并支持所有級(jí)別的SSL / TLS,NGINX Plus提供減少的延遲,持久的SSL / TLS連接,服務(wù)發(fā)現(xiàn)以及所有微服務(wù)中的斷路器模式。
我們的目的是您使用這些模型作為您自己的微服務(wù)實(shí)現(xiàn)的起點(diǎn),我們歡迎您提供有關(guān)如何改進(jìn)MRA的反饋。 (您可以從添加到下面的評(píng)論開始。)
以下是每種模型的簡(jiǎn)要說明;我們建議您閱讀所有描述,以便開始了解如何最好地使用一個(gè)或多個(gè)模型。未來的博客文章將詳細(xì)描述每個(gè)模型,每個(gè)博客文章一個(gè)。
代理模型簡(jiǎn)介
代理模型是一種相對(duì)簡(jiǎn)單的網(wǎng)絡(luò)模型。它是初始微服務(wù)應(yīng)用程序的出色起點(diǎn),或者是轉(zhuǎn)換中等復(fù)雜的單片遺留應(yīng)用程序的目標(biāo)模型。
在代理模型中,NGINX或NGINX Plus充當(dāng)入口控制器,將請(qǐng)求路由到微服務(wù)。當(dāng)創(chuàng)建新服務(wù)時(shí),NGINX Plus可以使用動(dòng)態(tài)DNS進(jìn)行服務(wù)發(fā)現(xiàn)。當(dāng)使用NGINX作為API網(wǎng)關(guān)時(shí),代理模型也適合用作模板。
如果需要進(jìn)行服務(wù)間通信 - 并且大多數(shù)應(yīng)用程序都處于任何復(fù)雜程度 - 服務(wù)注冊(cè)表提供集群內(nèi)的機(jī)制。 (有關(guān)服務(wù)間通信機(jī)制的詳細(xì)列表,請(qǐng)參閱此博客文章。)Docker Cloud默認(rèn)使用此方法;為了連接到另一個(gè)服務(wù),服務(wù)查詢DNS并獲取IP地址以發(fā)送請(qǐng)求。
通常,代理模型適用于簡(jiǎn)單到中等復(fù)雜的應(yīng)用程序。它不是負(fù)載平衡最有效的方法/模型,特別是在規(guī)模上;如果您有嚴(yán)重的負(fù)載平衡要求,請(qǐng)使用下面描述的模型之一。 (“Scale”可以指大量的微服務(wù)以及高流量。)
編輯器 - 有關(guān)此模型的深入探索,請(qǐng)參閱MRA,第2部分 - 代理模型。
路由器網(wǎng)格模型
路由器網(wǎng)格模型中等復(fù)雜,非常適合強(qiáng)大的新應(yīng)用程序設(shè)計(jì),也適用于轉(zhuǎn)換不需要Fabric模型功能的更復(fù)雜的單片遺留應(yīng)用程序。
通過在每個(gè)主機(jī)上運(yùn)行負(fù)載均衡器并主動(dòng)管理微服務(wù)之間的連接,路由器網(wǎng)狀網(wǎng)模型采用比代理模型更強(qiáng)大的網(wǎng)絡(luò)方法。路由器網(wǎng)格模型的主要優(yōu)點(diǎn)是服務(wù)之間的更高效和穩(wěn)健的負(fù)載平衡。如果使用NGINX Plus,則可以實(shí)施活動(dòng)運(yùn)行狀況檢查以監(jiān)視各個(gè)服務(wù)實(shí)例,并在關(guān)閉時(shí)優(yōu)雅地限制流量。
Deis Workflow使用類似于路由器網(wǎng)格模型的方法在服務(wù)之間路由流量,NGINX實(shí)例在每個(gè)主機(jī)上的容器中運(yùn)行。當(dāng)新的應(yīng)用程序?qū)嵗粏?dòng)時(shí),進(jìn)程從etcd服務(wù)注冊(cè)表中提取服務(wù)信息并將其加載到NGINX中。 NGINX Plus也可以在這種模式下工作,使用各種位置及其相關(guān)的上游。
最后 - Fabric模型,帶有可選的SSL / TLS
我們NGINX對(duì)Fabric模型最為興奮。它帶來了一些最令人興奮的微服務(wù)承諾,包括高性能,負(fù)載平衡的靈活性,以及無處不在的SSL / TLS,直到單個(gè)微服務(wù)的水平。 Fabric模型適用于安全應(yīng)用程序,可擴(kuò)展到非常大的應(yīng)用程序。
在Fabric模型中,NGINX Plus部署在每個(gè)容器中,并成為進(jìn)出容器的所有HTTP流量的代理。應(yīng)用程序與本地(localhost)主機(jī)位置通信以獲取所有服務(wù)連接,并依賴NGINX Plus進(jìn)行服務(wù)發(fā)現(xiàn),負(fù)載平衡和運(yùn)行狀況檢查。
在我們的配置中,NGINX Plus向ZooKeeper查詢應(yīng)用程序需要連接的所有服務(wù)實(shí)例。例如,使用DNS頻率設(shè)置(有效)設(shè)置為1秒,NGINX Plus會(huì)每隔一秒掃描ZooKeeper,并適當(dāng)?shù)芈酚闪髁俊?/p>
由于NGINX Plus中強(qiáng)大的HTTP處理功能,我們可以使用keepalive來維護(hù)與微服務(wù)的狀態(tài)連接,減少延遲并提高性能。當(dāng)使用SSL / TLS來保護(hù)微服務(wù)之間的流量時(shí),這是一個(gè)特別有價(jià)值的功能。
最后,我們使用NGINX Plus的主動(dòng)健康檢查來管理健康實(shí)例的流量,并且基本上免費(fèi)構(gòu)建斷路器模式。
MRA的巧妙演示應(yīng)用程序
MRA包括一個(gè)示例應(yīng)用程序作為演示:Ingenious照片共享應(yīng)用程序。 Ingenious在三種模型中實(shí)現(xiàn) - 代理,路由器網(wǎng)格和結(jié)構(gòu)。 Ingenious演示應(yīng)用程序?qū)⒂诮衲晖硇r(shí)候向公眾發(fā)布。
Ingenious是照片存儲(chǔ)和共享應(yīng)用程序的簡(jiǎn)化版本,la Flickr或Shutterfly。我們選擇照片共享應(yīng)用程序的原因有以下幾點(diǎn):
用戶和開發(fā)人員都很容易掌握它的功能。
需要管理多個(gè)數(shù)據(jù)維度。
在應(yīng)用程序中很容易融入漂亮的設(shè)計(jì)。
它提供了非對(duì)稱計(jì)算要求 - 高強(qiáng)度和低強(qiáng)度處理的混合 - 可以實(shí)現(xiàn)跨不同功能的故障轉(zhuǎn)移,擴(kuò)展和監(jiān)視功能的真實(shí)測(cè)試。
到此,相信大家對(duì)“Nginx的微服務(wù)架構(gòu)分析”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
本文題目:Nginx的微服務(wù)架構(gòu)分析
文章出自:http://chinadenli.net/article12/joejgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、建站公司、網(wǎng)站排名、域名注冊(cè)、電子商務(wù)、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)