999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于微服務的多租戶城鎮人口住宅管理系統的設計與實現

2019-10-08 09:03:43陳榆中馬鎮宋暉
軟件 2019年2期

陳榆中 馬鎮 宋暉

摘? 要: 隨著應用復雜度和租戶數量的不斷增加,對應用功能的橫向擴展及解耦合等需求提出了更高的挑戰。本文基于領域驅動設計原則構建了服務分割模型以輔助分布式應用的設計,結合微服務架構利用Spring Cloud實現了城鎮人口住宅管理的SaaS系統。本文還采用容器編排技術實現了服務的多實例化和動態擴縮容,為系統提供了服務實例的智能維護功能。

關鍵詞: 微服務;SaaS;服務分割模型;多租戶;城鎮人口住宅

【Abstract】: As the complexity of applications and the number of tenants increase, the requirements for horizontal expansion and decoupling of application functions pose higher challenges. Based on the domain-driven design principle, this paper constructs a service segmentation model to assist the design of distributed applications. Combined with the micro-service architecture, Spring Cloud is used to implement the SaaS system for urban population housing management. This paper adopts container orchestration technology to realize multi-instantiation and dynamic expansion and contraction of services, and provides intelligent maintenance functions for service instances.

【Key words】: Micro-service; SaaS; Service segmentation model; Multi-tenant; Urban population housing

0? 引言

隨著云計算平臺的日益普及,從政府到私人企業都感受到了它所帶來的便利和實惠。云計算平臺支持高性能、高可靠、高可用和可伸縮的SaaS(軟件即服務)應用,而微服務架構作為軟件開發架構的演進方向之一,已成為一種SaaS應用在云平臺的可行落地方案。

傳統的MVC架構在后續的功能更改、系統發布和版本維護上成本昂貴,微服務架構與其它軟件架構相比,擁有更好的功能擴展能力和系統穩定性。SOA架構關注的是業務流程與企業目標的實現,而微服務架構關注的是企業級應用如何在云平臺上持續集成與部署。

從前的城鎮人口住宅管理系統是面向單獨城鎮開發的MVC系統,現在需要為多個城鎮提供獨立的服務,因此需要將為單一用戶設計的系統轉變為一個SaaS(軟件即服務)應用,以便充分利用云平臺的資源來進行租戶和功能擴展。為了解耦合應用功能,本文提出了服務分割模型來輔助設計應用,結合微服務架構和容器技術來實現系統的開發和發布。

本文后續章節組織如下,第2章節詳細介紹了本文所提出的服務分割模型;第3章節描述了該模型在城鎮人口住宅管理系統的應用;第4章節給出了微服務架構下的服務實例的智能維護在系統中的實現方式;第5章節展示了微服務實現結果;第6章節對工作進行了總結。

1? 相關工作

文獻[1]中表示將傳統架構的應用程序部署到云中時,隨著時間的推移通常很難保持良好的模塊化結構,因此導致了微服務架構風格在云平臺的應用。微服務架構允許以不同的語言編寫不同的服務,在相應的云平臺環境中發布部署。

微服務架構是由Martin Fowler在前幾年給出的定義[1],它的主要特征是服務組件化、通信輕量級、功能解耦合和去中心化等。微服務架構的核心思想是單個應用作為一組小的服務,它的接口是一組服務,服務之間以輕量級的協議進行通信;拆分出來的部件或者服務可以采用不同的技術棧,使用不同的數據存儲技術;最后這些服務不能直接通信(即不存在依賴),需要通過一個服務注冊中心通訊,應用與服務注冊中心是解耦合的。

文獻[2]分析和對比了微服務架構與其他軟件架構之間的異同。微服務架構因其高可用性、高擴展性和易于維護的特點,在保持了SaaS(軟件即服務)應用功能完整性的同時,又解決了傳統軟件架構的復雜性,因此逐漸成為熱門的軟件架構風格之一。

微服務架構的特點滿足了開發分布式、易維護、易擴展的SaaS(軟件即服務)應用的條件。文獻[3]將微服務應用于數據服務框架中;文獻[4]重點討論了在校車安全管理中微服務的應用;文獻[5]將分布式測距系統以微服務的形式展現;文獻[6]將安全服務也以微服務的形式提供;文獻[7]介紹了農業信息化管理平臺的SaaS方案設計。

2? 服務分割模型

為了將傳統軟件應用轉變成分布式應用或者直接設計一個具有較高擴展性的系統,其思路不是設計一個巨大的單體式應用,而是將應用分割為小的、互相調用的組件,然后單個組件完成某個特定的功能需求,最后由服務管理與注冊中心來發現和調度它們。本文根據微服務在系統中所擔當的功能角色進行了四類分類:

(1)復用性微服務指可以被多個不相關應用所調用的微服務,其提供了API接口供其他微服務使用。例:大數據計算微服務。

(2)輔助性微服務指提供了非業務邏輯功能的微服務。例:網關微服務、前端顯示微服務等。

(3)業務邏輯微服務指提供了業務邏輯的微服務,面向業務進行編碼。

(4)管理監控微服務指對整個SaaS系統實現租戶管理、權限分配、應用分配和監控等功能的微服務。

基于領域驅動設計原則[8]分析傳統應用軟件的各項功能,把應用分割為復用性微服務、輔助性微服務和業務邏輯微服務(如圖1所示),然后將其構建為分布式應用。

從上圖1中看出,復用性微服務可以被多個不相關應用所使用,如圖1中的傳統軟件應用B、C,從而提高了代碼維護性和復用性;輔助性微服務可以是前端展示微服務,從而解耦合了前后端;業務邏輯微服務根據業務的使用頻率、業務的相關性和業務的性質進行劃分,從而易于系統的開發和維護;管理監控微服務對整個系統進行租戶管理、應用分配等操作。通過服務分割模型可以設計出一個具有較高擴展性的分布式應用。

3? 城鎮人口住宅管理服務架構設計

基于微服務架構和服務分割模型,對城鎮人口住宅管理系統的功能進行服務架構設計,如圖2所示。根據系統的功能需求,四類微服務分別包括以下模塊。

復用性微服務包含了Spark服務和GIS服務。它們分別提供了大數據統計與分析、百度地圖繪制等功能,這些功能均提供了Restful API接口,在未來新增的功能模塊需要這些底層支持時,可以復用這些服務,從而提高系統的可維護性。

輔助性微服務包含了城鎮人口住宅信息Edge Service和網關服務,它們分別提供了城鎮人口住宅應用的前端展示和域名解析等功能。

業務邏輯微服務包含了民宅管理服務、小區管理服務、民宅信息查詢服務等。這些服務都是面向業務進行編碼的,首先對使用頻率較高的業務需求進行分割;其次對不同性質的業務進行拆分,例:小區和民宅;最后對具有較強關聯性的業務進行合并分割,例:房屋信息和戶主信息查詢。

管理監控微服務包含了多租戶信息管理服務。它提供了租戶管理、權限分配和應用管理等功能;它通過Redis緩存實現了應用之間的單點登錄。

從上圖2中看出,當進行功能橫向擴展時,只需要編寫新的服務實例而無需修改不相關服務,然后相關服務通過服務注冊與發現中心調度新增服務,較好的解耦合了功能之間的依賴關系。比如新增一個其它應用的服務,只要讓多租戶信息管理服務調度它的接口即可。由于每個服務只完成特定的功能需求,可以輕易定位功能的實現位置,從而提高系統的可維護性。比如當民宅租賃合同無法下載或者上傳時,可以去民宅租賃合同管理服務中定位錯誤位置,從而修復系統錯誤。

4? 系統智能維護

SaaS(軟件即服務)應用相較于傳統應用的一大優勢是服務或組件的獨立部署能力。系統智能維護是指在某些服務崩潰時,系統自我恢復相應服務實例;當服務的流量增加或減少時,系統對相應服務實例進行動態擴縮容來提高系統的負載能力。基于服務分割模型切分多租戶城鎮人口住宅管理系統,對這些服務進行多實例化部署和動態擴縮容部署,從而實現系統的智能維護。系統部署如下圖3所示。

由于服務之間不能直接通訊,因此需要一個服務注冊與發現中心作為中間件,該中心被部署到Kubernetes[9]集群中,利用Kubernetes集群的自我修復功能,實現在容器死亡時重新啟動失敗的容器或者替換新的容器,確保了服務注冊中心的穩定性。

復用性微服務、輔助性微服務、業務邏輯微服務和管理監控微服務,都被打包成Docker[10]鏡像,利用Kubernetes集群的多實例化部署和動態擴縮容部署,實現系統在高低流量下的服務實例的智能維護功能,從而提高了系統的健壯性和穩定性。

5? 應用的微服務實現

5.1? 服務分割結果

通過服務分割模型把多租戶城鎮人口住宅管理系統拆分成多個原子服務,這些服務會被注冊到服務注冊與發現中心Eureka中。當服務實例運行之后,服務注冊中心將顯示服務的名稱、狀態、實例個數、可用個數、IP地址和端口等服務信息。

在完成服務的分割與開發之后,將各個服務打包成Docker鏡像,發布到私人的鏡像倉庫中,如圖5所示。通過鏡像倉庫中的鏡像文件,Kubernetes集群會拉取其中的文件,生成pod組件,然后通過Service的虛擬IP實現服務實例的動態擴縮容和自我恢復。

5.2? 智能維護結果

在Kubernetes集群中設置Service的資源(例:內存、CPU使用率等)使用率闕值為50%,通過Shell腳本來增加訪問流量之后,資源使用率增加,從而讓實例的個數由1增加到4,分擔了服務實例的負載壓力,實現了系統的智能維護,從而提高了系統的健壯性和穩定性。

6? 總結

本文構建了用來輔助設計分布式應用的服務分割模型,利用該模型可以設計出具有較高擴展性的應用系統。其次本文基于該模型和微服務架構實現了多租戶城鎮人口住宅管理系統,解耦合了功能應用,提高了該系統的可維護性和擴展性。最后采用容器技術和容器編排框架完成了系統服務實例的智能維護功能,讓系統在高低流量下具有較好的穩定性。

參考文獻

Lewis J, Fowler M. Microservices[OL]. (2018-12-20) [2019- 01-16]. http://martinfowler.com/articles/microser -vices.html

Catalin Strimbei,Ocatavian Dospinescu, Roxana-Marina Strainu, et al. Software architectures-present and visions[J]. Informatica Economica, 2015, 19(4): 13-26.

歐陽榮彬, 王倩宜, 龍新征. 基于微服務的數據服務框架設計[J]. 華中科技大學學報(自然科學版), 2016, 44(S1): 126-130.

周丹, 雷曉玲, 章民融. 基于微服務架構的校車安全管理系統設計與應用[J]. 計算機應用與軟件, 2018, 35(8).

向彬彬, 馬明星, 童茂林, 等. 基于微服務架構的分布式測距系統的研究與設計[J]. 計算機應用與軟件, 2018, 35(5).

Sun Y, Nanda S, Jaeger T. Security-as-a-Service for Microservices-Based Cloud Applications[C]//IEEE International Conference on Cloud Computing Technology & Science. IEEE Computer Society, 2015.

林少普, 倪禮豪. 溫州農業科技園信息化管理平臺SaaS 方案設計[J]. 軟件, 2015, 36(8): 67-70.

Evans E. Domain-Driven Design: Tackling Complexity in the Heart of Software[J]. Domain-driven design: tackling complexity in the heart of software, 2002.

Kubernetes. Open source communication[OL]. (2018-12-20) [2019-01-16]. https://kubernetes.io/docs/concepts/

Docker. Open source communication[OL]. (2018-12-20) [2019-01-16]. https://docs.docker.com/engine/reference/builder/ #format.

主站蜘蛛池模板: 久久国产精品麻豆系列| 欧美亚洲国产精品久久蜜芽| 亚洲无码高清免费视频亚洲| 亚洲精品国产综合99| 尤物精品视频一区二区三区| 国产精品开放后亚洲| 一级毛片高清| 国产精品美女网站| 蝌蚪国产精品视频第一页| 亚洲另类第一页| 亚洲aaa视频| 性色一区| 国产正在播放| a级毛片免费在线观看| 国产成人精彩在线视频50| 国产真实乱子伦视频播放| 亚洲AⅤ综合在线欧美一区| 国产真实乱子伦精品视手机观看 | 国产丝袜啪啪| 毛片大全免费观看| 激情在线网| 亚洲综合色婷婷| 丁香婷婷久久| 无码视频国产精品一区二区| 亚洲国产精品无码AV| 亚洲精品无码日韩国产不卡| 婷婷综合缴情亚洲五月伊| 高清不卡一区二区三区香蕉| 亚洲第一福利视频导航| 狠狠亚洲婷婷综合色香| 国产亚洲精| 国产久操视频| 蜜芽一区二区国产精品| 奇米影视狠狠精品7777| 99精品国产自在现线观看| 国产又粗又猛又爽| 九九免费观看全部免费视频| yy6080理论大片一级久久| 国产91高清视频| 九色视频线上播放| 欧美日韩成人| 全免费a级毛片免费看不卡| 在线观看国产小视频| 国产精品yjizz视频网一二区| 亚洲AV无码久久精品色欲| 亚洲最猛黑人xxxx黑人猛交| 天堂网亚洲系列亚洲系列| 热99re99首页精品亚洲五月天| 一区二区三区毛片无码| 欧美一区二区自偷自拍视频| 在线日本国产成人免费的| 伊人五月丁香综合AⅤ| 欧美日韩在线成人| 国产手机在线观看| 国内精品久久人妻无码大片高| 成人免费黄色小视频| 亚洲无码熟妇人妻AV在线| 2020极品精品国产| 激情五月婷婷综合网| 久久毛片网| 亚洲天堂精品视频| 亚洲AⅤ永久无码精品毛片| 丁香六月激情综合| 熟妇丰满人妻av无码区| 国产精品区网红主播在线观看| 亚洲中文在线看视频一区| 国产青青操| 欧美激情视频一区| 中文字幕亚洲电影| 国产va视频| 亚洲黄色激情网站| 欧美日韩精品在线播放| 亚洲伊人天堂| 毛片免费在线视频| 91在线播放国产| 国产免费网址| 九九精品在线观看| 天天视频在线91频| 欧美一级黄色影院| 亚洲第一极品精品无码| 国产成人做受免费视频| 国产激爽大片高清在线观看|