基于微服务架构的应用代理中心的设计与实现

2023-11-27 13:08
机电信息 2023年22期
关键词:日志管理员客户端

王 伟

(中海油能源发展股份有限公司工程技术分公司,天津 300000)

0 引言

当前我国大力发展数字经济,推进数字产业化和产业数字化,推动数字经济和实体经济深度融合。为顺应时代发展趋势,构建数字经济国家战略框架,各行各业均在积极推进数字化转型。近年来,石油石化行业各企业正加速推进数字化转型,为此,G公司提出建设融合服务平台,优化业务流程,整合已有系统,推动实现生产经营管理一体化目标[1]。

1 系统开发概述

G公司已有信息系统呈烟囱式模式建设,核心功能重复建设问题严重,数据分散,标准不统一,很难发挥有效的数据价值。“平台化战略”为公司信息化的深入发展提供了新的解决思路[2-4]。面向公共服务的中间件,是一种能够提供可靠、高效的服务共享机制的软件。本文将平台作为公共服务能力的提供方,将各个业务系统作为服务的使用方,中间件系统将提供方的服务完成一层封装,使用方按照接口规则完成调用,实现相应业务逻辑功能。

基于实际软件系统开发需要,本文设计了一款轻量级的中间件,并基于Spring Boot完成一套后台管理控制系统的开发,实现对应用和服务的可视化管理,并将成果应用到实际业务系统的开发中[5]。图1为应用代理中心在各系统间所处的位置,即应用系统的下层、公共服务的上层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。

图1 应用代理中心在各系统间所处的位置

企业数字化转型以信息整合、统一认证、统一流程引擎、安全效率为基础。传统信息化建设方式以纵向业务为主线,一套业务一套系统的构建方式导致每套系统单独存储一套用户、组织、权限信息,系统权限回收困难,因此统一用户和统一权限的需求应运而生。

大应用为各子系统的建设提供了一系列公共服务,为了实现公共服务的快速对接,提高组件使用效率,应用代理中心作为中间层,与大应用平台提供的公共服务接口进行一次对接,并二次封装成API接口供其他客户端使用,各客户端节省了重复与公共服务接口进行对接的工作,实现了大应用与子系统间的高效联通。

微服务架构可以将应用按照业务功能拆分成多个服务,每个服务都可以独立部署和扩展,提高了系统的可维护性和可扩展性。应用代理中心可以通过负载均衡、动态路由等机制,实现对微服务的统一管理和控制,提高了系统的稳定性和安全性。应用开源的微服务框架Spring Cloud实现应用代理中心的设计和实现,可以降低开发和维护成本。

2 系统设计与实现

2.1 系统性能分析

本系统的主要功能包含管理员授权、资源管理、客户端应用管理和日志查询。管理员可以通过系统对用户进行授权管理,包括用户的角色、权限和资源等;对资源进行管理,包括微服务、API、数据库等;对客户端应用进行管理,包括应用的名称、描述、API访问权限等;对操作日志和异常日志进行查询和分析,从而发现和解决问题。

应用代理中心需要具有可伸缩性,能够根据业务需求动态扩展和缩小运行实例,以适应高并发和大流量的业务场景;具有高可靠性,能够在微服务出现故障或异常时自动切换到备用实例,保证系统的连续性和稳定性;具有高性能,能够处理大量的请求和响应,以及支持高并发的业务场景;具有可监控性,能够实时监控微服务的运行状态和性能指标,以便进行故障排查和性能优化;具有可扩展性,能够支持多种微服务框架和编程语言,以及适应不同的业务需求和场景。

2.2 系统技术实现

本系统基于Spring Cloud微服务架构,采用前后端分离模式进行系统功能开发、部署和运维[1-3]。前端采用Nginx、Vue.js开发技术,后端采用微服务网关、Spring Boot、Apache Boot、JWT、Feign技术,数据库选用Redis和Mysql。Eureka作为微服务的注册发现组件,Gateway作为网关服务,用来实现授权管理、访问控制和流量限制,是系统的唯一出口;Fegin通过Hystrix依赖,实现在微服务出现异常时及时熔断,触发调用方的异常处理流程,有效防止调用方发生异常。

2.3 数据库设计

从需求分析可以看出,本系统存在以下几个实体:

1)用户实体:用户ID、用户名、账号、密码、邮箱、电话、职务、单位名称。表1是对用户实体的表结构信息说明。

表1 用户信息表

2)公共服务资源实体:资源ID、资源名称、描述、状态、apiID、api名称、api文件、api主机地址。

3)客户端应用实体:客户端ID、名称、生效时间、应用凭证状态、应用路径、资源名称。

4)日志实体:日志ID、类型、操作用户ID、操作用户名称、操作用户IP地址、访问请求路径、访问请求参数、操作时间、操作内容。

2.4 系统功能设计

应用代理中心围绕核心目标设计四大功能,分别为管理员授权、资源管理、客户端应用管理和日志查询功能,整体应用界面如图2所示。

图2 应用代理中心应用界面

2.4.1 管理员授权模块

应用代理中心允许存在多个管理员,并支持对管理员的添加和移除操作。管理员拥有对资源增删改查的权限、对客户端管理的权限以及日志查询的权限。

2.4.2 资源管理模块

资源管理界面以列表的形式展示注册到应用代理中心的公共服务资源,管理员可以在此模块中对已发布的资源进行普通的增删改查操作,同时也可以启用、停用或在线更新资源。管理员在添加新资源时需包括七方面信息:1)名称,是资源在系统内的唯一标识(必填);2)描述,是对资源功能的简要概述;3)api名称,是对资源接口的命名;4)api文件,是对资源接口的描述文件,首次添加时需要以jar包形式发布,二次发布时,可用“api数据”空间直接上传;5)api主机,是资源发布后的地址;6)api数据,更新api文件时,仅需上传jason文件即可实时发布更新;7)激活,控制资源是否处于可用状态(默认是打开状态)。

2.4.3 客户端应用管理模块

客户端管理界面以表格的形式展示已在应用代理中心注册的客户端应用,管理员可以在此模块中对客户端进行普通的增删改查操作,同时可以为客户端配置相应的资源及应用凭证。

1)添加客户端应用,包括客户端名称和生效时间。

2)编辑客户端应用,包括编辑基础信息、编辑应用凭证、编辑资源绑定。具体如下:(1)基础信息编辑,包括名称、简介、应用、自动认证、生效时间、信任、资源和应用重定向地址8个方面;(2)应用凭证编辑,客户端拥有合法身份才能使用应用代理中心提供的接口服务,处于信任状态的客户端AppSecret为激活状态,处于非信任状态的客户端在请求资源时需携带AppSecret的value值作为凭证;(3)资源绑定编辑,客户端在使用公共资源时,只需在界面上拖拽相关资源绑定到客户端下,即可实现资源的应用。

3)删除客户端应用,允许管理员对客户端进行删除操作。

2.4.4 日志查询模块

日志查询界面以列表的形式展示当前系统记录的所有日志,提供时间和类型两个维度的检索,可以方便快速地检索出需要的日志信息。

3 应用效果

基于微服务架构开发的应用代理中心,通过对大应用提供的公共服务接口进行封装,并提供可视化的操作界面,为系统研发人员提供了快速开发的能力。对大应用无须重复向下对接,应用代理中心提供技术支持以完成公共服务的应用;对各客户端无须了解对接过程,只要直接调用应用代理中心对接后的成果即可,省去了不必要的开发工作。

随着技术升级、功能优化以及新功能的迭代,只需应用代理中心一个节点的变动,即可实现功能的快速拓展,极大地提高了开发效率及开发质量。

4 结束语

充分利用数字技术,实现与业务的深度融合,在数字化转换、数字化升级的基础上,进一步触及公司核心业务,构建新的商务模式,有利于实现高层次转型。数字化是数字化转型的重要手段,本文设计研发的应用代理中心,服务于系统研发人员,目的在于降低客户端调用公共服务的沟通成本,降低重复开发带来的成本多次投入,提高研发工作效率,提升研发人员业务专注度,助力企业数字化转型。

猜你喜欢
日志管理员客户端
我是小小午餐管理员
一名老党员的工作日志
我是图书管理员
我是图书管理员
扶贫日志
可疑的管理员
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
游学日志