[发明专利]一种微服务路由及管理系统有效
申请号: | 202110953312.4 | 申请日: | 2021-08-19 |
公开(公告)号: | CN113726662B | 公开(公告)日: | 2023-02-10 |
发明(设计)人: | 闫文 | 申请(专利权)人: | 成都民航西南凯亚有限责任公司 |
主分类号: | H04L45/02 | 分类号: | H04L45/02;H04L45/74;G06F16/2455 |
代理公司: | 成都诚中致达专利代理有限公司 51280 | 代理人: | 曹宇杰 |
地址: | 610095 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 微服 路由 管理 系统 | ||
一种微服务路由及管理系统,包括:微服务上报组件,用于对应用的启动进行监听,并在监听到应用启动时将微服务映射路径、微服务访问类型、微服务内容统一解析并封装为统一对象,并将对象上报;路由管理组件,用于提供暴露接口接收来自上报的对象,获取对象中的信息,根据获取的信息生成路由定义信息,并将路由定义信息存入Redis;网关组件,用于从Redis获取路由定义信息,并根据路由定义信息,生成路由以刷新路由,并更新到本地二级缓存中;本地二级缓存,用于缓存网关组件生成的路由,并用于在Redis不可用时,直接向gateway路由定位器提供用于加载的路由。与程序轻耦合,可插拔,解决服务注册、路由管理,能高效灵活的实现路由服务局部动态刷新问题。
技术领域
本发明属于计算机技术领域,尤其涉及一种微服务路由及管理系统。
背景技术
随着分布式项目的不断开发,微服务越来越多,各个微服务的接口也越来越多,调用越来越复杂。对这些接口的访问和一些功能,比如权限控制、流量控制、访问日志等,都需要统一网关来进行控制;而引入网关最基础的功能就是路由控制。由人工来控制这些路由显然是不合理的,这就需要开发可插拔的、可复用的、支持扩展的组件以提供这种支持,从而实现微服务路由的自动上报、集中管理、动态路由等功能。
目前,这方面的组件/插件存在以下缺陷:
1、不够组件化,如果有一处改动,代价比较大,且无法复用到其他项目;
2、实际业务中,路由刷新应该是少部分接口的操作,不会涉及到太多接口,这部分目前没有考虑按照微服务的分组模式来划分,以使得只要刷新就全部删除;并且网关服务一般是多实例运行,就意味着每次都要刷新路由,即使是刷新一两个,而每个网关实例都会把Redis中的路由信息全部删掉,然后再重建,显然没必要;
3、有些场景中路由操作依赖MQ的可靠性,经常会出现路由商店刷新路由,网关无响应的情况;
4、网关组件强依赖Redis,直接从Redis中加载路由,没有中间缓存,一旦Redis不可用,所有的路由将获取失败,将会对业务造成灾难性后果。
发明内容
针对上述相关现有技术不足,本发明提供一种微服务路由及管理系统,与程序轻耦合,可插拔,解决服务注册、路由,能高效灵活的实现路由服务局部动态刷新问题。
为了实现本发明的目的,拟采用以下方案:
一种微服务路由及管理系统,其特征在于,包括:
微服务上报组件,用于对应用的启动进行监听,并在监听到应用启动时将微服务映射路径、微服务访问类型、微服务内容统一解析并封装为统一对象,并将对象上报;
路由管理组件,用于提供一个暴露接口接收来自各个微服务上报组件上报的对象,并通过调用业务逻辑对上报的对象进行持久化处理,并用于通过服务刷新或全部刷新以获取对象中的信息,并根据获取的信息生成路由定义信息,并将路由定义信息存入Redis数据库;
网关组件,用于从Redis数据库获取路由定义信息,并根据路由定义信息,生成路由以刷新路由,并更新到本地二级缓存中;
本地二级缓存,用于缓存网关组件生成的路由,并用于在Redis数据库不可用时,直接向gateway路由定位器提供用于加载的路由;
所述Redis数据库连接至gateway路由定位器,Redis数据库订阅topic以从gateway路由定位器获取路由刷新事件并经常存储,以供网关组件获取。
网关组件,还用于根据预设时间间隔对服务存储介质进行扫描,以对服务存储介质中服务路由信息进行同步,通过识别是否新增服务,将路由信息和具体应用对应的服务信息数据进行封装,并对应更新到本地的缓存介质中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都民航西南凯亚有限责任公司,未经成都民航西南凯亚有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110953312.4/2.html,转载请声明来源钻瓜专利网。