一种分布式API网关、管理方法及管理系统与流程

文档序号:12134302阅读:179来源:国知局
本发明涉及互联网领域,特别涉及一种分布式API网关、管理方法及管理系统。
背景技术
:基于互联网的应用正变得越来越普及,在这个过程中,有更多的站点将自身的资源开放给开发者来调用。对外提供的API(API,ApplicationProgrammingInterface,应用程序编程接口)调用使得站点之间的内容关联性更强,同时这些开放的平台也为用户、开发者和中小网站带来了更大的价值。为了对外提供统一的API接口,需要对开发者开放资源调用API的站点提供开放统一的API接口环境,来帮助使用者访问站点的功能和资源。现有技术中,分布式API网关是一种常见的使用方式,给开发者提供注册API路由信息功能。API网关通过核心的路由转发功能成为后端服务的统一入口,将服务以API的形式安全的开放给各类用户、应用等,采用多个路由装置在存储装置与用户客户端之间相连,能够实现并行运算,网络扩展性好,初始配置要求少,部署速度快,而且分布式网关是流量转发路径最优,但随之带来的问题是,当其中一个用户发送API修改请求后,只能修改相应的路由装置和API数据库,难以保证其他设备的API被更新,因此无法保证数据的一致性。技术实现要素:有鉴于此,本发明的目的在于提供一种分布式API网关管理方法,以保证数据的一致性。其具体方案如下:一种分布式网关API管理方法,包括:接收用户终端通过分布式网关中的目标路由装置转发的目标API修改请求,并修改API数据库中的目标API,记录修改痕迹,其中,所述目标路由装置当接收到用户终端发送的目标API修改请求,则修改自身缓存有的目标API;利用所述修改痕迹,生成目标API修改通知;向所述分布式网关中其余的路由装置发送所述目标API修改通知,以使其余的路由装置利用所述目标API修改通知,修改自身缓存的目标API。优选的,所述分布式网关中的路由装置缓存的目标API获得过程,包括:接收所述用户终端通过所述目标路由装置转发的目标API调用请求,将所述API数据库中的目标API发送给所述目标路由装置。优选的,所述修改API数据库中的目标API的过程,包括:修改所述API数据库中的目标API,记录修改痕迹,得到第一修改日志。优选的,所述向所述分布式网关中其余的路由装置发送所述目标API修改通知后,还包括:接收其余的路由装置发送的修改结果,并记录在第二修改日志中;利用所述第二修改日志,判断是否修改成功;如果未成功,则继续发送所述目标API修改通知直至修改成功。优选的,所述利用所述修改痕迹,生成目标API修改通知的过程包括:利用所述第一修改日志,生成对应的key-value,得到目标key-value;按照预设的周期,定期监测key-value数据库;当监测到所述key-value数据库中已添加所述目标key-value,则生成包括所述目标key-value的所述目标API通知。本发明还公开了一种分布式网关API管理系统,包括:请求接收模块,用于接收用户终端通过分布式网关中的目标路由装置转发的目标API修改请求,其中,所述目标路由装置当接收到用户终端发送的目标API修改请求,则修改自身缓存有的目标API;API修改模块,用于修改API数据库中的目标API,记录修改痕迹;通知生成模块,用于利用所述修改痕迹,生成目标API修改通知;第一通知发送模块,用于向所述分布式网关中其余的路由装置发送所述目标API修改通知,以使其余的路由装置利用所述目标API修改通知,修改自身缓存的目标API。优选的,所述API修改模块具体用于修改所述API数据库中的目标API,记录修改痕迹,得到第一修改日志。优选的,还包括:结果接收模块,用于接收其余的路由装置发送的修改结果,并记录在第二修改日志中;修改判断模块,用于利用所述第二修改日志,判断是否修改成功;第二通知发送模块,用于如果未成功,则继续发送所述目标API修改通知直至修改成功。优选的,所述第一通知生成模块包括:key-value生成单元,用于利用所述第一修改日志,生成对应的key-value,得到目标key-value;key-value数据库监测单元,用于按照预设的周期,定期监测key-value数据库;通知生成单元,用于当监测到所述key-value数据库中已添加所述目标key-value,则生成包括所述目标key-value的所述目标API通知。本发明进一步公开了一种分布式API网关,包括前述的分布式API网关管理系统。本发明中,分布式API网关管理方法,包括:接收用户终端通过分布式网关中的目标路由装置转发的目标API修改请求,并修改API数据库中的目标API,记录修改痕迹,其中,目标路由装置当接收到用户终端发送的目标API修改请求,则修改自身缓存有的目标API;利用修改痕迹,生成目标API修改通知;向分布式网关中其余的路由装置发送目标API修改通知,以使其余的路由装置利用目标API修改通知,修改自身缓存的目标API。可见,本发明在接收到用户终端的修改请求后,不仅修改与用户终端相应的路由装置中的目标API和API数据库中的目标API,还利用API数据库修改目标API时,记录的修改痕迹,向其余的路由装置发送目标API修改通知,使得其余的路由装置利用目标API修改通知,修改自身缓存的目标API,因此,保证了分布式网关中每个路由装置中的API都能够一致,解决了数据一致性的问题。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本发明实施例提供的一种分布式API网关管理方法流程示意图;图2为本发明实施例提供的一种RestAPI在路由装置中的缓存形式示意图;图3为本发明实施例提供的另一种分布式API网关管理方法流程示意图;图4为本发明实施例提供的一种分布式API网关管理系统结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例公开了一种分布式网关API管理方法,参见图1所示,该方法包括:步骤S11:接收用户终端通过分布式网关中的目标路由装置转发的目标API修改请求,并修改API数据库中的目标API,记录修改痕迹。具体的,与分布式网关连接的用户通过用户终端,向分布式网关中的一个目标路由装置发送目标API修改请求,由于目标路由装置中预先缓存有目标API,所以目标路由装置当接收到用户终端发送的目标API修改请求,则利用目标API修改请求中相应的修改内容,修改自身缓存有的目标API,同时,将用户发送的目标API修改请求转发给服务器,服务器接收到目标API修改请求后,利用目标API修改请求中相应的修改内容,修改API数据库中的目标API,且服务器记录下修改痕迹。其中,为了保证用户调用API时,能够快速的将API发送给用户,以达到近实时转发的效果,使路由装置中预先缓存API,路由装置中缓存的API,是在路由装置第一次启动后,接收到用户对API的调用或修改请求后,向服务器中的API数据库发送API获取请求,服务器接收到获取请求后,将API发送给路由装置,路由装置缓存从API数据库中获取的API。步骤S12:利用修改痕迹,生成目标API修改通知。具体的,修改痕迹中,记录着修改目标API时的各种数据变动,能够利用修改痕迹修改API,因此利用修改痕迹,生成相应的目标API修改通知,使得能够根据修改通知对API进行修改。步骤S13:向分布式网关中其余的路由装置发送目标API修改通知,以使其余的路由装置利用目标API修改通知,修改自身缓存的目标API。具体的,服务器生成目标API修改通知后,为保证各路由装置中目标API的一致性,向分布式网关中其余的路由装置发送目标API修改通知,以使其余的路由装置利用目标API修改通知,修改自身缓存的目标API,使得用户对一个路由装置发送修改请求后,使全网关中的路由装置中的API均进行了相应的修改。可见,本发明在接收到用户终端的修改请求后,不仅修改与用户终端相应的路由装置中的目标API和API数据库中的目标API,还利用API数据库修改目标API时,记录的修改痕迹,向其余的路由装置发送目标API修改通知,使得其余的路由装置利用目标API修改通知,修改自身缓存的目标API,因此,保证了分布式网关中每个路由装置中的API都能够一致,解决了数据一致性的问题。可以理解的是,本发明中的分布式网关可以是在Restful架构下构建的,API为RestAPI,参见图2所示,在路由装置中的缓存形式可以为:RestAPIUrl:http://localhost:8888/serv1/a/b/cGEThttp://localhost:8888/serv1/a/b/dGEThttp://localhost:8888/serv1/b/c/dGEThttp://localhost:8888/serv1/b/c/dPOSThttp://localhost:8888/serv2/a/b/cPOST其中,API数据库中的RestAPI保存形式可以为:http://localhost:8888/serv1/a/b/cGEThttp://localhost:8888/serv2/a/b/dPOSTRestAPI文本记录方式如表1所示:表1idservurlactionenable1serv1a/b/cGETtrue2serv2a/b/dPOSTfalse在实际应用中,路由装置可能会收到用户终端发送的不合理请求、错误信息和无用信息等垃圾信息,因此可以预先设置过滤信息表,将垃圾信息的类型记录在过滤信息表中,当路由装置再次接收到过滤信息表中记录的垃圾信息,则不进行响应,并且还可以返回给用户终端错误提示;可以使用socket、http长连接或者RPC协议接收服务器发送的各类信息。本发明实施例公开了一种具体的分布式网关管理方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图3所示,具体的:步骤S21:接收用户终端通过分布式网关中的目标路由装置转发的目标API修改请求,修改API数据库中的目标API,记录修改痕迹,得到第一修改日志。具体的,API数据库修改目标API后,以修改日志的形式记录修改痕迹,得到第一修改日志,其中修改日志的记录形式可以如表2所示:表2步骤S22:利用第一修改日志,生成对应的key-value,得到目标key-value。具体的,利用第一修改日志中记录的key-value内容,生成对应的key-value,得到目标key-value,目标key-value中保存有修改目标API的信息。例如:更新通知消息体:删除通知消息体:插入通知消息体:步骤S23:按照预设的周期,定期监测key-value数据库。具体的,服务器长期保存有key-value数据库,以防止再对路由装置进行修改时,未能接收到路由装置返回的信息,而重新进行修改等不必要的错误,当对路由装置进行修改时,需要将利用修改日志生成的key-value存储到key-value数据库中,因此,可以按照预设的周期,定期监测key-value数据库或实时监测key-value数据库中的key-value变动,当监测到key-value数据库发生变动,则进入步骤S24。其中,按照预设的周期,定期监测key-value数据库,可以将周期设定为每分钟进行一次监测,当监测到当前key-value数据库与前一分钟key-value数据库发生改变,则进入步骤S24。步骤S24:当监测到key-value数据库中已添加目标key-value,则生成包括目标key-value的目标API通知。当监测到key-value数据库中已添加目标key-value,则生成目标API修改通知,该修改通知中包含目标key-value,以用来使路由装置利用目标API修改通知修改自身缓存的API。步骤S25:接收其余的路由装置发送的修改结果,并记录在第二修改日志中。具体的,服务器发送目标API修改通知后,还可以接收其余的路由装置发送的修改结果,修改结果为已成功修改API或未成功修改API,服务器将路由装置发送的修改结果保存在第二修改日志中。步骤S26:利用第二修改日志,判断是否修改成功。步骤S27:如果未成功,则继续发送目标API修改通知直至修改成功。具体的,如果利用第二修改日志,判断路由装置未能成功修改自身缓存的API,则服务器继续发送目标API修改通知直至路由装置返回的修改结果判定为修改成功。需要说明的是,目标路由装置在接收用户的修改请求时,对自身API进行修改后,也可以发送修改结果到服务器,服务器将目标路由装置的修改结果与其余的路由装置的修改结果集中进行判断,如果目标路由装置的修改结果为未成功,则向目标路由装置发送目标API修改通知直至目标路由装置返回的修改结果判定为修改成功。相应的,本发明实施例还公开了一种分布式网关管理系统,参见图4所示,该系统包括:请求接收模块11,用于接收用户终端通过分布式网关中的目标路由装置转发的目标API修改请求,其中,目标路由装置当接收到用户终端发送的目标API修改请求,则修改自身缓存有的目标API;API修改模块12,用于修改API数据库中的目标API,记录修改痕迹;通知生成模块13,用于利用修改痕迹,生成目标API修改通知;第一通知发送模块14,用于向分布式网关中其余的路由装置发送目标API修改通知,以使其余的路由装置利用目标API修改通知,修改自身缓存的目标API。具体的,上述API修改模块12具体用于修改API数据库中的目标API,记录修改痕迹,得到第一修改日志。上述第一通知生成模块13包括key-value生成单元、监测key-value数据库单元和通知生成单元;其中,key-value生成单元,用于利用第一修改日志,生成对应的key-value,得到目标key-value;key-value数据库监测单元,用于按照预设的周期,监测key-value数据库;通知生成单元,用于当监测到key-value数据库中已添加目标key-value,则生成包括目标key-value的目标API通知。其中,请求接收模块11也可以用来接收用户终端通过目标路由装置转发的目标API调用请求;第一通知发送模块14可以将API数据库中的目标API发送给目标路由装置。在本发明实施例的一种应用情况下,还可以包括:结果接收模块,用于接收其余的路由装置发送的修改结果,并记录在第二修改日志中;修改判断模块,用于利用第二修改日志,判断是否修改成功;第二通知发送模块,用于如果未成功,则继续发送目标API修改通知直至修改成功。另外,本发明还公开了一种分布式API网关,包括前述实施例中公开的一种分布式网关系统。关于该分布式API网关的具体构造可参考前述实施例的相关内容,在此不再赘述。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。以上对本发明所提供的一种分布式API网关、管理方法及管理系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1