?

基于微服務的數字農業大棚管理系統設計與實現

2024-04-27 23:52曾恒
互聯網周刊 2024年7期
關鍵詞:微服務

摘要:目前,多數農業大棚管理系統為傳統單點架構,系統穩定性不強,難以迎合農業大棚農事活動的管理需求,本文設計并實現了一套基于微服務的數字農業大棚管理系統。該系統主要包含農作物信息管理、農事活動管理、用戶管理、環境數據管理、設備管理、種植區管理等功能,能讓生產管理者對種植活動進行全方位監管,科學制定種植任務。

關鍵詞:微服務;數字農業;管理系統設計

引言

廣西是我國的傳統農業大?。▍^),蔬菜大棚技術在全區各地得到極大的普及。傳統農業大棚能夠通過控制局部環境來高效管理農作物種植活動,降低病蟲害和天氣對農作物生長的影響,提高大棚農作物的單位產量。隨著農業大棚技術的大規模普及和應用,相關的大棚配套系統也層出不窮,如水肥灌溉系統、通風系統、濕度監測系統、二氧化碳監測系統等。這些配套系統能使人們更加科學地提高農事活動的管理效率[1],進而提高種植收入。但是,目前市面上的農業大棚配套系統存在智能化程度不足、數據利用率低等問題。本文針對上述問題,設計并實現了一款基于微服務的智慧農業大棚管理系統,能使生產管理者對種植活動進行全方位的監管。

1. 開發技術分析

1.1 前端技術

Vue是一個2014年出現的漸進式JavaScript框架,該框架專注于視圖層的構建,具有易上手、擁有完善社區支持的特點,能讓開發人員重點關注于視圖層,并與現有項目進行快速集成,適合現代Web應用開發。此外,Vue.js還支持組件化開發,能夠通過模塊化的代碼完成項目開發,使得代碼的復用性更高。Vue.js在數據操作方面更為簡單,能夠自動響應數據的變化情況,并且根據頁面中預先寫好的綁定關系,對所有綁定在一起的數據和視圖內容都進行修改。

1.2 后端技術

Spring Cloud是一個基于Spring Boot的分布式微服務架構框架。Spring Cloud具有服務化、組件化、快速迭代和持續集成的特點,能處理微服務架構中的熔斷降級、服務治理、服務發現等問題。Spring Cloud主要包括Eureka、Zuul、Ribbon等組件,這些組件提供了服務注冊與發現、負載均衡、熔斷降級等功能,能夠讓開發者快速搭建微服務應用,實現開箱即用,使開發者可以專注于業務邏輯的實現。

1.3 數據庫

MySQL是世界范圍內最流行的關系型數據庫管理系統之一,為瑞典MySQL AB公司產品。MySQL為開源項目,用戶可以免費使用和修改其源代碼。同時,MySQL可以在Windows、Linux和Mac OS等多種操作系統上運行。

MySQL具有性能高效和可擴展性良好的優點,對大數據和高并發有良好的支持。支持多種存儲引擎,以滿足不同應用的需求。MySQL提供了數據完整性約束,如主鍵、外鍵和唯一性約束,確保數據的準確性和一致性。MySQL產品有活躍的開發者社區進行支持,能為開發者或者學習者提供豐富的資源和支持。

2. 系統設計

微服務的概念在2012年首次提出,微服務架構相比傳統Web開發具有顯著的優勢。首先,微服務能夠將各類應用進行模塊化解構,將整個應用拆分為多個獨立服務,進行獨立部署,使每個獨立服務專注各自的業務功能,具有易于管理和維護的特點。其次,微服務架構由于對不同服務進行獨立部署,能實現不同服務快速迭代開發,提高了應用整體的開發效率[2]。最后,微服務架構中出現某個服務故障時,其他服務可以繼續正常運行,降低了系統整體的風險。

2.1 架構設計

本文設計的數字農業大棚管理系統是一種對農業大棚的農事活動和設備設施進行管理的綜合平臺。數字農業大棚通過安裝各類物聯網設備,如光照傳感器、土壤溫濕度傳感器、二氧化碳傳感器等電子設備[3],對大棚的環境參數進行實時監控,根據實時監測的數據,通過系統自動控制或者管理員遠程控制大棚內的執行設備,進行通風、噴水、補光等操作,保證大棚農作物的生長環境處于較適宜的條件。系統對農事活動進行信息化處理,并將農事活動、執行人、種植區的數據進行全流程存儲,通過可視化報表等工具,提供給農業大棚管理者,提高農事活動的生產效率和大棚的使用效率,從而提高農作物的產量和品質。系統架構主要分為數據采集層、網絡傳輸層、云平臺、應用層。

2.1.1 數據采集層

數據采集層主要實現系統數據的實時收集,主要對農業大棚里的環境信息,如空氣濕度、光照強度、風速風向、土壤濕度、土壤溫度等環境指標進行實時監測。數據采集層依靠大量的物聯網傳感器完成環境指標的監測工作,為后續的相關決策提供了大量的數據支撐。

2.1.2 網絡傳輸層

網絡傳輸層主要為農業大棚提供必要的網絡環境,當數據采集層監測到大量的環境數據,需要實現快速可靠的數據傳輸,由于物聯網傳感器設備的數據格式和通信協議可能與網絡層不一致,因此需要在網絡層進行協議轉換,便于數據進行傳輸,由網絡傳輸層提供數據傳輸條件,對數據采集層的數據進行處理后,傳輸至云平臺。

2.1.3 云平臺

云平臺為數字農業大棚應用場景的中樞大腦,數據采集層采集的大量數據通過網絡傳輸層傳遞到云平臺,云平臺為部署在公有云上的服務器集群,數字農業大棚管理系統以微服務的形式部署在服務器集群上,對于大棚收集的數據進行處理、存儲和分析,能夠為管理人員提供決策支持。

2.1.4 應用層

應用層主要提供人機交互、體驗良好的Web界面,讓使用系統的用戶能夠與系統進行交互。通過Web界面,用戶可以登錄到系統,對各項系統功能進行操作,如查看大棚的各項環境實時參數、農事活動完成情況等。通過可視化報表,將處理好的數據進行展示,使用戶能夠充分了解大棚的運行情況,用以支持后續相關決策。

2.2 功能設計

數字農業大棚管理系統設計有六個功能模塊:農作物信息管理、農事活動管理、用戶管理、環境數據管理、設備管理、種植區管理。

2.2.1 農作物信息管理模塊

該模塊包括:(1)農作物生長信息管理功能——系統對每種農作物生長過程的數據進行全程管理,方便管理人員對種植的農作物生長過程進行追溯和管理;(2)病蟲害信息管理功能——系統對農作物發生的所有病蟲害數據進行管理,為后續種植活動提供決策支撐。

2.2.2 農事活動管理模塊

該模塊包括:(1)種植計劃管理——針對大棚內目標種植農作物的特點和大棚環境條件,制定科學合理的種植計劃,對種植計劃中的作物類別、種植時間、種植區域、執行人等信息進行管理,支持種植計劃的新增、刪除、修改、查詢等功能,能夠進行種植任務信息導入和導出,提高制定種植計劃的工作效率;(2)農事作業管理功能——根據農作物的種植計劃和農作物的生長規律制定作業任務,如噴藥、灌溉、施肥等;(3)農事作業計劃管理功能——根據種植計劃,合理安排農事作業時間和順序,提高農事活動的生產效率;(4)作業數據管理模塊功能——對農事活動的全流程數據進行存儲,并對特定數據進行分析,為大棚的科學種植管理提供數據支持。

2.2.3 用戶管理模塊

該模塊包括:(1)用戶注冊和登錄管理功能——提供登錄系統管理階段的功能,能使用合法賬號密碼進行登錄;(2)用戶權限管理功能——能對訪問系統的用戶進行角色分配,如普通用戶、管理員等,其中不同角色的用戶將擁有不同的訪問權限等級;(3)用戶信息管理功能——可以對系統所有用戶信息進行增刪查改的操作;(4)用戶行為監控功能——系統記錄所有用戶的登錄與操作數據,對異常行為進行及時告警。

2.2.4 環境數據管理模塊

該模塊包括數據采集功能,即利用各種傳感器和監測設備,實時采集農業大棚內的各類環境數據,如二氧化碳、溫度、濕度、土壤pH值等[4]。

2.2.5 設備管理模塊

該模塊包括:(1)設備控制管理功能——對大棚內的各種設備進行遠程控制,如灌溉系統、水肥系統等,實現對設備的自動化控制;(2)設備狀態管理功能——實時監測設備的運行狀態,確保各類設備處于正常運行狀態,當設備發生故障時,提供告警提示信息;(3)設備存檔管理——對各種設備進行存檔管理,記錄庫存中各類設備的規格、型號、采購日期等信息。

2.2.6 種植區管理模塊

該模塊可以根據農作物適合的種植情況,對大棚內的種植區域進行科學劃分,并記錄每個區域的種植計劃和作物種類等信息。

2.3 數據庫設計

在數字農業大棚管理系統中,數據庫用來存儲系統運行的相關數據,一個合理的數據庫設計能夠保證數據的準確性和完整性,提高系統的性能。在農業大棚場景下,數據的來源渠道有多種,不僅有物聯網傳感器的運行數據,還有眾多業務操作數據,需要設計一個高可靠、可擴展、多樣化和異構的數據庫。在本系統中,采用MySQL存儲相關數據[5],并根據數據庫邏輯模型設計相關數據庫的表。在數據庫的架構上,采用數據庫主從集群架構,由一個數據庫主服務器和多個從數據庫服務器組成,具有高性能和可用性,同時具備良好的擴展性。

2.4 系統微服務部署設計

將數字農業大棚管理系統的六大功能逐一拆分為獨立的微服務,并為每個功能的微服務實行服務器集群部署,將每個集群的服務器數量配置為奇數。其主要目的為,當某個功能主服務不可用時,可以由其部署的集群通過選舉算法選出新的服務節點,用以替換主節點向外提供服務,實現微服務各個功能的高可用。由于實現了功能服務單獨部署,系統可擴展性良好,當出現系統資源不足時,可以通過增加服務器節點來進行調整。

為增強微服務系統的相關性能,為微服務系統增加服務配置、服務治理、鏈路追蹤、服務監控、消息總線等服務。

2.4.1 服務配置

服務配置主要用于存儲項目配置信息,為每個微服務提供獨立的配置管理功能,通過配置中心集中管理配置信息,并對配置信息進行動態發布,當某個配置項發生變更,能夠在不停機的狀態下實現動態更新配置信息。服務配置使用百度的Apollo,能實現配置動態更改而無須重啟整個系統服務。

2.4.2 服務治理

服務治理主要用于實現各個微服務之間的自動注冊和發現。首先構建一個注冊中心,由各個單元服務向注冊中心登記自己提供服務的詳細信息,由注冊中心形成注冊清單,注冊中心定期檢測清單中的服務是否可用,如果不可用,需要在清單中剔除。服務治理使用Spring Cloud的Eureka作為服務注冊中心。

2.4.3 鏈路追蹤

鏈路追蹤能監控和診斷微服務系統中的問題,能夠將一次分布式請求還原成調用鏈路,然后進行監控,并展示出來。鏈路追蹤使用Zipkin實現,能實現故障快速定位。

2.4.4 服務監控

服務監控主要是對系統所部署的服務器資源,包括對CPU、內存、磁盤空間等資源進行監控,保證服務所處環境的資源合理分配,同時能夠對各微服務的響應時間、是否異常等情況進行監控。服務監控使用Prometheus,能將實時收集的各項指標進行可視化展示。

2.4.5 消息總線

消息總線構建一個共用的消息主題,并讓系統中所有微服務實例都連接上來。由該主題中產生的消息會被所有的實例監聽和消費。消息總線使用Kafka,能作為高吞吐量的消息系統對各個服務進行解耦。

同時,可引入Elasticsearch、Logstash、Kibana、Docker等技術,為微服務系統提供日志管理功能和容器部署能力,提高系統部署的自動化能力和彈性伸縮能力。

結語

本文設計并實現了一套基于微服務的數字農業大棚管理系統。該系統主要包含農作物信息管理、農事活動管理、用戶管理、環境數據管理、設備管理、種植區管理等功能模塊。該系統能對農業大棚的農事活動數據、農產品數據、環境數據進行全流程管理,可有效提高生產效率。目前,該系統已完成研發,并部署在廣西農業職業技術大學信息工程學院數據機房,當前正進行集成測試,待測試完成后向外提供訪問服務。

未來進一步的研發方向可考慮增加人工智能方向的功能模塊。例如,在計算機視覺方面,通過攝像頭實時監控的畫面,通過數據分析模塊得出作物的病害情況,進一步對農事活動進行科學指導。

參考文獻:

[1]陳輝江,方銳.基于物聯網技術的智慧農業大棚監控系統設計與功能實現研究[J].智慧農業導刊,2022,2(18):8-10.

[2]趙榮陽,王斌,姜重然,等.基于物聯網的農業大棚生產環境監控系統設計[J].農機化研究,2021,43(11):131-137.

[3]姚引娣,王磊,花靜云,等.基于B/S架構的LoRa遠程溫室監測系統[J].傳感器與微系統,2021,40(1):78-80,84.

[4]周漢達,李曉良,陳生慶,等.基于云平臺的智能農業大棚系統[J].物聯網技術,2020,10(4):62-64.

[5]陳根,易治國.基于物聯網的農業溫室大棚環境監控系統設計[J].南方農機,2022,53(16):130-132.

作者簡介:曾恒,碩士研究生,講師,研究方向:計算機軟件開發、人工智能算法優化與應用研究。

基金項目:廣西高校中青年教師科研基礎能力提升項目(編號:2021KY1189);廣西農業職業技術大學校級科研項目資助(編號:YKJ2131)。

猜你喜歡
微服務
數字文化館建設中的“微服務”
基于微服務架構的日志系統
微服務架構及相應云平臺解析
基于供給側改革理論的圖書館社交網絡微服務研究
微信公眾平臺在醫院圖書館的應用現狀調查
基于微信企業號的校園移動服務
微服務視角下高職圖書館數字資源使用分析
從單一模式系統架構往微服務架構遷移轉化技術研究
基于微信公眾平臺的高校圖書館微服務現狀及對策
微媒體時代高校圖書館閱讀推廣微服務探析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合