前言:本站為你精心整理了微服務在智能化養殖管理系統中應用范文,希望能為你的創作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。
摘要:采用云存儲+微服務架構模式實現養殖管理系統的部署,確保系統的穩定性和安全性。通過管理系統的運行,改善了養殖戶的養殖環境,降低了養殖成本。
關鍵詞:微服務;云存儲;智能養殖;安全性;穩定性
0引言
傳統的養殖模式在互聯網時代正逐漸發生變化,養殖業的信息化和智能化管理能提高養殖的效率和利潤,這對科研人員和養殖戶是一個挑戰[2]。
1微服務架構模式
微服務架構模式是近幾年提出的一種新的軟件架構設計風格。各個微服務之間有清晰的功能邊界,專注于完成自己獨立的任務。一個較復雜的應用系統可以有多個微服務組成,系統中的各個微服務可以獨立部署,同時各個服務之間的通信機制是輕量級的[3]。微服務的概念源于2012年,弗萊德·喬治在一次演講中提出了微服務架構思想,他描述了他的團隊是如何面對百萬行的J2EE程序,通過架構解耦、自動化驗證、持續集成、獨立部署等實踐,逐漸將原有的系統分解成多個可獨立交付的服務的過程。微服務架構的本質是持續交付體系中松耦合架構的一種體現。通過微服務的獨立開發、測試、以及維護,縮短特性的交付周期,提升交付質量。同時降低管理測試、部署等的難度。在軟件架構的發展過程中,常用的模式有分層架構和面向服務的架構(SOA)。微服務架構模式與分層模式進行對比,最明顯的區別是分層架構要求所有邏輯都在一個進程中進行,隨著應用逐漸部署到云端,對應用程序的一小部分修改,需要重建和部署整個整體。而微服務是將應用作為一個獨立的組件,可被單獨部署,組件之間定義了清晰的接口[4,5]。SOA架構偏向靜態,企業級大型應用,微服務適用于快速迭代交付的互聯網應用。智能養殖管理系統中涉及到較多的業務處理以及較多的數據收集和匯總,為了后期能夠更好的對系統進行維護,鑒于以上的分析和對比,系統在設計的時候考慮使用微服務架構模式,可以通過部署多種服務來滿足不同的業務需求。
2云存儲技術優點
云存儲技術與傳統的存儲方式進行對比,其重要優勢體現在兩方面:①在存儲容量能夠彈性擴展,而傳統的存儲設備往往存儲容量有限,同時在存儲性能以及安全性方面也有一定弊端。云存儲技術的應用使上述缺陷得到有效彌補,云存儲技術能夠隨時在線增加存儲節點,通過這種方式使數據存儲需求得到有效滿足,更加有利于開展數據信息的自動重組工作,使數據自動恢復效果更好。②實現了資源共享。云存儲技術的應用使傳統單一設備存儲模式得到了有效優化,云存儲將多種存儲資源有效整合到一起,并將其分享給多個用戶,不同用戶能夠對其進行訪問。此外,云存儲技術可以實現自動重新分配數據,使儲存效率以及儲存空間得到有效利用。云存儲具備良好的可維護性。對云存儲系統來說,如果在使用過程中出現硬盤或者儲存節點損壞的現象,可以對其進行自動重組,保證此過程中的數據不會丟失,使系統運行效率不會受到負面影響。
3智能養殖管理系統分析與設計
3.1系統分析
基于微服務的智能養殖管理系統主要功能包括以下幾個子系統:無線傳感子系統,在線監控子系統,PLC控制子系統,移動網上農場/Web網站子系統。節點無線傳感模塊主要負責將有關養殖的環境信息進行采集并上傳,在線監控模塊主要負責對養殖的場地進行實時的監控,同時對于監控數據進行存儲。PLC控制模塊主要是控制相關的器件對養殖的環境進行調整以期達到最佳的養殖鏟平的生長需求,移動網上農場/Web網站主要負責人機交互的界面以及數據的匯總分析。
3.2系統設計
在整個系統設計的過程中采用微服務架構模式,以移動網上農場/Web網站來分析微服務架構的過程。在這個模塊的設計中,考慮到用戶的使用方便,系統提供移動端與Web桌面瀏覽的功能。為了節約資源,減少開發成本,開發團隊借鑒了BFF模式(服務前端的后端),將手機端和平板端網站的特定后臺需求拆分為一個獨立的后臺服務,作為后端實現,為前端提供數據。通過為移動端創建一個專屬的后端服務,可以為移動端的用戶進行專門的優化,量身打造最佳體驗。同時由于微服務架構下的這個新服務足夠的小而簡單,就更容易進行修改,部署和上線。對移動網上農場/Web網站子系統首先進行業務流程梳理,具體業務之間的聯系如圖1所示。業務流程清晰以后,團隊開發采用事件風暴進行領域建模。事件風暴是由AlbertoBrandolini提出的一項團隊活動,旨在通過領域事件識別出聚合根,進而識別出界限的上下文,指導團隊進行服務劃分。經過系統的梳理,得到該模塊的有關聚合包括:用戶,養殖產品,環境數據管理,視頻監控各個聚合。識別聚合的結果如圖2所示。根據上面的分析,該模塊最終包含以下服務,具體如表1所示。根據上述服務的劃分,該系統分成了五個微服務,基于這些微服務,最終該系統的架構如圖3所示。
3.3系統實現
在智能化養殖管理系統的實現過程中,首先考慮的是微服務開發框架選擇。常見的微服務開發框架有SpringMVC,這種技術主要是基于傳統的Web框架進行開發,無法滿足迭代的要求。SpringBoot框架雖然簡化了服務構建的成本[1],但是對于多個服務的協作及管理,依然存在很大的挑戰。目前使用比較多的微服務開發框架有SpringCloud,Dubbo,ServiceComb,這幾種技術典型的特點是添加了服務的治理能力,開發者只需要進行簡單的配置,即可實現注冊中心、配置中心、調用鏈跟蹤以及服務容錯能力等[6]。ServiceMesh是新一代微服務框架,它通過“零侵入”的機制實現負載均衡、服務注冊發現等服務治理能力,降低了服務治理的門檻。綜上所述,系統的實現過程使用了ServiceBoot開發框架,華為云的ServiceStage作為持續集成、部署、運行的平臺[7]。
3.4系統安全性與穩定性分析
在世界質量報告中曾提到,大部分(約80%)的安全問題都出現在應用層[8]。很多微服務開發框架都提供了與安全相關的組件或者功能。在智能化養殖管理系統中通過SpringBoot+SpringSecirity的技術組合保障應用層的安全性。SpringSecurity中集成了CSRF防范的功能,通過引入這些組件或者功能,可以對微服務起到保護作用。SpringSecurity中提供了BCryptPasswordEncoder密碼編碼工具,可以非常方便的實現密碼的加密,相同明文加密出來的結果總是不同,這樣就不需要用戶去額外保存加密的字段了。如果一個請求不需要進行攔截,在實現的時候可以設置該地址為匿名防偽,或者直接過濾掉該地址,即該地址不走SpringSecurity過濾器鏈[8]。智能化養殖管理系統的穩定性設計根據系統的使用特點,主要是通過建立服務監控、統計及報表等[9]。在系統運行期間,需要對服務器相應指標進行監控,如系統load、磁盤利用率、內存占用率、網絡流量、QPS/TPS等。對于服務的調用,需要有統計的報表,按照小時/日/周/月展示,并且通過設置異常情況監控,如流量突增突降,系統能夠及時報警。
4結束語
云存儲+微服務架構模式在智能養殖管理系統開發中的應用,有效提高了開發的效率,有效的減輕了系統的維護工作。但是在系統的開發過程中也有一些問題需要后續的繼續研究,比如系統設計過程中數據的管理和劃分,采用什么方法可以做到更加的科學和高效。
作者:李翠平 陳永松 單位:廣東松山職業技術學院計算機與信息工程學院