公S业务系统设计与实现■文/王俊修公安部第一研究所
一、引言
随着信息技术的快速发展及海量数据的 快速增长,微服务架构作为云计算技术和大数 据平台发展成熟后出现的新型应用架构,已经 成为了国内外诸多大型公司首选的架构形态。理论上来说,在大型分布式计算环境中,随着 业务变更、功能增加必然会导致系统不断进行 升级和演变,特别是跨警种、跨层级、跨地区 的业务系统,它本身就非常复杂,存在海量业 务数据的内外网传输,需要进行大量的加解密 计算,如何实现应用快速开发迭代、快速部署 上线,提高系统性能的新架构已经迫在眉睫。当前,随着虚拟化技术的发展以及容器技术实 践逐渐完善,微服务架构的设计思想也逐渐成 熟,形成了分布式计算环境下新的最重要的设 计思想。微服务架构是降低系统复杂度、提高 系统性能的最优选择,是适合敏捷开发方法持 续改进的架构。因此,传统架构方式必然转向 微服务架构方式,而“稳定安全、统一开放、简洁友好、高效领先”必然是新一代企业级应用系统的应有形态。本文通过回顾软件架构的
发展过程,分析分布式环境下微服务架构相对
于传统架构的优势以及微服务架构自身的优缺
点和在项目实践过程中有关注意事项,并基于
微服务架构对装备采购商城进行功能拆分、系
统架构设计和系统实现,基本达到微服务架构
初步实践的目标。利用微服务架构构建公安业
务系统或平台是对整合现有数据资源打破信息
孤岛,提升公安工作质量的有效技术手段,值
得研究和尝试。
随着信息技术的快速发展,过去单人开发
一段小程序的做法早就过时,大范围协作的集
成化时代随即到来。这导致软件开发和部署架
构也不断的演进、升级和迭代。总结而言,基
本上是从过去的单体应用架构发展到垂直切分
架构,再到面向服务架构(S O A),以及现
在火热的微服务架构,如图1所示描述了软件
架构的发展过程。
2021.03 - 0»。中国3肪-
J03
单块架构 垂直架构 S O A架构基本无人使用有一•定横块化眼务管控财低,欠负微衡R P C技术开发困难
图1系统架构演变过程微服务架构高密度部署原子.自治
1. 单体应用架构
这是过去采用最多的架构,当业务量很小、业 务逻辑不复杂时,往往就只需一个应用就能应对,可以将所有功能都部署在一起,以减少部署节点和 降低成本。这种架构下数据库的“增删改查”的操 作变得异常重要,而采用数据访问框架的中间件技 术则是影响项目开发的关键所在。单体应用架构虽 然能实现代码上下分层,但还存在业务模块代码横 向耦合,这将导致升级维护困难无法实现水平扩展,造成单点容错率彳E、并发能力差等问题。
2.垂直切分架构
后来,当业务访问量逐渐增大,单一应用无法 满足需求,此时为了应对更高的并发和业务需求,我们根据业务功能对系统进行拆分。将核心业务抽 取出来作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式调用是关键。
3.面向服务的架构
当服务越来越多,小服务资源的浪费等问题逐 渐显现,此时需增加一个调度中心基于访问压力实 时管理集容量,提高集利用率,面向服务的架 构(SO A)应运而生。这是一种架构风格,致力于 将业务功能保持一致的服务(系统服务、应用服务、技术服务)作为设计、构建和编排组合业务流程以 及解决方案的基本单元。用于提高机器利用率的资 源调度和治理中心是关键。
三、浅析微服务架构
1.微服务架构的定义
微服务架构指将复杂系统进行切分,分为几十 甚至上百个小服务,每个服务负责实现一个独立的 业务逻辑进行独立部署,彼此之间是松耦合的。微 服务一般采用Restful风格的轻量级通讯协议进行相 互通信,可以使用不同的语言来编写,也可以使用 不同的数据存储技术。
2.微服务架构的优缺点
与传统架构相比,微服务架构具有容错性强、可扩展性强等优点。具有更加彻底的组件化,系统 内部各个组件之间解耦的比较干脆,单个系统的规 模小很多,这使得每个服务本身可以独立的扩展,当性能出现瓶颈时优化或增加这个服务的配置即可。因此,每个微服务可以独立部署,只要服务间的接 口稳定,各系统可以相互之间互不干扰的独立发展。甚至可以组建每个服务独立的维护团队,利于各自 团队独立的开发和维护。
虽然微服务目标是充分分解应用程序,以促进
104-c>in〇[|]||p i i n- 2021.0
3
栏目主持:周丹雅E-mail: *****************
敏捷开发和持续集成部署,但不能过分强调服务大 小,这是因为微服务的切分是一个经验工程,业务 逻辑应该按照什么规则划分为微服务,业界并没有 给出一个明确的、统一的标准。另外,它的分布式 特点带来巨大的通讯协调复杂性,基于RPC或者消 息实现微服务之间的调用和通信,这就使得服务之 间的发现、服务调用链的跟踪和质量问题变得相当 麻烦。
3.微服务架构所画IS的挑战
基于C A P原理的约束,在微服务架构下不同 服务可能拥有不同的数据库,这使得我们不得不放 弃传统的强一致性,转而追求最终一致性。再加上 微服务由不同的大量服务构成,每种服务拥有自己 的配置、应用实例数量以及基础服务地址,这里就 需要不同的配置、部署、扩展和监控组件,还需要 服务发现机制以便服务可以发现与其通信的其他服 务地址,因此采用微服务架构必然会造成系统部署 复杂,从而后期运维的复杂度也急剧上升。
四、基于微服务架构的业务设计与 实现
面对微服务存在的优缺点和所面临的挑战,我 们的经验是在软件架构设计时,不要从一开始就以 微服务架构作为系统设计的起点,要用一个单个系 统作为起点并保持其模块化,当这个系统出现了问 题后再将其分解逐步拆解为微服务。下面我们将以 装备采购商城为例进行微服务架构设计。
1.系统功能介绍
装备采购商城是一个借助于网络构建的警用装 备采购超市平台,实现装备信息录入、在线展示、用户浏览、下单购买、订单支付和使用评价等整个流程环节的管理。系统的用户有供应商、采购员、
预算管理员和系统管理员等。采购员可以在线浏览、
购买装备、加入购物车、下单、在线支付,可以评
论已购买装备;供应商可以在后台管理装备的上下
架、促销活动,可以监控装备销售状况;预算管理
员可以在后台处理付款相关的财务操作;系统管理
员进行查询统计,开展采购推荐等方面的辅助决策。
整个装备采购商城网站设计为两部分:后台管
理系统和前台门户系统。后台管理系统主要为供应
商和管理员使用,前台门户系统主要为采购员使用。
后台管理系统主要包括以下功能:
(1)装备管理,包括装备分类、名称、规格参
数等信息的管理。
(2)采购管理,包括订单统计、订单退款处理、
促销活动生成。
(3) 用户管理,包括用户控制、冻结、解锁等。
(4)权限管理,整个网站的权限控制,采用
JW T鉴权方案,对用户及A P I进行权限控制。
(5) 查询统计,各种数据的统计分析展示。
前台门户系统主要包括以下功能:
(1 )搜索装备。
(2) 加入购物车。
(3) 下单支付。
(4) 装备评价等。
2.系统应用架构设计
系统从应用上可分为三个层次,最上层是业务
平台层,包含了用户操作的每个业务模块,实现业
务功能,业务平台层通过调用业务支撑平台的标准
业务服务接口为用户提供服务。中间层是业务服务
接口层,通过对业务逻辑的封装处理实现各个业务
模块的逻辑。平台层包含文件存储,存储用户上传
202f.03 - 肪-川5
瞥用装备采W系统
~业务平台层~
装备营理装备采购财务管理铺助决策公吿管理数据采集
标触务服务接口
身份认证全文检索曰志眼务数据交换上传下载会话服务事务管理异常处理热门推荐
业务支#平台层
图2系统应用架构图
的图片、文件和数据库服务。
建设过程中,项目制定了统一数据元标准,形 成了相关的规范建设文档。同时,系统中所产生的 所有数据都统一存储在云平台之上,按照符合安全 规范的信息共享机制,提供对外服务接口,保证与 其它系统能够实时安全共享数据。
3.系统网络架构设计
由于供应商等互联网用户要登录装备采购商城 的前台门户系统录入各类装备数据并进行上架下架 等曰常维护操作,因此系统访问涉及到互联网和公 安网两张网络。应用服务部署在公安网的云平台服 务器上,互联网用户通过使用双网安全通道进入到 公安网访问系统,公安网用户则可以直接访问系统,数据只在公安网上进行存储和应用。整个采购系统 的网络架构图如图3所示。
4.系统技术架构设计
无论是前台门户网站还是后台管理系统,全部 采用前后端分离开发,共享相同的业务微服务集。考虑到后台管理系统用户量比较少,会使用Vue.js 框架搭建出单页应用;而前台门户系统出于搜索引 擎优化的考虑,我们会使用Thymeleaf模板引擎技 术来完成多页面开发。
具体来讲,此项目选择基于Spring Cloud的微 服务架构进行系统设计和开发。其中,涉及到的前 端技术有:基础的HTML、CSS,基于ES6标准的 JavaScript、JQuery、Vue.js 2.0 以及基于Vue的 框架Vuetify(UI框架)和前端构建工具WebPack,前端安装包工具NPM、Vue脚手架Vue-cli、Vue 路由vue-「oute「、ajax框架axios等。后端技术有:基fi出的SpringMVC、Spring 5.x_和 MyBati_s3、Spring Boot2 版本,Redis-4.0、RabbitMQ-3.4、Elasticsea「ch-6.3、nginx-1.14.2、FastDFS、MyCat、Thymeleaf等。如图 4 所示。
5. 装备采购商城的功能实现
按照系统功能介绍,我们对装备采购商城进行 微服务功能划分,主要分为商品微服务、库存微服务、搜索微服务、购物车微服务、订单微服务、支付微 服务、短信微服务和品论微服务等8个功能,并和微服务项目技术架构
综接
口
栏目主持:周丹雅E-mail: *****************
••d»s a i
GE)GH)
re<*» sentinel |
图4基于微服务的技术架构
前台门户系统进行集成联调开发,以及进行了分布式部署应用。经过多次测试验证证明,基于微服务架构开发的系统可更好应 对功能模块升级、上下线、停机运维、流量消峰等需求,最终 实现的装备采购商城首页如图5所示。
用户登录装备采购商城,首先可以按装备分类进行查,也可以按照装备大类、装备子类或装备名称进行搜索。其次,在系统首页可以按照用户行为、兴趣爱好推荐系统中的热门装 备,即购买量、好评率高的装备。最后,系统首页还可以展示 每种类别中热门的装备或最近发布的新型装备。
五、结束语
近年来,随着物联网、云计算、大数据、人工智能等新技
I1M ^
--•_ c a K a n --■'r s m m s b k n
—盥屋_c
思_翮*
——.1—■— r>y«»»— a •• •
图5装备采购商城首页
术的出现和加速发展,传统安防行业的内
涵也得到不断丰富与拓展,已经从传统的
安全防护、防盗报警延伸到智能楼宇、智
慧社区、雪亮工程等新型安防建设领域,
呈现信息化、智能化发展的新趋势。尤其
在公安部实施公安大数据战略以来,安防
行业正在逐步走向更广泛的数字化转型时
代,按照公安大数据智能化建设要求,要
采用微服务架构,通过依托大数据平台构
建与大数据平台融合建设等方式完成新智
能应用的建设任务,新技术、新架构、新
应用在公共安全行业的赋能加持作用愈来
愈明显,将为安防行业数字化转型发展插
上腾飞的翅膀。我们相信,只要大力推进
安防数字化转型,不断深化新技术新业态
的应用和示范引领,将加快构建符合新时
代要求、体现实战化特点、具有中国特
的社会治安防控体系。妃
202f.03 - 取謂p f f li-
107
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论