APP下载

基于微服务架构的智慧党建平台设计

2021-04-25王文兵史春林杨真

电脑知识与技术 2021年9期
关键词:智慧党建微服务

王文兵 史春林 杨真

摘要:为了解决智慧党建平台系统功能复杂、开发维护成本高、可靠性和可扩展性低的问题,提出了基于微服务架构的设计方案,将系统模块功能拆分成微服务。平台采用开源的Spring Cloud微服务框架,实现了服务注册与发现、路由网关、容错处理以及负载均衡等技术,降低了系统的耦合性,提高了开发速度以及使平台部署和扩展更加灵活。该平台目前响应迅速,运行稳定,验证了基于微服务架构设计理念的有效性。

关键词:微服务;智慧党建;虚拟容器;Spring Cloud

中图分类号:TP311        文献标识码:A

文章编号:1009-3044(2021)09-0083-02

开放科学(资源服务)标识码(OSID):

近些年,随着信息化的持续进步,敏捷开发和持续交付的设计理念也在持续的更新和拓展,此外,虚拟化技术和容器(Docker)技术也越来越成熟,软件设计者越来越喜欢采用微服务架构模式进行开发设计。

目前阿里旗下的Dubbo服务化治理框架是国内最出名的微服务框架,除了阿里外,很多国内的互联网公司也在使用。Spring Cloud是国外开源的微服务框架,包含了微服务开发所必需的多个组件,是相对成熟的技术框架。

为了解决智慧党建平台建设中存在的问题,本文采用开源的Spring Cloud微服务框架,将平台中高度耦合的多个子系统拆分成多个离散的服务,多个服务可以同步开发,提高了系统的研发速度并且便于平台功能的拓展。

1建设目标

以党组织和党员等为核心,以党务监督管理和综合服务为重点,优化党务业务流程,共享党建网络服务,搭建信息化平台。上传下达,落实中央和上级的精神、政策、决议等,使党务活动更加规范,管理更加精准、高效。进一步实现动态了解党员、党组织的情况,实现“三会一课”、发展党员、主题党日等党务活动的线上开展。

2微服务架构介绍

精益、敏捷和持续交付是目前软件开发的主流思想,配合DevOps技术的快速发展,传统的单体式软件开发架构已无法适應需求的快速变化,主要存在以下问题:

1)代码维护成本高:项目中多个子系统和模块高度耦合在一起,需要修改某一功能时,会涉及其他正在运行的功能,牵一发而动全身。

2)开发效率低:开发人员在同一个项目中编写代码,提交代码时很容易引起冲突,解决起来非常麻烦。

3)部署难度大:单体式架构修改一个小功能都必须重新部署整个系统,其他正常的模块不能正常提高服务。而且,随着系统越来越复杂,部署花费的时间也更多。

4)可靠性低:出现的任何一点小问题都会让整个系统崩溃。

5)扩展能力低:由于功能模块耦合在一起,在增加新的功能时,需要对整个项目进行改动。

微服务架构是最近在软件开发领域兴起的新的软件架构,把单体架构中的各个模块拆分成多个服务,每个服务之间都是独立的,都由独立的进程运行,彼此间采用轻量级的通信协议互通(RPC、HTTP等),可独立伸缩拓展,并且每个服务都有其明确的边界,不同的服务可由独立的团队开发,也可以由不同的编程语言编写。

微服务架构相对于单体式架构,主要具备以下优势[1]:

1)复杂度可控:每个服务的业务逻辑清晰,代码量小,功能简单明了,开发和维护相对简单,可以提高开发效率。

2)独立部署:每个服务都有独立的运行进程,当需要改变某一需求时,只需要重新编译相关服务,其他服务可正常使用。

3)异构:不同的团队根据自身的优势可以选择最适合的技术栈。

4)扩展:每个服务都可以独立进行细粒度的扩展。

5)容错:系统故障被隔绝在独自的服务进程中,不影响其他服务的正常运行。

3微服务架构核心组件和关键技术

通过对微服务架构研究,其核心的功能包括服务容器、服务注册发现、服务安全、服务通信、管理接口、限流容错、序列化、日志管理和服务配置等,如图1所示。

3.1服务注册与发现

微服务把单个服务部署在Docker容器中,在运行时各个服务可能随时被销毁或克隆,所以需要一种机制去动态的发现服务,这就要求服务提供者要注册发布服务地址,注册中心管理实例地址并提供心跳检测机制,服务消费者通过注册中心查询可用的实例地址进行调用。目前主要有两种实现方案:

1)提供者服务发现

在提供者和使用者中间设置一个独立运行的负载均衡器,其中存有所有服务的地址列表。当使用者调用某个服务时,首先请求负载均衡器,负载均衡器收到请求后根据策略做负载均衡,然后将请求转发到相应的服务。此方法使用者无须维护发现逻辑,实现起来比较简单,但在负载均衡组件需要在系统中保持持续运行,而且在服务提供者和使用者之间增加了负载均衡器,增加了性能开销,容易形成单点瓶颈。

2)使用者服务发现

该方案将负载均衡器集成到了使用者服务进程内,此时所有使用者都要维护一份实例列表,该列表源自注册中心。和方案一相比,服务提供者和使用者之间直接调用,不增加开销,解决了单点瓶颈问题。

3.2路由网关

为了让不同服务对外提供统一的API地址,需要设置路由网关,我们只需要访问网关地址即可访问不同服务[2]。这样就解决了前端调用服务地址管理复杂的问题。除此之外,网关路由还要提供身份认证、权限校验、流量控制、负载均衡等功能,如图4所示。

3.3服务容错

在微服务架构中,各个服务间相互依赖,服务之间相互调用时可能会由于某个实例出现错误或响应超时等原因导致调用失败,肯定会导致系统崩溃,所以需要进行容错处理。

本系统采用Hystrix[3]微服务容错框架,其综合考虑了多种因素,包括:错误、超时、服务隔离、负载等,它把服务调用逻辑进行封装,使其运行在单独的线程中,通过资源隔离、熔断器和调用超时三方面来保障微服务的可靠性。

4 智慧党建平台框架设计

充分借鉴其他区域“互联网+党建”、智慧党建及党建信息化建设经验,利用微服务架构技术,重点突出党建区域工作特色,设计出符合省级党建业务发展和符合安全的平台架构。按“层次化设计”思路,以展现交互、业务应用、应用支撑、信息资源、基础设施为五层,党建信息安全保障、党建运维服务保障和党建标准规范为三纵的总体架构进行设计,建成一个低耦合、高内聚的党建平台,并且随时可以对其进行扩展。具体如图5所示。

5结语

本文对目前流行的微服务架构进行了介绍,并在智慧党建平台的建设中进行了应用,相对于传统的单体架构开发模式具有十分明显的优势,提高了开发效率,简化了开发难度。目前,该平台运行稳定、响应迅速、维护方便。

参考文献:

[1] 周建丁.七牛技术总监肖勤:微服务架构实践经验分享[EB/OL].(2015-08-12)[2020-04-18].http://www.csdn.net/article/2015-08-07/2825412.[2015-08-12]

[2] 郑彬彬.基于微服务的OJ系统重构与优化[D].上海:东华大学,2017.

[3] 吴磊,湛健,宋丽华.微服务架构在智能家居网关系统中的应用研究[J].计算机技术与发展,2019,29(11):200-205.

【通联编辑:代影】

猜你喜欢

智慧党建微服务
微信公众平台在医院图书馆的应用现状调查
从单一模式系统架构往微服务架构迁移转化技术研究