基于微服务的数字农业大棚管理系统设计与实现

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)。

猜你喜欢
微服务
数字文化馆建设中的“微服务”
基于微服务架构的日志系统
微服务架构及相应云平台解析
基于供给侧改革理论的图书馆社交网络微服务研究
微信公众平台在医院图书馆的应用现状调查
基于微信企业号的校园移动服务
微服务视角下高职图书馆数字资源使用分析
从单一模式系统架构往微服务架构迁移转化技术研究
基于微信公众平台的高校图书馆微服务现状及对策
微媒体时代高校图书馆阅读推广微服务探析