一种跨集群服务的路由方法以及装置与流程

文档序号:12739669阅读:253来源:国知局
一种跨集群服务的路由方法以及装置与流程

本发明涉及一种路由方法以及装置,尤其涉及跨集群服务的路由方法以及装置。



背景技术:

在现有的面向服务的体系结构(SOA)服务治理方案中,分布调用框架中为了针对数据量的不断提升会采用集群部署的方式来进行系统的扩展。对于集群的扩展目前的技术主要是在NGINX(一种高性能的服务器)这一层来配置处理请求到不同的TOMCAT(一种免费的开放源代码的应用服务器)来达到可以路由的功能。

面对高并发、大数据量的网站以及大型的企业级应用系统,通过搭建集群的方式来分担流量,提高数据存储量是一种比较好的解决方案,是通过对集群的NGINX层编写路由的方法,通过某一特征来进行路由到不同的TOMCAT上,达到集群路由的目的。

图5为表示现有技术中的跨集群路由的流程图。目前采用的方法是在NGINX层来根据路由规则路由到不同集群的TOMCAT中,再通过集群内部的服务请求调用服务来达到跨集群路由的目的。

当本系统需要对外提供WEBSERVICE(一种独立的、低耦合的、自包含的、基于可编程的应用程序)服务,或者提供一些接口服务给其它系统调用的时候,这些请求会不经过NGINX和TOMCAT而直接通过服务的形式来进行调用。即在现有的路由方法以及装置中,存在以下的问题:(1)如果需要发布接口给外部调用的时候,没有办法来实现路由;(2)如果发布的是WEBSERVICE服务的时候同样没有办法来实现路由。这时候现有的技术方案就不能解决上述问题,需要重新考虑一种方案来解决以上的问题。



技术实现要素:

本申请发明正是基于上述技术问题而提出的,其目的在于提供一种能够解决当跨集群的系统需要对外提供WEBSERVICE服务,或者提供一些接口服务给其它系统调用的时候,现有技术没有办法进行处理的服务的路由问题的跨集群服务的路由方法以及装置。

根据本发明的一个方面的跨集群服务的路由方法,包括:接收从外部系统发出的调用本系统的服务的命令;配置路由表并写入到数据库路由表中,同时将数据库路由表存入缓存器中;定义需要路由的接口,并提供路由的方法,决定需要路由的接口的参数和需要路由的数据的参数;根据所决定的需要路由的接口的参数和需要路由的数据的参数建立一个路由中心服务,并注册所有需要路由的接口;在路由中心服务中调用路由的方法,从数据库路由表中找到需要调用的对应的集群组;和根据所找到的需要调用的对应的集群组得到对应集群组的服务的别名,调用相关的集群组内部的服务来实现路由。

根据本发明的一个方面的跨集群服务的路由方法,还包括:在每次调用时进行调用的监控和数据统计。

根据本发明的一个方面的跨集群服务的路由方法,还包括:判断调用服务是否成功;如果调用服务成功,则将调用服务成功的信息返回到外部系统。

根据本发明的一个方面的跨集群服务的路由方法,在调用服务中,采用服务应用程序编程接口的方式来调用相关的集群组内部的服务。

根据本发明的一个方面的跨集群服务的路由方法,在数据库路由表中配置数据与集群组相对应的关系。

根据本发明一个方面的跨集群服务的路由方法,对应集群组的服务的别名是用来区分不同的集群的。

根据本发明的一个方面的跨集群服务的路由装置,包括:接收调用服务的命令单元,接收从外部系统发出的调用本系统的服务的命令;配置路由表单元,配置路由表并写入到数据库路由表中,同时将数据库路由表存入缓存器中;决定参数单元,定义路由的接口,并确定路由的方法,决定需要路由的接口的参数和需要路由的数据的参数;建立路由中心服务单 元,根据所决定的需要路由的接口的参数和需要路由的数据的参数建立一个路由中心服务,并注册所有需要路由的接口;接口的路由实现单元,调用路由的方法,从数据库路由表中找到需要调用的对应的集群组;和调用服务单元,根据所找到的需要调用的对应的集群组得到对应集群组的服务的别名,调用相关的集群组内部的服务来实现路由。

根据本发明的一个方面的跨集群服务的路由装置,还包括:监控和数据统计的单元,在每次调用时进行调用的监控和数据统计。

根据本发明的一个方面的跨集群服务的路由装置,还包括:判断调用成功的单元,判断调用服务是否成功;和返回信息单元,如果调用服务成功,则将调用服务成功的信息返回到外部系统。

根据本发明的一个方面的跨集群服务的路由装置,在调用服务单元中,采用服务应用程序编程接口的方式来调用相关的集群组内部的服务。

根据本发明的一个方面的跨集群服务的路由装置,在数据库路由表中配置数据与集群组相对应的关系。

根据本发明的一个方面的跨集群服务的路由装置,对应集群组的服务的别名是用来区分集群的。

综上所述,本申请发明通过添加一层路由层,将需要路由的接口在路由层有个路由的实现,然后把该路由的实现发布为外部需要调用的接口。通过路由层来去调用集群内的服务达到路由的目的。本申请发明的跨集群服务的路由方法以及装置,能够在外部系统调用本系统的服务的情况下,实现跨集群的服务路由功能,对外提供标准一致的接口,并且可以对路由的接口进行监控服务的调用情况。

附图说明

图1是表示本申请发明的跨集群路由方法的整体流程示意图。

图2是表示本申请发明的跨集群路由方法的流程图。

图3是表示本申请发明的数据库路由表的具体配置的例子。

图4是表示本申请发明的跨集群路由装置的整体示意图。

图5是表示现有技术的系统内部的跨集群路由方法的整体流程示意图。

具体实施方式

以下参照附图对本申请发明的实施方式进行说明。

图1是表示本申请发明的跨集群路由方法的整体示意图。为了便于说明,以两个集群组、两个应用以及两个应用服务器(例如目前应该较为广泛的TOMCAT等)为例,当然本申请发明也可以适用于两个以上的集群组、应用以及应用服务器的情况。

如图1所示,首先,从作为需要从外部调用本系统的服务的外部系统发出调用本系统的服务的命令,这里的服务可以是接口服务,也可以是WEBSERVICE服务,或者是两者兼有的服务,本系统接收从外部系统发出的调用本系统的服务的命令。

接着,对调用服务的命令进行响应,在运维端配置路由表,并将该路由表写入到数据库路由表中。写入到数据库路由表中的路由配置内容作为路由规则被同时存储于缓存器(例如Redis)中进行缓存。关于数据库路由表的路由配置的具体内容如图3的示例所示,具体地规定了数据与集群组号之间的对应关系,例如数据A与集群组1相对应,数据B与集群组2相对应。当然数据库路由表中的路由配置并不限于以上的例子,可以根据具体的情况设置两个以上或者与上述例子不同的对应关系。

然后,在运维端根据路由表的配置定义需要路由的接口,即规定需要路由的接口,并确定路由的方法(例如在为订单接口的情况下,是进行接受订单的路由还是取消订单的路由),决定需要路由的接口的参数和需要路由的数据的参数,例如传入库房号:001到第一个集群,传入库房号002到第二个集群。

然后,根据上述所决定的需要路由的接口的参数和需要路由的数据的参数,建立一个路由中心服务,注册所有需要路由的接口。在这个路由中心服务中实现需要路由的接口的服务,具体地来说调用之前所确定的路由的方法,根据上述的需要路由的数据的参数,按照数据库路由表中的数据与集群组号之间的对应关系找到需要调用的对应的集群组。

接下来,根据所找到的需要调用的对应的集群组得到对应集群的服务的别名(例如别名:cluster1,cluster2等),调用相关的集群组内部的服 务来实现路由,例如可以采用服务应用程序编程接口(API)的方式来调用相关的集群组内部的服务来实现路由。

通过以上的步骤,图1中的路由服务中心中的应用1和应用2分别通过路由服务调用到两个集群组中的两个对应的应用1和应用2的服务。

此外,在每次进行服务调用的时候,可以进行调用的监控和数据统计,具体地来说对调用的情况进行监控(例如监控调用方法的时间以及调用的次数等,调用方法的时间例如为10毫秒,调用的次数例如为1分钟400次),并对调用的数据进行统计(例如统计某个方法的调用次数,例如统计结果为1天的某个方法的调用次数为1300次,其中15次调用失败,20次有调用延迟等)。

最后,根据调用的监控情况和数据统计结构判断调用服务是否成功,如果调用服务成功,则将调用成功信息返回到外部系统,如果调用服务没有成功则返回到步骤S2,反复上述的步骤。

从而,通过本实施方式的跨集群路由的方法,建立了多集群的应用架构部署,在外系统请求调用本系统的服务的时候,通过路由服务对外发布和集群接口相同的服务。当请求到路由服务的时候,根据路由规则调用大集群内应用的服务达到调用服务的功能,集群内服务接口接受调用后业务处理,从而实现了外部系统的跨集群路由。

在此,上述实施方式仅是为了说明本发明的一个示例,虽然例示的是两个集群组、两个应用以及两个应用服务器(例如目前应该较为广泛的TOMCAT等),但不局限于此,可以为任意数目。此外,作为缓存器例示的是Redis,但不局限于此,实际上可以是任意的缓存器。

以下,针对本发明的实施方式的跨集群路由方法的各个步骤进行详细说明。

图2是表示本申请发明的跨集群路由方法的流程图。

首先,外部系统发出调用本系统的服务的命令,本系统接收从外部系统发出的调用本系统的服务的命令(步骤S1),接到该命令之后,执行配置路由表步骤S2。具体而言,在运维端配置路由表并写入到数据库路由表中,同时将数据库路由表存入到缓存器中进行缓存。

接下来,执行决定参数步骤S3,具体而言,根据路由表的配置定义需 要路由的接口,并提供路由的方法,决定需要路由的接口的参数和需要路由的数据的参数。

接下来,执行建立路由中心服务步骤S4,根据所决定的需要路由的接口的参数和需要路由的数据的参数建立一个路由中心服务,并注册所有需要路由的接口。

接下来,执行接口的路由实现步骤S5,在路由中心服务中调用路由的方法,从数据库路由表中找到需要调用的对应的集群组。

接下来,执行调用服务步骤S6,根据所找到的需要调用的对应的集群组得到对应集群组的服务的别名,调用相关的集群组内部的服务来实现路由。

接下来,在每次调用中可以进行调用的监控和数据统计(步骤S7)。

接下来,根据监控的情况和数据统计的结果来判断调用是否成功(步骤S8),如果判断为调用成功,则将调用成功的信息发送到外部系统(步骤S9)。如果调用失败,则返回到步骤S2。

此外,本实施方式的上述技术方案虽然按照上述的步骤顺序来进行,但毋容置疑,当然也可以以与上述不同的步骤顺序来执行。另外,本实施方式的上述技术方案虽然是以步骤流程的方式进行说明的,但毋容置疑,上述技术方案同样可以通过硬件结构来实现。

图3是本发明的实施方式的跨集群服务的路由装置的功能框图。

如图3所示,本实施方式的跨集群服务的路由装置100包括:接收调用服务的命令单元101;配置路由表单元102;决定参数单元103;建立路由中心服务单元104;接口的路由实现单元105以及调用服务单元106。

首先,接收调用服务的命令单元101接收从外部系统发出的调用本系统的服务的命令之后,配置路由表单元102执行配置路由表,具体而言,在运维端配置路由表并写入到数据库路由表中,同时将数据库路由表存入到缓存器中进行缓存。接下来,决定参数单元103根据路由表的配置定义需要路由的接口,并提供路由的方法,决定需要路由的接口的参数和需要路由的数据的参数。

接下来,建立路由中心服务单元104根据所决定的需要路由的接口的参数和需要路由的数据的参数建立一个路由中心服务,并注册所有需要路 由的接口。

接下来,接口的路由实现单元105中,具体实现的接口需要继承路由的接口,在路由中心服务中调用路由的方法,从数据库路由表中找到需要调用的对应的集群组。

接下来,调用服务单元106,根据所找到的需要调用的对应的集群组得到对应集群组的服务的别名,调用相关的集群组内部的服务来实现路由。

这样,本实施方式的跨集群服务的路由装置也能够同样获得与采用上述跨集群服务的路由方法所获得的技术效果相同的技术效果。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1