国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SpringCloud的微服務(wù)山羊孕測管理系統(tǒng)設(shè)計與實現(xiàn)

2023-03-24 03:43邵毅陳春彭華
電腦知識與技術(shù) 2023年4期
關(guān)鍵詞:大屏山羊養(yǎng)殖場

邵毅 陳春 彭華

關(guān)鍵詞:SpringCloud微服務(wù);SpringBoot框架;山羊孕測

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

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

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

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

2 SpringCloud的微服務(wù)山羊孕測管理系統(tǒng)架構(gòu)

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

2.1 SpringBoot 框架

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

2.2 SpringCloud 微服務(wù)

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

2.3 PolarisMesh 治理平臺

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

3 基于SpringCloud的微服務(wù)山羊孕測管理系統(tǒng)設(shè)計

3.1 系統(tǒng)需求分析

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

3.2 數(shù)據(jù)庫設(shè)計

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

3.2.1 權(quán)限管理微服務(wù)數(shù)據(jù)庫設(shè)計

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

3.2.2 山羊管理微服務(wù)數(shù)據(jù)庫設(shè)計

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

3.2.3 文件管理微服務(wù)數(shù)據(jù)庫設(shè)計

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

4 SpringCloud的微服務(wù)山羊孕測管理系統(tǒng)實現(xiàn)

本山羊孕測管理系統(tǒng),在權(quán)限管理、山羊管理、文件系統(tǒng)、大屏管理、監(jiān)控管理都得到了實現(xiàn),圖3為部分具有代表性的用例和系統(tǒng)實現(xiàn)UI圖。

4.1 權(quán)限管理實現(xiàn)

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

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

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

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

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

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

4.2 山羊管理實現(xiàn)

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

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

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

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

4.3 文件系統(tǒng)實現(xiàn)

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

4.4 大屏管理實現(xiàn)

通過Vuejs技術(shù)制作大屏顯示模板,通過Axios發(fā)起數(shù)據(jù)請求從已有各個微服務(wù)中獲取可公開數(shù)據(jù)呈現(xiàn)到大屏顯示模板中。

4.5 監(jiān)控管理實現(xiàn)

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

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

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

3) 流量監(jiān)控:通過PolarisMesh流量管理對限流策略、鑒權(quán)策略、負載均衡策略等進行統(tǒng)一管理。

5 結(jié)論

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

猜你喜歡
大屏山羊養(yǎng)殖場
夏季如何讓山羊增膘
為大屏而生,讓體驗更佳 峰米4K激光家庭影院Max
超越DCI影院色彩的百寸大屏王者 海信(Hisense) 100L9-PRO
淺談客廳大屏顯示未來
山羊受騙
規(guī)?;B(yǎng)殖場豬的繁殖障礙發(fā)生原因與防制
新建規(guī)模養(yǎng)殖場的環(huán)保新要求
烈日炎炎養(yǎng)殖場如何防暑降溫?
規(guī)?;B(yǎng)殖場仔豬的飼養(yǎng)管理
错那县| 灵山县| 玉龙| 江孜县| 丹棱县| 瓦房店市| 松潘县| 巴林左旗| 蓝山县| 堆龙德庆县| 定结县| 五寨县| 临沭县| 衡东县| 丹江口市| 绥江县| 新兴县| 乡城县| 砚山县| 日土县| 合川市| 蒙自县| 成都市| 海盐县| 宣武区| 年辖:市辖区| 镇巴县| 庆云县| 金坛市| 吉木萨尔县| 大埔区| 图们市| 洛扎县| 三台县| 德令哈市| 济宁市| 玛曲县| 泊头市| 饶阳县| 库尔勒市| 六盘水市|