?

微服務架構的測量設備溯源系統設計

2021-06-11 10:33鄭曉健鄭曉蘭
計算機時代 2021年5期

鄭曉健 鄭曉蘭

摘? 要: 介紹一種微服務架構的測量設備溯源管理系統的設計。通過微服務架構與傳統單體架構的對比,分析了微服務架構的優勢和設計原則,將其運用于企業測量設備溯源系統中,實現了系統的設備管理、設備檢定管理、設備溯源審批管理和系統信息維護等功能。由于采用Spring Could微服務架構,使得系統具有良好的可擴展性,方便后期維護。

關鍵詞: 軟件體系結構; 微服務架構; 分布式應用; 測量設備溯源; Spring Could

中圖分類號:TP393? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2021)05-06-04

Design of measurement equipment traceability system of microservice architecture

Zheng Xiaojian1, Zheng Xiaolan2

(1. School of Electrical and Information Engineering, Oxbridge College, Kunming University of Science and Technology, Kunming, Yunnan 650106, China; 2. Yunnan Institute of Metrology and Testing Technology)

Abstract: This paper introduces the design of a measurement equipment traceability management system of microservice architecture. By comparing the microservice architecture with the traditional monolith architecture, the advantages and design principles of the microservice architecture are analyzed. The microservice architecture is applied to the enterprise measurement equipment traceability system, and the functions of equipment management, equipment verification management, equipment traceability approval management and system information maintenance are realized. Due to the use of Spring Could microservice architecture, the system has a good scalability and is convenient for later maintenance.

Key words: software architecture; microservice architecture; distributed application; traceability of measurement equipment; Spring Could

0 引言

近年來隨著供給側結構性改革的推進,企業對產品質量的把控能力的要求愈加重視,對生產環節中質量監控的重要設備,測量儀器的監管更加嚴格。在這方面國家計量法有相應規定,所有企事業單位的測量儀器要定期檢定,要求達到國家量值規定的統一標準,并出具檢定證書后方可進入下一使用周期,同時要求測量儀器在整個使用期內的檢定結果都能追根溯源。在此情況下,各企業檢定部門對測量儀器溯源管理系統有著廣泛的需求。

目前一些大中型企業正推行一體化管理戰略,對于信息系統在其功能擴展、快速迭代、快速部署、持續可用性等方面的要求越來越高。然而,企業已有的信息系統多數是采用傳統的單體式架構開發,要實現期望的目標還存在較大距離。本文采用基于Spring Cloud微服務架構[1-3]對測量儀器溯源管理系統進行架構設計可以有效實現既定的目標。

1 微服務架構

傳統Java Web架構以單體式架構為主,用于開發小型系統比較適合[3-5]。將系統的所有功能打包為WAR包或jar包里,部署到Web容器中。但隨著系統功能的擴展、業務需求的擴展和迭代,單體應用會變得越來越復雜[6-7],并造成項目的維護和部署的工作量增加[7-8]。因為代碼的藕合能使修改相關業務的代碼時需要修改整個項目,而且由于結構的問題,魯棒性和穩定性也會很差[8]。

微服務架構設計將企業應用拆分,解耦成為功能獨立的一系列服務實體,而且每個服務可以單獨開發和迭代,再以獨立的進程形式部署,各微服務間通過統一的、輕量化的通信協議進行交流,實現協同工作。從而使采用微服務架構設計的軟件產品交付更加方便,實現有效地拆分應用,快速開發和部署系統的目的[8-10]。微服務架構和單體式架構對比[11-13]如圖1所示。微服務架構具有的優勢已經在Amazon、Netflix、百度外賣、上交所、58到家、騰訊等國內外企業的分布式應用系統的開發[14-16]實踐中得到體現。

1.1 分布式應用

應用系統被拆分成多個微服務的子系統,每個微服務實現一項業務,構成具有完整功能的分布式應用系統。每個微服務專注于單一功能,通過良好的接口清晰地表述服務邊界。比如測量儀器溯源管理系統中的測量設備管理服務,只需要處理測量設備的業務相關的邏輯。由于各個微服務功能單一,所以開發復雜度也降低,因此一些小型開發團隊可以采用漸近式的開發方法,逐個的開發微服務,并保持較高的開發效率。比起SOA,微服務的粒度更小,甚至每個操作都可以成為一個微服務,讓功能邊界更加明確。

1.2 高度內聚自治

每個微服務從開發、測試、部署、運維、擴展升級等都可以獨立完成[17-18],包括數據庫也可以在每個微服務中獨立設置。在開發上,每個微服務的業務邏輯必須密切相關、高度內聚,使模塊的代碼量和邏輯復雜度得到控制。每個微服務有一套完整的開發流程,使成為獨立的項目,便于進行項目管理??梢赃M行異構開發,各個服務可以選擇不同技術平臺,使得每個微服務的實現與其他服務無關,服務之間松散耦合,每一個服務可以采用最高效的、最適合的開發語言、工具和技術,實施高效地開發。

微服務在物理實體、服務、數據存儲上獨立部署,還要考慮各個微服務的負載平衡,實現分布式應用的目標,使之能在短時間內部署為具有高可拓展性和可靠性的應用。

在運行和維護方面,獨立部署使得可以對各微服務進行獨立維護,維護范圍和復雜度都可以降低。另外,微服務間的通信協議統一,盡量采用異步模式進行通信。

1.3 可伸縮

由于各服務之間是高度解耦的,所以可根據實際情況,按需分配資源,進行功能擴展和裁剪,并且不會影響其他服務,提高了系統的伸縮能力。

1.4 高容錯性

由于各個微服務為相互獨立的進程,某個微服務存在的故障不會影響到其他微服務,不易產生單體架構系統常有的一個功能失敗整個系統大面積癱瘓的局面。在微服務平臺中如有故障的微服務停用,其他微服務照常能夠運行。系統維護時只需要集中精力對出問題的微服務進行修復,縮短了恢復的時間,使問題的蔓延限制在最小范圍。

2 分布式微服務架構設計

2.1 功能模塊設計

系統功能模塊設計的主要任務是拆分微服務,也是微服務架構設計的重點。拆分時應圍繞業務功能進行,原則是保持每個功能的高內聚和低耦合[6-8]。各個微服務的粒度以功能相關性為基礎,盡量減少各微服務間的依賴性,保證各個微服務的業務邏輯的獨立性和完整性??梢圆捎梅治鰳I務依賴關系、設計公共業務微服務、系統業務微服務化的步驟拆分系統[8]。設計時,接口要明確,由于微服務相互會產生調用,為了避免由于微服務接口的變化而造成必須修改其他微服務的局面,應該考慮各種變化的可能性,使接口更加通用和靈活。

按照計量規程將測量設備的生命周期分為五個階段:新購、待審、溯源監控、停用和退出,并且構成不間斷的檢定周期直至設備報廢,而且各個階段的任務獨立。根據這些業務特點,按照企業用戶提出的功能需求,系統的主要功能要包括測量設備建檔、測量設備檢定、測量設備溯源審批的全過程。本文根據用戶提出的功能需求,將系統的主要業務拆分為:設備信息管理、設備檢定管理、設備溯源審批管理、系統信息服務等。

⑴ 設備信息微服務

設備信息微服務負責將新購置的設備納入溯源管理,涉及設備的信息維護全過程。主要完成設備信息的建立、查詢、修改等管理,其中建立設備信息完成設備基本信息檔案的建立。設備基本信息包括設備號、設備名稱、出廠編號、購入日期、設備狀態等。查詢設備信息要求提供對系統中所有設備的基本信息的一般查詢和組合模式查詢。設備信息修改完成設備檔案信息的維護。用戶要求可以在多個檢定點進行設備溯源管理,并保持數據一致性。

⑵ 設備檢定微服務

設備檢定微服務是設備整個生命周期中溯源管理工作的主要部分,包括:檢定設備、審批新設備、查看到期設備、查詢檢定歷史四項功能。檢定設備時,通過簡捷的查詢方法快速查到要檢定的設備,顯示該設備的所有基本信息,然后查看設備的所有歷史檢定記錄或停用記錄,根據檢定結果給出設備檢定結論,建立設備檢定記錄。新設備審批時,同樣先要查詢到待審批的設備,然后根據檢定結果和相關數據給出檢定結論,建立審批設備記錄。查看到期設備時,可以查看到溯源提前期內所有設備,查看設備待檢情況和具體統計數據。查詢檢定歷史時,可以輸入不同條件查詢設備檢定記錄,查看該設備的檢定歷史信息。

⑶ 設備溯源審批微服務

設備溯源審批微服務包括:溯源審批、設備監控、設備停用、設備退出、溯源記錄等部分。溯源審批時,先查看設備基本信息和檢定數據,給出審批結論,然后登記審批和溯源信息。設備監控管理目的是建立設備監控記錄,記錄設備監控信息。設備停用管理和設備退出要求可以查看系統中設備停用和退出記錄,進行狀態監控。

⑷ 系統用戶管理微服務

系統信息維護微服務的主要功能包括:系統基礎信息管理、用戶訪問權限管理等。

2.2 系統架構設計

本系統使用Spring Cloud框架實現。Spring Cloud的核心功能包括分布式/版本化配置、服務注冊和發現、路由、服務于服務間的調用、負載均衡、斷路器、分布式消息傳遞等。Spring Cloud是一系列框架的集合。它具有高質量、穩定性、可持續性、便捷性等特性,使用Spring Cloud架構可以節省系統基礎模塊的開發,并且可以很容易的進行微服務系統的實施。

本系統的前端通過Vue框架實現界面,后臺由各個微服務組成的微服務群集構成,每個微服務之間相互獨立?;谶@樣的結構實現了系統的部署,如圖2所示。

服務發現框架Eureka負責實現SpringCloud的服務發現和管理功能,由服務注冊中心、服務注冊及發現,服務注冊的接口三部分組成,網關和各個服務模塊都需要注冊到服務注冊發現中心,實現服務注冊和服務發現功能。系統由Eureka來獲取注冊的微服務,實現請求轉發功能。Zuul是服務網關,所有到達Zuul請求或信息通過前、中、后三級過濾器實現靈活的雙向路由,完成前端請求與后端服務的通信。網關通過路由配置來建立消息和微服務的對應,所有消息集中到網關,經由網關將消息轉發到對應的微服務。負載均衡由Ribbon組件實現。Hystrix是監控和熔斷器,通過服務接口設置的標簽,實現對接口的監控。Hystrix Dashboard是監控組件,獲取用戶控制需求,監控各個服務運行情況。Feign是Ribbon和Hystrix的服務調用組件。系統的運行流程[18]是:

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合