前言:本站为你精心整理了微服务在智能化养殖管理系统中应用范文,希望能为你的创作提供参考价值,我们的客服老师可以帮助你提供个性化的参考范文,欢迎咨询。
摘要:采用云存储+微服务架构模式实现养殖管理系统的部署,确保系统的稳定性和安全性。通过管理系统的运行,改善了养殖户的养殖环境,降低了养殖成本。
关键词:微服务;云存储;智能养殖;安全性;稳定性
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结束语
云存储+微服务架构模式在智能养殖管理系统开发中的应用,有效提高了开发的效率,有效的减轻了系统的维护工作。但是在系统的开发过程中也有一些问题需要后续的继续研究,比如系统设计过程中数据的管理和划分,采用什么方法可以做到更加的科学和高效。
作者:李翠平 陈永松 单位:广东松山职业技术学院计算机与信息工程学院