[發(fā)明專利]一種基于廣播的分布式微服務(wù)注冊及調(diào)用方法有效
| 申請?zhí)枺?/td> | 202010082175.7 | 申請日: | 2020-02-07 |
| 公開(公告)號: | CN111615066B | 公開(公告)日: | 2021-07-16 |
| 發(fā)明(設(shè)計(jì))人: | 侯瑞春;周志明;陶冶;石碩;于樹松;宮會麗;丁香乾;孟宇 | 申請(專利權(quán))人: | 中國海洋大學(xué) |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50 |
| 代理公司: | 青島聯(lián)智專利商標(biāo)事務(wù)所有限公司 37101 | 代理人: | 邵新華 |
| 地址: | 266000 山*** | 國省代碼: | 山東;37 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 廣播 分布 式微 服務(wù) 注冊 調(diào)用 方法 | ||
本發(fā)明公開了一種基于廣播的分布式微服務(wù)注冊及調(diào)用方法,包括:在每一個(gè)部署有微服務(wù)的主機(jī)上分別部署注冊中心;在某一個(gè)主機(jī)上有新的微服務(wù)注冊時(shí),該主機(jī)向網(wǎng)絡(luò)發(fā)送注冊廣播,通知網(wǎng)絡(luò)中的其他主機(jī)更新其注冊中心中的微服務(wù)列表;在調(diào)用者調(diào)用微服務(wù)時(shí),調(diào)用者向網(wǎng)絡(luò)發(fā)起查詢廣播;部署有同名微服務(wù)的主機(jī)向網(wǎng)絡(luò)發(fā)起應(yīng)答,并提供主機(jī)當(dāng)前的負(fù)載情況以及其部署的微服務(wù)信息;調(diào)用者在接收到應(yīng)答后,通過負(fù)載均衡器根據(jù)不同主機(jī)當(dāng)前的負(fù)載情況選擇合適的主機(jī),并向選中的主機(jī)傳遞請求參數(shù),調(diào)用微服務(wù)。本發(fā)明采用分布式、去中心化的微服務(wù)注冊機(jī)制,使得一個(gè)注冊節(jié)點(diǎn)故障下線后不會影響到其他微服務(wù)的注冊及調(diào)用,從而提高了微服務(wù)的可用性。
技術(shù)領(lǐng)域
本發(fā)明屬于信息處理技術(shù)領(lǐng)域,具體地說,是涉及一種微服務(wù)的注冊和調(diào)用方法。
背景技術(shù)
微服務(wù)架構(gòu)是大型分布式系統(tǒng)的主要架構(gòu),微服務(wù)架構(gòu)的形式是通過將功能分解到各個(gè)離散的微服務(wù)中,以實(shí)現(xiàn)對大型單體應(yīng)用的解耦,其好處在于可以把一個(gè)大型單體應(yīng)用和服務(wù)拆分為數(shù)個(gè)甚至數(shù)十個(gè)微小的應(yīng)用組件(微服務(wù)),在應(yīng)用開發(fā)和維護(hù)時(shí),可以分別開發(fā)應(yīng)用組件,加速開發(fā)進(jìn)程。
在微服務(wù)架構(gòu)下,需要注冊中心來提供微服務(wù)的發(fā)現(xiàn)功能,即,告訴調(diào)用者當(dāng)前有哪些微服務(wù)可供調(diào)用。目前,微服務(wù)架構(gòu)下的注冊中心主要采用中心化節(jié)點(diǎn)的注冊機(jī)制,即,所有的微服務(wù)均在一個(gè)注冊中心注冊。
圖1示出了當(dāng)前微服務(wù)的注冊、發(fā)現(xiàn)及調(diào)用過程:
(1)微服務(wù)提供者在啟動(dòng)時(shí),向注冊中心注冊自己提供的微服務(wù),形成一個(gè)微服務(wù)實(shí)例;
(2)微服務(wù)調(diào)用者在啟動(dòng)時(shí),向注冊中心訂閱自己所需的微服務(wù);
(3)注冊中心返回一個(gè)微服務(wù)實(shí)例的地址給調(diào)用者;
(4)微服務(wù)調(diào)用者根據(jù)注冊中心提供的地址調(diào)用其所需的微服務(wù)實(shí)例。
在微服務(wù)的注冊和調(diào)用過程中,注冊中心作為服務(wù)器端Server,提供注冊服務(wù)和發(fā)現(xiàn)功能。各個(gè)微服務(wù)實(shí)例啟動(dòng)后,會在Server中進(jìn)行注冊,注冊信息包括主機(jī)名稱與端口號、服務(wù)版本號、通訊協(xié)議等。這樣Server中的微服務(wù)注冊表中將會存儲所有可用微服務(wù)實(shí)例的信息。
微服務(wù)調(diào)用者和微服務(wù)提供者都是客戶端Client。其中,微服務(wù)提供者主要處理微服務(wù)的注冊,客戶端服務(wù)通過注冊和參數(shù)配置的方式,嵌入在客戶端應(yīng)用程序的代碼中。在應(yīng)用程序啟動(dòng)時(shí),客戶端向微服務(wù)注冊中心注冊自身提供的微服務(wù),并周期性地發(fā)送心跳來更新其微服務(wù)租約。同時(shí),客戶端Client也能從服務(wù)器端Server (注冊中心)查詢當(dāng)前注冊的微服務(wù)信息(以微服務(wù)清單的形式呈現(xiàn)),并將所述微服務(wù)信息緩存到本地并周期性地刷新微服務(wù)的狀態(tài)。
微服務(wù)調(diào)用者在獲取微服務(wù)清單后,根據(jù)微服務(wù)名稱可以獲取具體的微服務(wù)實(shí)例以及該實(shí)例的屬性信息。因?yàn)橛羞@些微服務(wù)實(shí)例的詳細(xì)信息,所以客戶端Client可以根據(jù)自己的需要決定具體調(diào)用哪個(gè)實(shí)例。
現(xiàn)有的這種采用中心化節(jié)點(diǎn)的微服務(wù)注冊與調(diào)用機(jī)制,其面臨的主要問題是:一旦作為中心節(jié)點(diǎn)的注冊中心出現(xiàn)故障,將導(dǎo)致與中心節(jié)點(diǎn)相連的所有微服務(wù)不可用,因此,整個(gè)系統(tǒng)的穩(wěn)定性和可靠性都不高。
為了解決上述問題,目前業(yè)內(nèi)提出的主要解決方案有:
其一,使用自復(fù)制多個(gè)注冊中心的機(jī)制。即,在微服務(wù)架構(gòu)中,部署多個(gè)注冊中心,多個(gè)注冊中心之間通過復(fù)制的方式完成微服務(wù)注冊列表的同步,實(shí)現(xiàn)微服務(wù)的高可用性。但是,這種多個(gè)注冊中心自復(fù)制的設(shè)計(jì),會造成注冊中心的數(shù)據(jù)容錯(cuò)性低、一致性無法保證等問題。
其二,使用主節(jié)點(diǎn)選舉的多個(gè)注冊中心的機(jī)制。即,在微服務(wù)架構(gòu)中,部署多個(gè)注冊中心,當(dāng)作為主節(jié)點(diǎn)的注冊中心宕機(jī)時(shí),重新選舉其他注冊中心作為主節(jié)點(diǎn)來響應(yīng)用戶操作,繼而實(shí)現(xiàn)微服務(wù)的高可用性。但是,這種主節(jié)點(diǎn)選舉機(jī)制,在主節(jié)點(diǎn)宕機(jī)重新選舉的期間,會造成微服務(wù)短時(shí)不可用,且系統(tǒng)的容錯(cuò)性不高。
發(fā)明內(nèi)容
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國海洋大學(xué),未經(jīng)中國海洋大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010082175.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





