[發(fā)明專利]一種微服務(wù)的部署和運(yùn)行方法有效
| 申請(qǐng)?zhí)枺?/td> | 202010598091.9 | 申請(qǐng)日: | 2020-06-28 |
| 公開(公告)號(hào): | CN111488201B | 公開(公告)日: | 2020-11-03 |
| 發(fā)明(設(shè)計(jì))人: | 周波;朱維揚(yáng);孫彬慧;李善平;王健;酈哲聰;楊朝暉 | 申請(qǐng)(專利權(quán))人: | 浙江網(wǎng)新恒天軟件有限公司 |
| 主分類號(hào): | G06F9/455 | 分類號(hào): | G06F9/455 |
| 代理公司: | 杭州求是專利事務(wù)所有限公司 33200 | 代理人: | 劉靜 |
| 地址: | 310012 浙江省杭*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 微服 部署 運(yùn)行 方法 | ||
本發(fā)明公開一種微服務(wù)的部署和運(yùn)行方法,包括服務(wù)構(gòu)建階段、服務(wù)部署啟動(dòng)階段、服務(wù)停止卸載階段。用戶通過服務(wù)控制器發(fā)出服務(wù)啟動(dòng)指令,服務(wù)控制器獲取初始化參數(shù)和用戶配置的服務(wù)啟動(dòng)參數(shù)和服務(wù)運(yùn)行方式,將服務(wù)包放置在執(zhí)行器的指定路徑下,執(zhí)行器在運(yùn)行的情況下實(shí)現(xiàn)服務(wù)的啟動(dòng)運(yùn)行。服務(wù)支持組件開啟線程,定時(shí)檢查服務(wù)注冊(cè)信息,通知服務(wù)控制器服務(wù)啟動(dòng)情況。用戶通過服務(wù)控制器發(fā)出服務(wù)停止指令,服務(wù)控制器通知執(zhí)行器卸載指定服務(wù),執(zhí)行器執(zhí)行關(guān)閉和刪除指定服務(wù),服務(wù)支持組件實(shí)現(xiàn)取消服務(wù)注冊(cè)上報(bào)線程。本發(fā)明中每個(gè)微服務(wù)作為一個(gè)單獨(dú)的模塊存在,互不干擾,通過選擇單進(jìn)程部署,可以顯著減少服務(wù)進(jìn)程對(duì)硬件資源的消耗。
技術(shù)領(lǐng)域
本發(fā)明提供一種微服務(wù)的部署和運(yùn)行方法,主要涉及軟件系統(tǒng)的部署和運(yùn)行相關(guān)技術(shù),可以在硬件資源有限的情況下,實(shí)現(xiàn)基于Java語言和微服務(wù)架構(gòu)開發(fā)的軟件系統(tǒng)的部署和運(yùn)行。
背景技術(shù)
隨著微服務(wù)架構(gòu)的廣泛應(yīng)用,龐大而復(fù)雜的應(yīng)用程序可以根據(jù)可重用的維度,圍繞著具體的業(yè)務(wù),將一組相同的功能組織在一起給業(yè)務(wù)消費(fèi)者提供服務(wù)。服務(wù)之間相互協(xié)調(diào),相互配合,服務(wù)和服務(wù)之間采用輕量級(jí)的通信機(jī)制相互溝通。每一個(gè)服務(wù)都以獨(dú)立的進(jìn)程運(yùn)行,并且能夠被獨(dú)立的部署到生產(chǎn)環(huán)境中。
在業(yè)務(wù)發(fā)展初期,系統(tǒng)往往用戶量相對(duì)較少,功能相對(duì)簡(jiǎn)單。盡管如此,但是考慮到系統(tǒng)后期的可維護(hù)性和可擴(kuò)展性,許多系統(tǒng)仍然會(huì)考慮使用基于微服務(wù)的軟件架構(gòu)進(jìn)行設(shè)計(jì)和開發(fā),根據(jù)具體業(yè)務(wù)將一個(gè)簡(jiǎn)單的系統(tǒng)分割成為多個(gè)微小的、具有獨(dú)立性的功能單元模塊,實(shí)現(xiàn)各個(gè)功能單元之間的松耦合,形成多個(gè)微小的服務(wù)應(yīng)用。
常規(guī)的,每一個(gè)業(yè)務(wù)服務(wù)都會(huì)以獨(dú)立進(jìn)程、多副本地部署在服務(wù)器上。然而在這一階段,相應(yīng)的,硬件預(yù)算也同樣不夠充足,大量的服務(wù)副本以獨(dú)立進(jìn)程的方式運(yùn)行在服務(wù)器上,會(huì)導(dǎo)致高昂的內(nèi)存開銷,頻繁的進(jìn)程上下文切換,進(jìn)而影響服務(wù)效率和服務(wù)質(zhì)量。這極大地影響了基于微服務(wù)架構(gòu)開發(fā)的軟件系統(tǒng)在小規(guī)模硬件集群上的部署和運(yùn)行。
為了解決這一弊端,本發(fā)明提出了一種微服務(wù)的部署和運(yùn)行方法,可在不增加硬件資源開銷、不改變軟件系統(tǒng)架構(gòu)、不修改軟件源代碼的情況下,顯著減少微服務(wù)架構(gòu)軟件系統(tǒng)的硬件資源消耗,同時(shí)保留無縫切換至完全服務(wù)化部署和運(yùn)行的能力,為日后硬件資源擴(kuò)展、系統(tǒng)升級(jí)提供有力保證。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對(duì)現(xiàn)有技術(shù)的局限和不足,提供一種微服務(wù)的部署和運(yùn)行方法。
本發(fā)明的目的是通過以下技術(shù)方案來實(shí)現(xiàn):本發(fā)明中提及的微服務(wù)單進(jìn)程部署方法是實(shí)現(xiàn)多個(gè)服務(wù)副本部署在同一個(gè)Web服務(wù)器中的部署方法。執(zhí)行器是支持Servlet規(guī)范的Web應(yīng)用服務(wù)器,例如Tomcat、Jetty、Jboss等。服務(wù)控制器和服務(wù)支持組件是微服務(wù)架構(gòu)中針對(duì)服務(wù)治理不可缺少的模塊,其中服務(wù)控制器提供服務(wù)啟動(dòng)、服務(wù)停止功能,服務(wù)支持組件提供服務(wù)注冊(cè)發(fā)現(xiàn)功能。本發(fā)明提出的一種微服務(wù)的部署和運(yùn)行方法,包括以下步驟:
(1)服務(wù)構(gòu)建:所有的微服務(wù)在構(gòu)建階段需要引入微服務(wù)架構(gòu)中的服務(wù)支持組件,使用自定義插件執(zhí)行服務(wù)編譯打包。
(1.1)微服務(wù)的開發(fā)需符合Servlet規(guī)范。
(1.2)自定義插件是基于Maven打包插件實(shí)現(xiàn)的服務(wù)編譯打包插件,實(shí)現(xiàn)將Class文件、資源文件、第三方依賴等文件編譯打包成一個(gè)獨(dú)立的服務(wù)包的功能。
(2)服務(wù)部署啟動(dòng):首先用戶通過服務(wù)控制器發(fā)出服務(wù)啟動(dòng)指令,其次服務(wù)控制器獲取初始化參數(shù)和用戶配置的服務(wù)啟動(dòng)參數(shù)、服務(wù)運(yùn)行方式,再次將服務(wù)包放置在執(zhí)行器指定路徑下。執(zhí)行器在不重啟的情況下,不停的掃描執(zhí)行器指定路徑,如果發(fā)現(xiàn)新增的服務(wù)包,則執(zhí)行步驟(2.1)和步驟(2.2)實(shí)現(xiàn)服務(wù)的啟動(dòng)運(yùn)行和注冊(cè)過程。因?yàn)槲⒎?wù)開發(fā)符合Servlet規(guī)范,所以執(zhí)行器會(huì)在Servlet容器啟動(dòng)后執(zhí)行服務(wù)支持組件中的啟動(dòng)邏輯。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于浙江網(wǎng)新恒天軟件有限公司,未經(jīng)浙江網(wǎng)新恒天軟件有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010598091.9/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 基于人工智能服務(wù)云平臺(tái)的微服務(wù)管理方法和系統(tǒng)
- 域名管理方法、裝置及系統(tǒng)
- 微服務(wù)通信方法、裝置、電子設(shè)備及機(jī)器可讀存儲(chǔ)介質(zhì)
- 微服務(wù)應(yīng)用平臺(tái)及其資源保存方法和保存裝置
- 一種微服務(wù)關(guān)聯(lián)分析與預(yù)測(cè)方法
- 微服務(wù)配置信息管理系統(tǒng)、方法、服務(wù)器及存儲(chǔ)介質(zhì)
- 微服務(wù)容器之間服務(wù)啟動(dòng)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 微服務(wù)組合方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 微服務(wù)接口的發(fā)布方法、裝置、電子設(shè)備和存儲(chǔ)介質(zhì)
- 一種大規(guī)模微服務(wù)架構(gòu)及其管理方法
- 一種業(yè)務(wù)處理執(zhí)行語言流程部署方法
- 云計(jì)算平臺(tái)應(yīng)用快速部署的管理方法
- 虛擬化網(wǎng)絡(luò)功能部署方法及系統(tǒng)
- 版本部署的方法、裝置、設(shè)備和計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 測(cè)試環(huán)境部署方法、部署裝置及存儲(chǔ)介質(zhì)
- 程序部署任務(wù)執(zhí)行方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種基于Ansible的輕量級(jí)容器化分布式系統(tǒng)與部署方法
- 模型部署方法、模型部署裝置及終端設(shè)備
- 系統(tǒng)部署狀態(tài)的可視化方法、裝置、設(shè)備及可讀存儲(chǔ)介質(zhì)
- 一種任務(wù)部署方法、系統(tǒng)、電子設(shè)備及存儲(chǔ)介質(zhì)
- 運(yùn)行控制裝置及運(yùn)行控制方法
- 運(yùn)行支援裝置、運(yùn)行支援系統(tǒng)以及運(yùn)行支援程序
- 列車運(yùn)行處理方法、運(yùn)行處理裝置和運(yùn)行調(diào)度系統(tǒng)
- 運(yùn)行監(jiān)測(cè)系統(tǒng)及運(yùn)行監(jiān)測(cè)方法
- 運(yùn)行控制裝置及運(yùn)行控制方法
- 運(yùn)行曲線制作裝置、運(yùn)行輔助裝置以及運(yùn)行控制裝置
- 運(yùn)行支持裝置、車輛、運(yùn)行管理裝置和運(yùn)行支持方法
- 運(yùn)行計(jì)劃方法、運(yùn)行控制裝置和運(yùn)行計(jì)劃系統(tǒng)
- 運(yùn)行控制裝置、運(yùn)行管理系統(tǒng)、運(yùn)行控制方法以及車輛
- 自動(dòng)建模運(yùn)行系統(tǒng)及運(yùn)行方法
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





