?

基于SpringCloud的微服務山羊孕測管理系統設計與實現

2023-03-24 03:43邵毅陳春彭華
電腦知識與技術 2023年4期
關鍵詞:大屏山羊養殖場

邵毅 陳春 彭華

關鍵詞:SpringCloud微服務;SpringBoot框架;山羊孕測

隨著社會對軟件系統的需求逐漸擴增,增加對事物多樣化以及提高便捷的管理方式,許多企業開放自身部分產品線獨立出來允許開發者的調用或維護工作之中,使得軟件開發效率的提升、軟件開發生態不斷完善。

對孕山羊管理方面,項目組在畢節威寧山羊養殖場(艾家坪、盧虹養殖場)調研,了解到養殖場山羊信息管理相對落后,對孕山羊的管理更是處于人工管理的粗放模式,這增加了山羊養殖員工作的社會勞動必要時間。在數量大的山羊群管理上,對山羊的懷孕信息的人工管理顯而易見不是完好解決方案。如今軟件開發生態的不斷完善,提高了各項業務功能的開發與整合,更多精細化程度的管理與流程化。鑒于以上情況,本文提出設計并實現一款基于SpringCloud的微服務山羊孕測管理系統,以保證對養殖場山羊群的孕山羊的數量和質量進行分析和管理,從而改變養殖場孕山羊信息的人工管理的粗放的狀態,技術上增加一體化DevOps自動化部署的方式,實現保證系統的穩健與可動態升級維護性。

1 山羊孕測管理信息化管理概況

項目組調研5家以上畢節威寧養殖場,了解它們目前只能靠人工方式對孕山羊的數量、種類、體溫、位置和事件記錄進行粗放管理,無法便捷地將以往至現在的數據進行查找與分析,更不用說實現孕羊信息的智能化的報警和輔助決策。通過文獻查閱,項目組發現畜牧業已開展了不少信息化管理模式的創新。項目組通過專家訪談等方式,針對試驗地養殖場孕山羊的實際情況,整理試驗地孕山羊管理的業務流程,以實現對孕羊關鍵數據統一收集和信息管理、智能報警為目的,根據孕山羊重要指標進行系統整體設計。本系統利用的技術知識領域有物聯網、信息管理、大屏數據展示等。最終改善養殖場孕山羊粗放的人工管理,實現孕山羊的智慧養殖和管理。

2 SpringCloud的微服務山羊孕測管理系統架構

設計并實現基于SpringCloud的微服務山羊孕測管理系統,該系統采用服務器與瀏覽器(Server/Browser) 模式開發方式[1],通過maven對第三方jar包版本引入進行管理,將后端業務模塊化后,開發出權限管理、山羊管理、大屏管理、文件管理、監控管理5個微服務功能模塊與一個前端UI,各個模塊之間通過Feign遠程調用,在前端UI訪問接口時候經過Spring?CloudGatway網關中心處理與Oauth2進行路由管理與授權認證。前端采用Vuejs技術[2]配合ArcoDesign(字節跳動出品)企業級設計系統進行編程實現調用后端接口,后端采用SpringBoot 編程實現接口的開發,因考慮高并發情況,將內置的Tomcat 移除替換為Un?dertow。系統數據庫使用開源MySQL8.0.12利用MyBatisPlus的無侵入、損耗小特性一定程度保護操作各個模塊數據的增刪改查的安全性特點,通過MyBatisPlus對數據庫數據的讀寫操作[3]。使用騰訊開源的服務治理平臺北極星(簡稱Polar?isMesh) 將所有業務模塊注冊到Po?larisMesh注冊中心中統一進行服務的發現管理,并對單個微服務模塊進行版本標識,通過請求頭標識版本進行版本訪問限流負載均衡等管理。將可變配置數據放到Polaris?Mesh的配置管理功能進行管理在業務模塊可動態加載配置內容變更。部署方案中使用DevOps 自動化的部署,使用KubeSphere構建的面向云原生應用的分布式操作系統,可管理Kubernetes 與內置的DevOps(Development和Operations的組合詞,是一組過程、方法與系統的統稱)進行自動化開發與部署[4],在KubeSphere 中監聽Git倉庫的代碼提交后觸發DevOps進行CI/CD(CI持續集成、CD持續交付)代碼拉取、測試、構建和部署直至生產階段。管理者可通過各類瀏覽器訪問山羊孕測管理系統UI與后端所提供的功能進行交互,同時接入SpringBootAdmin在內部網絡中查看各個微服務模塊的運行情況。如圖1所示。

2.1 SpringBoot 框架

當前使用Java進行Web開發大部分采用Spring框架進行開發,由于起初Spring+SpirngMVC+MyBatis方案開發導致需要大量的配置,因此為了簡化開發,山羊孕測管理系統選擇Spring旗下發出SpringBoot框架自動裝配,減少配置文件的建立,帶來極大方便是對各類生態組件的接入便捷,更加便于開發者專注在業務功能開發和功能的調試。

2.2 SpringCloud 微服務

微服務中每個業務模塊都有一個清楚的功能邊界,通常說微服務是一種架構模式或風格。每個服務都緊扣一個大業務主題來實施開發,每個服務都能夠單獨地部署安排到生產的實際環境,通過Gateway網關來統一管理接口的暴露。微服務可以選擇獨立部署方式和彈性的資源配置。每個子系統服務之間采用輕量的通信機制(HTTP) 互相溝通,進行調用完成服務模塊間的通信[5]。本山羊孕測管理系統正是使用了SpringCloud微服務技術。

2.3 PolarisMesh 治理平臺

山羊孕測管理系統用到了PolarisMesh治理平臺,北極星(PolarisMesh治理平臺)是騰訊開源的服務治理平臺,內部協同共建的新一代服務發現和治理平臺,已整合和替代L5 等名字服務和負載均衡系統。截至2021年底,超過90%的業務部門使用北極星,接入節點數量超過千萬。主要解決了分布式架構、微服務架構中的各項管理(服務、流量、配置、故障容錯和可觀測性等)的問題,針對不同的技術棧和環境提供服務治理的標準方案和最佳實踐。

3 基于SpringCloud的微服務山羊孕測管理系統設計

3.1 系統需求分析

基于調研分析,山羊孕測管理系統的主要業務包括5項“管理”(權限、山羊、文件、監控、大屏)。1) 權限管理,可對用戶信息、權限、角色等進行管理,主要涉及用戶登錄狀態、角色配置、登錄終端類型以及登錄狀態是否過期;2) 山羊管理,對山羊的各項數據如體溫、運動量、專家意見內容、位置、名稱、編號、監控視頻流以及事件記錄進行管理;3) 文件管理,通過OSS存儲將所有以上傳媒體資源進行單獨存放管理;4) 監控管理,通過對服務、緩存等數據進行監控查看服務的狀態;5) 大屏管理,調用部分系統公共開放接口獲取到數據,統一展示到可視化大屏[6]。

3.2 數據庫設計

數據庫采用MySQL關系型數據庫建立高可用的集群數據庫并對每個服務模塊進行建庫建表,所有主鍵均采用分布式ID生成,有效避免不同節點上數據庫出現重復ID,為保障數據的可恢復性,所有數據均采用邏輯刪除方式有效降低誤操作帶來數據不可逆。圖2為部分代表性的E-R建模關系圖。

3.2.1 權限管理微服務數據庫設計

權限管理微服務中涉及的實體包括用戶、部門、角色、日志、終端和Token令牌以及用戶角色、角色權限關聯表,其中E-R建模關系見圖2(a) 所示。

3.2.2 山羊管理微服務數據庫設計

山羊管理微服務中涉及的實體包括山羊、專家意見、事件記錄以及用戶的E-R建模關系見圖2(b) 所示。

3.2.3 文件管理微服務數據庫設計

文件管理微服務僅使用單表存儲文件信息(信息主要包括:原文件名、創建時間、隨機文件名稱、文件格式、文件大?。?,這樣做的目的是便于各個微服務調用。

4 SpringCloud的微服務山羊孕測管理系統實現

本山羊孕測管理系統,在權限管理、山羊管理、文件系統、大屏管理、監控管理都得到了實現,圖3為部分具有代表性的用例和系統實現UI圖。

4.1 權限管理實現

權限管理主要包含5項子管理(用戶、角色、部門、終端、令牌),如圖3(a) 所示。

1) 用戶管理:用戶實體的屬性主要有6種(名稱、角色、昵稱、性別、手機號、郵箱),可根據用戶實體的屬性新增以及修改已有的用戶信息,相關代表性代碼如下:

2) 角色管理:針對每個微服務模塊細粒度的功能進行權限的分配是否具備新增、編輯、修改及刪除權限。實現效果如圖3(d) 所示。相關代表性代碼如下:

3) 部門管理:可進行新增部門、修改已有的部門數據和邏輯刪除,針對每個用戶進行用戶的劃分。

4) 終端管理:使用設計方式中策略模式開發,增加不同終端類型,如App、Web、小程序等進行區分管理,控制終端設備是否支持密碼模式、刷新模式、授權碼模式、客戶端模式、移動端模式以及刷新時效以及令牌時效。終端每次請求經過核心客戶端處理邏輯校驗后請求相應資源接口,相關終端請求處理代碼如下:

5) 令牌管理:可查詢所有用戶登錄的令牌信息,其中包含Token值、終端類型、用戶名、過期時間,并可強制踢出用戶登錄。

4.2 山羊管理實現

山羊管理功能包括山羊基本信息管理、事件記錄管理、專家意見管理等。如圖3(b) 所示。

1) 山羊基本信息管理:針對每只山羊的編號、昵稱、性別、傳感器編號、監控地址、運動量、體溫等信息進行管理,可新增以及修改已有信息并,并通過Socket訂閱實時廣播數據變更通知[7]。

2) 事件記錄管理:對每只山羊每天由傳感器所得到關鍵的數據進行記錄并可自定義當日的事件進行人工錄入記錄以及刪除事件記錄。

3) 專家意見管理:專家可進行每只山羊的情況進行內容的編寫、修改建議。

4.3 文件系統實現

文件系統針對各個微服務所上傳的媒體數據,進行編號記錄文件原名、類型、大小、上傳時間等信息進行管理,考慮到功能的單獨維護和擴展,針對文件系統功能抽離獨立做成一個子系統,并集成AWS-S3(是Amazon提供一款對象級存儲)SDK包,兼容其他廠商OSS以及開源MinIO對象存儲系統,其關鍵上傳代碼如下:

4.4 大屏管理實現

通過Vuejs技術制作大屏顯示模板,通過Axios發起數據請求從已有各個微服務中獲取可公開數據呈現到大屏顯示模板中。

4.5 監控管理實現

監控管理功能包括服務監控、流量監控、緩存監控等。如圖3(c) 所示。

1) 服務監控:將各個服務接入到Spring Boot Ad?min監控功能中,進行可視化的針對每個服務的Jvm、CPU、內存、網絡狀況、健康度、運行指標、日志信息、線程狀況等一系列信息的實時查看。

2) 緩存監控:通過集成Radis緩存提高系統的高速緩存能力[8],并獲取Radis信息,將其進行可視化展現出來查詢內存的占用、key數量、已連接客戶等各項指標。

3) 流量監控:通過PolarisMesh流量管理對限流策略、鑒權策略、負載均衡策略等進行統一管理。

5 結論

項目組設計與實現了一款基于SpringCloud微服務的山羊孕測管理系統,將各個功能劃分為5個服務管理模塊(權限、山羊、文件、監控、大屏),并將每個模塊統一使用PolarisMesh治理平臺進行注冊、發現、配置等管理,系統采用IDEA與VSCode工具進行開發。有效地提高開發的便捷。通過KubeSphere的DevOps高效地提高了開發中部署測試到生成可用環境所需做的重復內容。本系統能提高對孕山羊多方面數據的收集管理,降低養殖場人力與時間的成本,最終實現了孕山羊的信息化管理,助力智慧畜牧。

猜你喜歡
大屏山羊養殖場
夏季如何讓山羊增膘
為大屏而生,讓體驗更佳 峰米4K激光家庭影院Max
超越DCI影院色彩的百寸大屏王者 海信(Hisense) 100L9-PRO
淺談客廳大屏顯示未來
山羊受騙
規?;B殖場豬的繁殖障礙發生原因與防制
新建規模養殖場的環保新要求
烈日炎炎養殖場如何防暑降溫?
規?;B殖場仔豬的飼養管理
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合