基于SpringCloud的电信综合服务保障系统微服务改造之路
刘斌
(中邮科通信技术股份有限公司,福州350001)
【摘 要】 随着电信业务的多元化发展,对后端运营支撑的电信综合服务保障系统提出了更高的要求。传统的单体式应用逐渐暴露出自身架构的缺陷,如复杂性高、扩展性差、技术栈单一。为改进单体式应用的不足,论文提出了基于SpringCloud的微服务架构设计方案。经过改造的电信综合服务保障系统更易于开发、理解和维护,并且不受技术栈的限制。
【关键词】 SpringCloud;微服务架构;改造
1 引言
电信业在近几年得到了蓬勃的发展,业务更加复杂,关系更加紧密,数据更加多样化。原先旧的综合服务保障系统逐渐显露出自身架构的缺陷:所有功能集中在一个项目中,逻辑复杂、模块耦合、代码臃肿,修改难度大,系统错误隔离性差、可用性差,任何一个模块的错误均可能造成整个系统的宕机。加之为顺应电信IT 系统的Paas 云平台化改造,决定对现有综合服务保障系统进行基于SpringCloud的微服务化改造[1]。
选取2017年2月—2018年6月90例肺癌手术患者作为研究对象,将其随机分为两组。其中,观察组男女比例为30∶15,年龄为55~81岁,平均(65.37±1.44)岁。对照组中,男女比例为31∶14,年龄为56~80岁,平均(66.41±1.32)岁。两组患者的一般资料对比,差异无统计学意义(P>0.05),具有可比性。
2 微服务简介
微服务是将原本单一型的应用分解为多个微服务,各个微服务独立运行在自己的进程中,可分别有自己的数据库。微服务之间使用REST 或者RPC 等协议进行通信。具有易于开发和维护、启动更快便于部署、更宽的技术栈等优点。
3 微服务改造实践
综合服务保障系统是一套在用系统,所以如果从头构建全新的基于微服务的应用,充满了风险,有可能导致失败。相反,应当采取渐进式重构旧系统的策略,逐步构建一个由微服务构成的应用,与旧系统并行运行。随着时间推移,原先由旧系统实现的功能不断收缩,最后或者完全消失,或者转变为微服务。转化的实现策略包括以下几个方面:
中金公司的数据表明:以中美之间贸易量占全球的比例来看,中美之间集装箱贸易占全球4.7%,粮食贸易占全球7.8%,是占比最高的两个子类。从双方的依赖度而言,中国从美国进口占比高的主要为粮食(包括大豆),占中国粮食进口量的34.4%;美国从中国进口占比高的主要为集装箱,占美国集装箱进口量的37.4%。
策略二:提取微服务。将旧系统内的模块转变为独立的微服务。每当提取模块将其转化为服务,旧系统就会收缩。一旦转化了足够的模块,旧系统或者彻底消失,或者缩小成为另一个微服务。
策略一:拆分前端和后端。将表示层与业务逻辑和数据访问层分离。表示层是一个应用,业务和数据访问逻辑是一个应用。表示层应用远程调用业务逻辑层。
我国农业的绿色发展事业不仅在民间进行,更多的企业也走在通过系统化、科学化的运作模式,打造着有机之路上的示范样本。
4 SpringCloud 简介
各个微服务启动时,会将自己的信息(如IP、端口、微服务名称等)注册到Eureka Server,Eureka Server 会存储这些信息。Eureka Client 会周期性(默认30s)地向Eureka Server 发送心跳以续约自己的信息。Eureka Server 会检查超过一定时间(默认90s)没有续约的微服务,如有发现,则会注销该微服务实例。每个Eureka Server 同时也是一个Eureka Client,多个Eureka Server 实例互相之间通过复制的方式实现注册信息的同步[3]。
4.1 Eureka
Ribbon 是一套基于HTTP 和TCP的客户端负载均衡工具,由Netflix 发布。经由SpringCloud 封装后,Ribbon 可以自动地从Eureka Server 中获取服务提供者的地址列表,并基于负载均衡算法(如轮询、随机等),请求其中一个服务提供者实例,也可为Ribbon 实现自定义的负载均衡算法。
SpringCloud 是一套基于SpringBoot 构建的通用工具集,非常适合用于快速地构建分布式系统。作为微服务的开发框架,其整合并增强了微服务架构中常用的组件,如Eureka、Zuul、Hystrix 等,具有功能齐全、开箱即用、适用于各种环境等特点。
4.2 Ribbon
Eureka 是一个基于REST 服务的服务注册与发现组件,主要包含 Eureka Server 和 Eureka Client 两个组件。SpringCloud 将其集成在子项目Spring Cloud Netflix 中。
4.3 Hystrix
微服务架构的应用系统通常包含多个服务层,各服务之间存在一定的依赖关系。底层服务的故障有可能引发级联故障,导致雪崩效应。要防止雪崩效应,必须有一个强大的容错机制。
策略三:新增的业务模块直接微服务化。使旧系统停止继续变大,不再对旧系统开发新的功能,而把新的功能模块开发成为独立的微服务[2]。
文中在研究常用的人眼瞳孔定位方法基础上,重点研究了基于边缘检测和椭圆拟合的瞳孔定位方法,该方法定位速度快,对变形瞳孔有很好适应性,但是容易受到眼睑遮挡,光斑、阴影等干扰。针对这些问题提出一种改进的适合红外条件下的基于椭圆拟合的瞳孔定位算法。实验结果表明,本文提出的瞳孔定位改进算法有效减少反射光斑及睫毛等对定位的影响,并且弥补了固定阈值分割的不足。
Hystrix 是有Netflix 开源的一个工具类库,可以为网络请求设置超时,使用断路器模式,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性和容错性。
4.4 Zuul
Zuul 是Netflix 开源的微服务网关,SpringCloud 对Zuul 进行了整合与增强,使其能够与Eureka、Ribbon、Hystrix 等组件更方便地配合使用。
微服务网关是介于外部客户端(如网页端、手机APP 等)和服务器之间的中间层,所有客户端来的请求都通过微服务网关到达后端的应用服务。作为一个边界性质的应用程序,Zuul 底层利用各种过滤器实现了以下功能:身份认证与安全、动态路由、性能监控、压力测试、负载分配、静态相应处理等。
4.5 微服务架构
图1 SpringCloud 架构图
5 结语
单体应用向微服务架构的重构是一个持续的过程,充满了挑战。实现这一过程不能一味地从头开始重写代码,而是应该渐进式地将单体应用中的功能模块转换成微服务。随着时间的推移,大量微服务逐步形成,旧单体应用的功能逐步下线,最终实现全部改造的目标。
【参考文献】
【1】洪华军,吴建波,冷文浩.一种基于微服务架构的业务系统设计与实现[J].计算机与数字工程,2018,46(1):149-154.
【2】Chris Richardson.微服务架构的设计模式[M].北京:机械工业出版社,2019.
【3】杨宇,焦丽琴.基于微服务的企业应用设计与实现[J].电子科学技术(北京),2016(5):623-625.
The Path of Micro-Service Transformation of the Guarantee System of Telecommunication Integrated Service Based on SpringCloud
LIU Bin
(China Youke Communication Technology Co.Ltd.,Fuzhou 350001,China)
【Abstract】 With the diversified development of telecommunication business,higher requirements are put forward for the guarantee system of telecommunication integrated service supported by back-end operation.The traditional single application has gradually exposed the defects of its own architecture,such as high complexity,poor scalability and single technology stack.In order to improve the disadvantages of single application, this paper proposes a micro-service architecture design scheme based on SpringCloud.The improved guarantee system of telecommunication integrated service is easier to develop,understand and maintain,and is not limited by the technology stack.
【Keywords】 SpringCloud;micro-services architecture;transformation
【中图分类号】 TP311
【文献标志码】 A
【文章编号】 1673-1069(2019)11-0090-02
【作者简介】 刘斌(1981-),男,福建福州人,工程师,从事软件工程研究。
标签:SpringCloud论文; 微服务架构论文; 改造论文; 中邮科通信技术股份有限公司论文;