国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

微服務(wù)架構(gòu)在分布式系統(tǒng)的設(shè)計和應(yīng)用

2021-11-21 01:24:53于曉虹
電子技術(shù)與軟件工程 2021年6期
關(guān)鍵詞:調(diào)用架構(gòu)數(shù)據(jù)庫

于曉虹

(中國聯(lián)合網(wǎng)絡(luò)通信有限公司濟(jì)南軟件研究院 山東省濟(jì)南市 250014)

微服務(wù)架構(gòu)的分布式應(yīng)用,不僅使得分布式系統(tǒng)獲得改進(jìn)賦能,其本身的高效、多點并發(fā)工作特點也得以發(fā)揮出來。由于原有的存儲體系互相獨立,微服務(wù)架構(gòu)的設(shè)計應(yīng)用中存在分布式的結(jié)構(gòu),通過將數(shù)據(jù)庫復(fù)制、分區(qū),它能保證分布式系統(tǒng)處理數(shù)據(jù)的一致性、可靠性。微服務(wù)架構(gòu)的設(shè)計思路是解耦數(shù)據(jù)處理中心使其成為一個個具有實際功能的離散服務(wù)中心,從而整體上降低了系統(tǒng)的負(fù)載和耦合度。開發(fā)分布式系統(tǒng)的過程中,微服務(wù)架構(gòu)的設(shè)計在代碼層面就需要開始構(gòu)建謀劃,通過將功能模塊分解為多個輕量型、可獨立的運行系統(tǒng),并有效整合,形成一個完整的分布式系統(tǒng)。這也是分布式系統(tǒng)開發(fā)過程中使用微服務(wù)架構(gòu)的因素之一。成功地解決了單體應(yīng)用的不足和局限,凸顯微服務(wù)架構(gòu)設(shè)計獨特的優(yōu)勢。

1 微服務(wù)架構(gòu)的設(shè)計原理

微服務(wù)架構(gòu)在分布式系統(tǒng)中沒有確切統(tǒng)一的使用規(guī)定,只是分布式系統(tǒng)有幾點構(gòu)建要求。分布式系統(tǒng)在物理上存在多個機(jī)器節(jié)點,分布于不同的數(shù)據(jù)域。這些節(jié)點作為整體統(tǒng)一對外提供服務(wù),通過信息網(wǎng)絡(luò)進(jìn)行連接,將自身的區(qū)域細(xì)節(jié)分享到客戶端。對于微服務(wù)架構(gòu)而言,不同物理節(jié)點上有不同的數(shù)據(jù)等待處理,保持?jǐn)?shù)據(jù)一致性存在較大的難度。從另一方面來說,其一致性問題由于不同微服務(wù)架構(gòu)的數(shù)據(jù)對同一數(shù)據(jù)模塊的描述保持一致,在這個過程中,許多的數(shù)據(jù)模塊無法確保在客戶端可見。因而在微服務(wù)架構(gòu)的設(shè)計構(gòu)建時,創(chuàng)建了許多個分庫并進(jìn)行及時耦合,在數(shù)據(jù)模塊中,通過API Gateway 并行進(jìn)行數(shù)據(jù)合并、運算。用時,在原有架構(gòu)加入搜索引擎、緩存技術(shù)、離散式數(shù)據(jù)列等。微服務(wù)架構(gòu)引入數(shù)據(jù)庫耦合技術(shù)實現(xiàn)了各個數(shù)據(jù)系統(tǒng)高度自治且合理有序。微服務(wù)架構(gòu)的輕量級協(xié)議亦使得分布式系統(tǒng)在處理數(shù)據(jù)時集成部署并進(jìn)行持續(xù)不中斷地傳輸信息。

2 微服務(wù)架構(gòu)技術(shù)的主要設(shè)計內(nèi)容和特點

2.1 微服務(wù)架構(gòu)技術(shù)主要設(shè)計內(nèi)容

微服務(wù)架構(gòu)的原有的單體根據(jù)其功能可以進(jìn)行拆分,以掌握其架構(gòu)的具體組成部分。微服務(wù)架構(gòu)按功能被拆分成一個個子部分后,每個子應(yīng)用被部署在不同的物理節(jié)點上,且只完成原有單體應(yīng)用的某一部分功能,具體操作屬于該子部分對應(yīng)的數(shù)據(jù)庫或數(shù)據(jù)表格。它們彼此之間通過網(wǎng)絡(luò)通信的連接通信,協(xié)調(diào)配合,最終作為整體統(tǒng)一輸出對外服務(wù)。系統(tǒng)操控的各個物理節(jié)點存儲著多個不同的多個數(shù)據(jù)庫或數(shù)據(jù)表格,它們一起參與構(gòu)建整個微服務(wù)架構(gòu)。微服務(wù)架構(gòu)技術(shù)需要調(diào)用不同物理節(jié)點的數(shù)據(jù)來完成分布式數(shù)據(jù)中心的數(shù)據(jù)處理工作。同時,微服務(wù)架構(gòu)的組件可以算作是分布在聯(lián)網(wǎng)的計算機(jī)上,它們彼此高度自治而又密切配合,共同完成通信協(xié)調(diào)和信息傳遞。

2.2 微服務(wù)架構(gòu)在分布式系統(tǒng)中的特點

微服務(wù)架構(gòu)在分布式系統(tǒng)中具有結(jié)構(gòu)簡化、負(fù)載均衡、存儲量大等特點。首先,它的高可用性和性能需要復(fù)制分區(qū)數(shù)據(jù)庫,并且各個離散的數(shù)據(jù)庫之中,微服務(wù)架構(gòu)需要能保證分布式系統(tǒng)的穩(wěn)定性。微服務(wù)架構(gòu)將分布式系統(tǒng)簡化后,就好像單機(jī)數(shù)據(jù)庫中為事務(wù)的隔離性設(shè)置了不同的級別,可以分為初級簡化和高級簡化兩大類,初級簡化又可以繼續(xù)細(xì)分為一般簡化,因果簡化,邏輯簡化,順序簡化等多種。其次,微服務(wù)架構(gòu)在分布式系統(tǒng)中必須保證即使接口被多次調(diào)用,仍然對系統(tǒng)的數(shù)據(jù)運算、算法的執(zhí)行產(chǎn)生決定性的影響,且與該接口之前被調(diào)用的結(jié)果一樣。包括當(dāng)下的信息搜索、通訊連接系統(tǒng),也都運用到這個設(shè)計結(jié)構(gòu)的原理。最后,微服務(wù)架構(gòu)下的分布式系統(tǒng)得到數(shù)據(jù)量的擴(kuò)展,資源共享是構(gòu)造分布式系統(tǒng)的一個服務(wù)目標(biāo)。分布式系統(tǒng)的數(shù)據(jù)負(fù)載量增加時其正常運行的能力、故障處理、組件配合等要得到穩(wěn)定架構(gòu)的固定,以防止各種BUG并發(fā)地出現(xiàn),影響系統(tǒng)穩(wěn)定性和系統(tǒng)服務(wù)質(zhì)量。它的主要特征就是以上所述的幾點。

3 微服務(wù)架構(gòu)在分布式系統(tǒng)的應(yīng)用現(xiàn)狀

3.1 微服務(wù)架構(gòu)在分布式系統(tǒng)中的應(yīng)用場景及問題

微服務(wù)架構(gòu)基于分布式系統(tǒng)的權(quán)限認(rèn)證,以解決系統(tǒng)現(xiàn)有技術(shù)中的問題。微服務(wù)架構(gòu)的廣泛應(yīng)用,離不開各種分布式服務(wù)的協(xié)調(diào)作業(yè)。在分布式環(huán)境下,架構(gòu)之間存在復(fù)雜的依賴關(guān)系,其整體的高耦合度是系統(tǒng)平臺的主要特征。分布式系統(tǒng)平臺模塊用于各個不同功能的模塊。結(jié)構(gòu)管理模塊用于給用戶提供組織機(jī)構(gòu)的編輯、注銷和添加的功能;數(shù)據(jù)管理模塊用于給用戶提供系統(tǒng)登錄、首頁界面模塊、個人信息模塊和功能菜單子模塊;服務(wù)模塊包括用戶訪問認(rèn)證服務(wù)、數(shù)據(jù)權(quán)限更新服務(wù)、用戶角色識別服務(wù)和令牌續(xù)期服務(wù);數(shù)據(jù)訪問模塊包括資源訪問攔截器、頁面資源訪問權(quán)限識別模塊、數(shù)據(jù)資源訪問權(quán)限識別模塊和查詢功能頁面子模塊。以上所述四種模塊微服務(wù)在分布式系統(tǒng)中的數(shù)據(jù)處理應(yīng)用場景,它們?yōu)橄到y(tǒng)用戶提供各自的運算功能,獨立執(zhí)行又統(tǒng)一協(xié)調(diào),將所有功能集成到分布式系統(tǒng)中。

3.2 微服務(wù)架構(gòu)在分布式系統(tǒng)中的數(shù)據(jù)存儲

傳統(tǒng)的數(shù)據(jù)存儲是將所有功能模塊都打包(jar、war)在一個Web 容器(JBoss、Tomcate)中執(zhí)行、部署,一個單體維護(hù)代碼,即使是處理一個小需求,也需要將所有機(jī)器上的應(yīng)用全部執(zhí)行一遍,效率極低且增加運維的復(fù)雜度。而微服務(wù)架構(gòu)在分布式系統(tǒng)中的存儲則不同,它合理的利用了離散式的數(shù)據(jù)中心,耦合各個數(shù)據(jù)庫已達(dá)到存儲量最大化。微服務(wù)架構(gòu)在分布式系統(tǒng)的存儲體系均互相獨立,且不是提供持久化的存儲服務(wù)。微服務(wù)架構(gòu)的存儲結(jié)構(gòu)使用Redis 來完成底層存儲。微服務(wù)架構(gòu)存儲一個數(shù)據(jù)庫需要調(diào)用多個節(jié)點進(jìn)行處理。微服務(wù)架構(gòu)中為確保數(shù)據(jù)存儲時一個數(shù)據(jù)單元的多個操作的原子具有一致性,采取分布式事務(wù)處理方式進(jìn)行數(shù)據(jù)存儲。具體方式是事務(wù)的參與者、存儲服務(wù)器、資源管理器分別處于分布式系統(tǒng)的不同物理節(jié)點之上。微服務(wù)通常是直接面對用戶的,每個微服務(wù)通常直接為用戶提供某個功能。類似的功能可能針對開戶有一個服務(wù),針對繳費是另外一個服務(wù)。在SOA 設(shè)計模式中這種情況通常會用到的模式返回一個大而全的結(jié)果兼顧到所有的客戶端的需求。

3.3 微服務(wù)架構(gòu)在分布式系統(tǒng)中數(shù)據(jù)分區(qū)

雖然分布式系統(tǒng)的節(jié)點間沒有共享的內(nèi)存,但是不應(yīng)認(rèn)為本地對象和遠(yuǎn)程對象是同一個對象,這就是微服務(wù)架構(gòu)導(dǎo)致的數(shù)據(jù)分區(qū)結(jié)果。微服務(wù)架構(gòu)分區(qū)以后,分布式系統(tǒng)可以共享同一個CPU 的信號量以及并發(fā)操作的控制。物理分區(qū)概念和處理模型對于分布式系統(tǒng)中的一些問題,可以做一些容錯和更新處理,譬如檢測以及順序處理可以綜合多個方案解決。分布式系統(tǒng)在微服務(wù)架構(gòu)下的實現(xiàn)方法和服務(wù)治理方式是設(shè)計并實現(xiàn)一個基于ZooKeeper 的分布式服務(wù)中間件,并執(zhí)行存儲命令。首先,采用普通Java 接口作為微服務(wù)載體,分布式服務(wù)包含兩個基本的元素:服務(wù)提供者、服務(wù)使用者。其次構(gòu)件與其相似的SOA 架構(gòu)。SOA 架構(gòu)相當(dāng)于單體服務(wù)的拆分,從而形成一個共享的基礎(chǔ)服務(wù)。這樣拆分可以對一些性能瓶頸的應(yīng)用進(jìn)行單獨的優(yōu)化和運維管理,也在一定程度上防止了垂直拆分的重復(fù)造輪子。從單體服務(wù)到SOA 的演進(jìn),需要結(jié)合水平拆分及垂直拆分。微服務(wù)架構(gòu)運用和SOA 統(tǒng)一的協(xié)議進(jìn)行服務(wù)間的通信,服務(wù)間運行在獨立的硬件平臺上,同時將分布式系統(tǒng)服務(wù)化。微服務(wù)架構(gòu)通過對SOA 架構(gòu)的引入,常用于分布式系統(tǒng)的應(yīng)用開發(fā)以及傳統(tǒng)Web 應(yīng)用。

3.4 微服務(wù)架構(gòu)在分布式系統(tǒng)中事務(wù)實踐

微服務(wù)架構(gòu)下,不同分布式系統(tǒng)間存在大量的基于http 或rpc消息的網(wǎng)絡(luò)通信,接口的重復(fù)調(diào)用以及消息的重復(fù)可能會經(jīng)常發(fā)生。在具體網(wǎng)絡(luò)事務(wù)實踐中,網(wǎng)絡(luò)波動導(dǎo)致服務(wù)提供方的接口被調(diào)用了兩次,當(dāng)接口被重復(fù)調(diào)用時,消息被系統(tǒng)組織重復(fù)傳送。這種實踐錯誤使系統(tǒng)接口的調(diào)用程序發(fā)生紊亂,從而導(dǎo)致系統(tǒng)bug 呈現(xiàn)出來,甚至觸發(fā)未關(guān)閉的重試機(jī)制。微服務(wù)架構(gòu)在實踐過程中表現(xiàn)出冪等性,即包含相同業(yè)務(wù)ID 參數(shù)的請求將被拒絕。后臺有通訊,前臺就需要依據(jù)數(shù)據(jù)管理通訊過程,一個服務(wù)下線/更新/升級,前臺就要重新部署,當(dāng)前臺是移動應(yīng)用的時候,通常業(yè)務(wù)變化的節(jié)奏更快。另外,通訊服務(wù)的接口調(diào)用也在微服務(wù)架構(gòu)的冪等性原則下發(fā)生,用戶登錄信息和權(quán)限管理是在系統(tǒng)內(nèi)部一個名稱為(OAuth)的地方統(tǒng)一維護(hù)管理。它利用冪等性原則提升遠(yuǎn)程接口服務(wù)的易用性,保障微服務(wù)架構(gòu)集群的服務(wù)治理和故障處理能力。

4 微服務(wù)架構(gòu)在分布式系統(tǒng)的應(yīng)用優(yōu)勢與前景

4.1 微服務(wù)架構(gòu)在分布式系統(tǒng)的應(yīng)用優(yōu)勢

微服務(wù)架構(gòu)綜合互聯(lián)共享平臺開發(fā)思維,利用互聯(lián)網(wǎng)IT 技術(shù)構(gòu)建平臺對用戶的訪問系統(tǒng)。接入設(shè)備和數(shù)據(jù)訪問通過認(rèn)證、授權(quán),使平臺能接待一定數(shù)量的客戶訪問且具備檢測和防御能力,微服務(wù)架構(gòu)的設(shè)計應(yīng)用優(yōu)勢也在于此。從另一方面來說分布式系統(tǒng)使用X86 集群、虛擬化管理和擴(kuò)展,具體應(yīng)用與平臺之中。同時,微服務(wù)架構(gòu)可以橫向擴(kuò)展,容量和并發(fā)不再受限,系統(tǒng)容錯和可維護(hù)性強。微服務(wù)架構(gòu)的另一方面應(yīng)用優(yōu)勢是提供安全可靠的服務(wù)容器,避免復(fù)雜易錯的邏輯算法,同時固化公共組件,避免組件耦合,降低應(yīng)用系統(tǒng)的開發(fā)工作量。

4.2 微服務(wù)架構(gòu)在分布式系統(tǒng)的應(yīng)用前景

微服務(wù)架構(gòu)在使用現(xiàn)有的分布式應(yīng)用框架下,需增加約束條件來適應(yīng)微服務(wù)架構(gòu)模式。除一致性、擴(kuò)展性兩個基本元素外,需要引入第三個元素:服務(wù)協(xié)調(diào)中心,這樣可用來避免在大規(guī)模集群時配置復(fù)雜的服務(wù)處理器。所以微服務(wù)架構(gòu)的發(fā)展趨勢可從以下幾個技術(shù)突破點探知。首先是提出微服務(wù)架構(gòu)下的接口就是服務(wù)的架構(gòu)內(nèi)涵,將能夠?qū)崿F(xiàn)簡單通信協(xié)議的遠(yuǎn)程接口調(diào)用方式作為架構(gòu)基礎(chǔ)。其次是將主流框架和容器的按工作量實際合理集成,堅持“接口即服務(wù)”原則,使用動態(tài)class 直接調(diào)用Java 方法的方式取代Java 反射式重復(fù)調(diào)用。在高并發(fā)下單純使用Java 反射式調(diào)用方式能使性能提升8%到15%,使得微服務(wù)架構(gòu)的分布式應(yīng)用擴(kuò)大到容器高度自治的層面。

5 結(jié)束語

不管是單機(jī)數(shù)據(jù)庫還是分布式存儲系統(tǒng)在微服務(wù)架構(gòu)下的應(yīng)用,對一致性、擴(kuò)展性和兼容協(xié)調(diào)性是一樣的。不過由于分布式系統(tǒng)數(shù)據(jù)的分布式存儲以及網(wǎng)絡(luò)通信狀況的復(fù)雜,使得分布式系統(tǒng)要保持?jǐn)?shù)據(jù)一致性相比單機(jī)應(yīng)用要考慮更多復(fù)雜的因素,實現(xiàn)也要困難的多。是割裂了事物共性和個性之間的聯(lián)系。通過分析行業(yè)現(xiàn)狀,提出了微服務(wù)架構(gòu)建設(shè)要求和關(guān)鍵技術(shù)方案。結(jié)合多個應(yīng)用平臺項目的落地實踐數(shù)據(jù),得出切實可行的目標(biāo)平臺應(yīng)用架構(gòu)。分布式系統(tǒng)平臺還需要加強網(wǎng)絡(luò)安全的3 個領(lǐng)域功能:權(quán)限、認(rèn)證、完整性。由于各類加解算法,以及保密的密鑰,系統(tǒng)的穩(wěn)定性與可靠性獲得較大的提升。同時,在通訊系統(tǒng)上應(yīng)用相關(guān)安全技術(shù),響應(yīng)了國家倡導(dǎo)的通信軟件安全、自主可控應(yīng)用方針。

猜你喜歡
調(diào)用架構(gòu)數(shù)據(jù)庫
基于FPGA的RNN硬件加速架構(gòu)
功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實踐
汽車工程(2021年12期)2021-03-08 02:34:30
核電項目物項調(diào)用管理的應(yīng)用研究
LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實現(xiàn)
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
苗栗市| 灵璧县| 栾城县| 丰原市| 同心县| 德州市| 山东省| 锡林郭勒盟| 淳化县| 潮州市| 于都县| 鸡泽县| 衡山县| 得荣县| 疏附县| 白城市| 资溪县| 泗水县| 忻城县| 五指山市| 思茅市| 纳雍县| 犍为县| 贵港市| 双流县| 宝丰县| 稷山县| 同仁县| 五华县| 高唐县| 金溪县| 馆陶县| 化州市| 海兴县| 韶山市| 宜君县| 霸州市| 长宁区| 河曲县| 东乡| 潞城市|