一种基于分布式鲁棒增强微服务系统架构的方法与流程

文档序号:33147782发布日期:2023-02-03 22:08阅读:48来源:国知局
一种基于分布式鲁棒增强微服务系统架构的方法与流程

1.本发明涉及公交调度业务技术处理领域,具体是一种基于分布式鲁棒增强微服务系统架构的方法。


背景技术:

2.当前,在公交调度的应用中,通常会采用分布式的架构系统,来对调度业务进行管理。但是现有的公交调度系统架构主要为各系统单独设计,相互独立,部署方式比较单一,没有集群部署,调度系统逻辑较多,相互牵涉相互关联,有时会出现一个服务出现问题带来整个系统的灾难。目前从业务设计等方面都无法满足当前需求。存在着系统稳定性不高、调度高度依赖数据库,数据库中断导致业务崩溃、调度和通讯高度耦合、调度业务数据全部在内存里存储,如果业务重启了,导致内存数据全部丢失、数字智能化支撑程度不高等问题。此外,目前软件系统只能部署在单一系统之上,跨平台部署是一大难题;目前系统扩展性不足,不能很好的支持app、电脑、平板等设备的应用。


技术实现要素:

3.本发明的目的在于提供一种基于分布式鲁棒增强微服务系统架构的方法,采用分布式微服务架构,提高系统稳定性,对业务系统进行解耦,将通讯、数据库、推送、mq、存储服务进行解耦;对业务逻辑进行梳理、清洗、拆分成多个服务,相互采用消息总线进行数据传输;以解决上述背景技术中提出的问题。
4.为实现上述目的,本发明提供如下技术方案:一种基于分布式鲁棒增强微服务系统架构的方法,将垂直的软件架构设计为分布式架构与微服务相结合的系统架构,独立的服务改动不会影响其他业务逻辑代码,并且能够单独升级,提高了整体系统的鲁棒性;将复杂的耦合度较高的单体应用中处理业务逻辑或者业务流程拆分成不同功能的服务,这些服务组成一个整体的微服务系统,服务与服务之间利用认证中心进行身份识别,通过消息总线进行数据交互,通过统一的日志中心记录不同级别的日志,通过统一的链路监控服务进行管理链路是否正常;认证中心,是整个平台帐号和权限管控的基础,由此构建的系统称为uims,负责架构访问统一身份认证,通过用户口令和权限进行控制访问;身份认证之后,http请求到网关api,网关用来保护、增强和控制对于微服务的访问;消息平台,允许不同的服务彼此通信而不彼此了解;注册中心记录了服务和服务地址的映射关系;在分布式架构中,服务会注册到注册中心,当服务需要调用其它服务时,就到注册中心找到服务的地址,进行调用;监控中心则是监控微服务系统运行情况、微服务之间通讯过程耗时情况、链路是否正常、服务器资源负载情况;
日志管理系统则是通过各个服务记录系统相关的日志,来分析微服务各系统之间运行是否有异常,通过日志能够定位服务内部或者服务之间调用的异常,从而更好的维护微服务;通过缓存中心,能够把用户身份认证信息缓存起来,微服务在身份认证的过程中,直接从缓存中获得数据。
5.进一步的:所述平台下所有系统的账户管理、身份认证、用户授权、权限控制等行为都经由uims处理,提供包括帐号密码管理、基本资料管理、角色权限管理的功能。
6.进一步的:所述网关是一个处于应用程序或服务之前的系统,用来管理授权、访问控制和流量限制,因此微服务就会被微服务网关保护起来,对所有的调用者透明;隐藏在微服务网关后面的业务系统就能够更加专注于业务本身。
7.进一步的:所述消息平台中,服务能够将事件发送到事件总线,而无需知道是谁来接听或有多少其他人来接听;服务也能够侦听事件总线上的事件,而无需知道谁发送了事件;这样,服务能够相互通信而无需相互依赖;同样,很容易替换一个服务;只要新服务了解正在发送和接收的事件,其他服务就永远不会知道。
8.进一步的:所述微服务中各服务产生的业务数据,也能存入缓存中心,方便进行海量数据处理,从而避免关系型数据库性能问题。
9.进一步的:调度中的业务逻辑,拆分成的服务有修改发车指令、跨线营运、单趟次调换驾驶员和车辆、刷卡换车、匀点、匹配计划。
10.再进一步的:微服务系统中的服务交互处理方法,具体如下:调度员登陆调度终端时请求认证中心服务,认证中心返回相应的权限信息;信息包括调度员权限下的线路信息、站点信息、车辆信息;并且在调度过程中,每次请求后端服务接口,都会带身份信息,以便后端服务进行身份识别,只有通过身份识别的请求才会正确返回数据;用户层通过统一的restful api进行访问后端服务,用户层包括电脑调度终端、手机app、小程序,通过统一的身份认证中心进行管理;认证中心通过用户的请求认证之后,http请求进入统一的api网关层;调度终端请求接口,由网关服务统一对外开放接口,网关服务通过配置寻找微服务内部不同功能对应的服务,组装好前端期望的数据,返回到相应的客户端,这样调度终端只需要配置一个网络地址,就可以请求接口进行数据交互。
11.与现有技术相比,本发明的分布式微服务架构,提高了系统稳定性;对业务系统进行解耦,避免一个服务出现问题带来灾难;将业务逻辑进行梳理、清洗、拆分成多个服务,相互采用消息总线进行数据传输。
12.本发明通过通用的服务发现和注册,可以将多个服务串联起来,各服务只关注业务逻辑即可;通过通用的网关,可以解决api不统一的问题;通过配置中心,可以解决动态修改程序执行状态;通过链路监控,可以及时发现各服务之间互相调用的状态,方便跟踪和排查故障;统一的日志中心,记录系统运行状态、api交互记录、系统错误日志。
附图说明
13.图1为本发明方法的系统整体架构示意图。
14.图2为本发明方法实施例中的一种架构业务层面整体设计图。
15.图3为本发明方法中微服务内部架构示意图。
16.图4为本发明方法中认证中心的认证流程示意图。
17.图5为本发明方法中网关服务的结构示意图。
18.图6为本发明方法中服务监控和日志管理结构示意图。
19.图7为本发明实施例中的一种整体架构设计图。
具体实施方式
20.下面结合具体实施方式对本专利的技术方案作进一步详细地说明。
21.一种基于分布式鲁棒增强微服务系统架构的方法,对传统的单体应用进行重新设计,将垂直的软件架构设计为分布式架构与微服务相结合的系统架构,独立的服务改动不会影响其他业务逻辑代码,并且可以单独升级,提高了整体系统的鲁棒性。整体系统可部署在windows server或linux系统上。
22.系统整体呈现是基于web进行实现,支持多种前端ui框架整合及自定义开发;数据由应用服务提供,统一通过“网关api”提供服务。架构支持通过网络层、应用层的负载均衡中间件等,实现高可用和并发处理能力。架构将一些基础公共功能抽离构建成中间件。
23.本发明方法中,将复杂的耦合度较高的单体应用中处理业务逻辑或者业务流程拆分成不同功能的服务,这些服务组成一个整体的微服务系统,服务与服务之间利用认证中心进行身份识别,通过消息总线进行数据交互,通过统一的日志中心记录不同级别的日志,通过统一的链路监控服务进行管理链路是否正常;认证中心是整个平台帐号和权限管控的基础,由此构建的系统称为uims(unified identity management system),平台下所有系统的账户管理、身份认证、用户授权、权限控制等行为都经由 uims 处理,提供帐号密码管理、基本资料管理、角色权限管理等功能。
24.身份认证之后,http请求到网关api,网关是微服务架构中的一个关键的角色,用来保护、增强和控制对于微服务的访问。网关是一个处于应用程序或服务之前的系统,用来管理授权、访问控制和流量限制等,这样微服务就会被微服务网关保护起来,对所有的调用者透明。因此,隐藏在微服务网关后面的业务系统就可以更加专注于业务本身。同时,微服务网关还可以为服务提供和沉淀更多附加功能。
25.消息平台是一种机制,它允许不同的服务彼此通信而不彼此了解。服务可以将事件发送到eventbus(事件总线),而无需知道是谁来接听或有多少其他人来接听。服务也可以侦听eventbus上的事件,而无需知道谁发送了事件。这样,服务可以相互通信而无需相互依赖。同样,很容易替换一个服务。只要新服务了解正在发送和接收的事件,其他服务就永远不会知道。
26.在微服务中为了实现服务和服务之间的相互通信,注册中心可以说是微服务架构中的“通讯录”,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。而监控中心则是监控微服务系统运行情况、微服务之间通讯过程耗时情况,链路是否正常,服务器资源(机器的cpu、内存、磁盘、i/o、网络等资源)负载情况等。
27.日志管理系统则是通过各个服务记录系统相关的日志,来分析微服务各系统之间
运行是否有异常,通过日志可以定位服务内部或者服务之间调用的异常,从而更好的维护微服务。
28.微服务在运行过程中,产生大量甚至海量数据,传统的关系型数据库是不能满足一定量级的数据处理的,通过缓存中心,可以把用户身份认证信息缓存起来,微服务在身份认证的过程中,直接从缓存中获得数据。微服务中各服务产生的业务数据,也可以存入缓存中心,方便进行海量数据处理,从而避免关系型数据库性能问题。
29.请参阅图1-7,一种基于分布式鲁棒增强微服务系统架构的方法,包括业务层面整体设计和技术层面整体设计。
30.(一)业务层面整体设计如图2所示,系统架构基于soa架构设计思想,并且采用微服务架构方式进行设计和构建。将系统服务和数据进行分离。架构大致分为四层:用户层、业务层(业务应用和业务服务)、数据层、平台支撑层。
31.1、用户层包括电脑、app、手机小程序等。
32.2、业务层包括业务应用层和业务服务层,业务应用层包括服务内部的管理页面,平台的展示页面,和调度业务相关的调度前、调度中、调度后产生的各种数据交互等。业务服务层包括各种调度相关的服务,例如调度逻辑服务、线网优化服务、驾驶员监控检测服务、时刻表排班服务等。
33.3、数据存储,主要包括缓存、关系型数据库、时序数据库等,缓存主要做海量数据临时存储,关系型数据库主要做数据持久化,调度前、调度中、调度后的大量数据存入关系型数据库,以便供后期为报表呈现、决策分析、预测等提供原始数据。
34.4、平台支撑层,包括操作系统、防火墙、容器化部署、负载均衡等。
35.(二)技术层面整体设计整体架构如图1所示,系统整体呈现是基于web进行实现,支持多种前端ui框架整合及自定义开发;数据由应用服务提供,统一通过“网关api”提供服务。架构支持通过网络层、应用层的负载均衡中间件等,实现高可用和并发处理能力。架构将一些基础公共功能抽离构建成中间件。
36.本发明方法中,将原来的复杂的耦合度较高的单体应用中处理业务逻辑或者业务流程拆分成不同功能的服务,针对调度前排班可拆成单独的服务,调度中的业务逻辑(如图3所示),例如修改发车指令、跨线营运、单趟次调换驾驶员和车辆、刷卡换车,匀点,匹配计划等拆分成不同的服务;这些服务组成一个整体的微服务系统,服务与服务之间利用认证中心进行身份识别,通过消息总线进行数据交互,通过统一的日志中心记录不同级别的日志,通过统一的链路监控服务进行管理链路是否正常。
37.为实现上述目的,本发明方法提供了微服务架构的服务交互处理方法,此方法包括:如图4所示,调度员登陆调度终端时请求认证中心服务,认证中心返回相应的权限信息。
38.信息包括调度员权限下的线路信息、站点信息、车辆信息等;并且在调度过程中,每次请求后端服务接口,都会带身份信息,以便后端服务进行身份识别,只有通过身份识别的请求才会正确返回数据,这样就可以过滤一些外部的随意访问,给系统增加安全隐患,如
果未授权的访问,则认证中心会返回“401 未授权”,如果已经授权,则返回“200 请求成功”。
39.用户层通过统一的restful api进行访问后端服务,用户层包括电脑调度终端、手机app、小程序等,通过统一的身份认证中心进行管理,认证中心负责架构访问统一身份认证,在设计认证中心时引入了令牌桶算法。通过用户口令和权限进行控制访问,实现单点登录。
40.认证中心结合“网关api”实现安全访问、限流等功能,同时实现页面管理功能。
41.认证中心通过用户的请求认证之后,http请求进入统一的api网关层。
42.如图5所示,网关是基于http协议、以restful方式提供统一服务接口,约定接口通信协议,支持系统呈现的功能,以轻量级的通信方式,满足不同客户端。网关接口(api)实现统一数据访问权限控制、路由应用服务、限流等功能。为了实现网关层负载均衡,利用了最小活跃数算法,此算法会判断机器目前的连接数,连接数少的就会接收更多的请求进行处理。根据图3所示,调度终端请求接口,由网关服务统一对外开放接口,网关服务通过配置寻找微服务内部不同功能对应的服务,组装好前端期望的数据,返回到相应的客户端,这样调度终端只需要配置一个网络地址,就可以请求接口进行数据交互。
43.服务通过数据分发,请求不同的服务api(接口)实现数据交互。各业务服务通过统一的服务注册监控中心来保持统一调度,通过http webapi进行通讯,为了保证数据准确性,框架里利用了服务监控中心进行链路监控,确保每一次数据交互都准确无误,通过接口监控,资源监控等来实现分布式部署,其中请求量,响应时间,错误率等是重要指标。
44.微服务通过统一的日志中心进行不同级别的日志记录,以便事后分析系统故障或者操作失误。
45.为了监控cpu利用率、内存使用量、i/o读写量、网卡带宽等数据在微服务架构里设计了服务的监控中心,此中心负责应用服务注册发布登记,同时监控应用服务接口运行情况,支持动态控制应用服务接收请求,实现“去软件中心化”服务控制。组件实现服务注册登记、监控等功能。
46.为了解决中心的可扩展性,健壮性,利用raft算法。raft算法通过选举得到一个领导者(leader),架构里各个业务服务接入监控中心,有leader向各个服务返回执行结果,从而保证了服务监控的目的。
47.在各个服务日常运行过程中,会出现等级不同的信息需要记录,在微服务里增加了日志中心,其负责记录系统日志,提供服务接口和组件,业务代码通过异步方式将日志信息传输到“消息平台”,日志管理系统订阅“消息平台”的日志信息进行处理存储。同时提供日志管理功能。
[0048]“消息平台”负责应用服务之间更新同步信息,将原有系统架构分布式事务调用更新信息的方式,调整为通过消息异步发布或订阅处理,保证数据最终一致性,应用服务之间降低耦合度和强依赖关系。高并发能力下,取得缓存作用。
[0049]
服务交互产生的数据量相对比较大,本发明方法结合实际调度情况数据,设计了缓存中心,利用分布式缓存技术把海量数据存入缓存中心,解决海量数据并发大,传统的关系型数据库满足不了高并发的难题,利用缓存中心把海量数据存起来,然后通过数据服务进行持久化到数据库中。
[0050]
上述微服务架构中,可以全部或者部分通过软件、硬件或者软硬件结合来实现,软件实现可以利用分布式集群部署原理进行软件程序分布式部署。硬件集群部署可以借助第三方工具进行服务器的集群部署,并且通过提升硬件配置使得服务器运算能力提升,实现软件程序高效率的效果。软硬件结合的方式则是通过增加服务器配置和软件分布式部署相结合的方式实现微服务的高可用,高效率的效果。此方法建立的架构可以灵活部署在不同的服务器上面,windows server,linux,docker均可部署。通过自动化部署工具可以一键部署,运维人员不需要考虑框架内部结构,只需要关心应用层是否正常使用即可。
[0051]
上面对本专利的较佳实施方式作了详细说明,但是本专利并不限于上述实施方式,在本领域的普通技术人员所具备的知识范围内,还可以在不脱离本专利宗旨的前提下作出各种变化。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1