本发明涉及缓存代理系统领域,尤其涉及一种通用数据缓存代理方法及系统,
背景技术:
1、所谓缓存代理指的是在使用方与数据缓存系统之间增加一层透明代理(proxy),当调用方访问缓存系统的时候实际上请求是先发送到缓存代理,代理经过一系列处理之后请求才会转发到实际背后的缓存系统。
2、缓存代理一般都是为了特定目的而存在的,比如为了解决缓存系统横向扩展、屏蔽相同协议下的不同缓存系统实现、缓存系统故障转移等问题;目前业内的缓存代理基本都是为了解决低级别,特定的问题而实现,因此,大多都存在如下缺点:1.协议不具有通用性,只适配支持某一特定协议的缓存实现;2.缺乏更高层面审计、鉴权能力;3.缺乏全面的统计、监控能力;4.缺乏后端缓存实时动态伸缩、故障切换能力;上述这些缺点给大数据量高并发场景使用缓存系统带来稳定性、可运维、可用性挑战,往往需要花费更多的资源从其他方面入手,通过折中方案具体解决部分问题,但无法从根本解决问题。
技术实现思路
1、有鉴于此,本发明从更高层视角出发,提出一种通用数据缓存代理方法系统,旨在从整体设计角度入手,克服传统代理视角局限问题,提供一种通用的、功能强大的代理方案,具体采用以下技术方案来实现。
2、第一方面,本发明提供了一种通用数据缓存代理方法,包括以下步骤:
3、获取客户端发送的请求信息,并对所述请求信息进行解析得到所述请求信息对应的缓存访问命令;
4、根据所述缓存访问命令选择对应的命令处理器进行处理,判断所述请求信息的命名空间存在于已注册命名空间库,且所述请求信息的发起请求服务存在于命名空间客户端服务集合,所述命令处理器解析所述请求信息的缓存访问命令内容;
5、根据所述缓存访问命令内容构造内部抽象缓存请求,并根据所述内部抽象缓存请求埋点采集缓存请求信息以进行热点访问分析;
6、使用数据源实体根据所述请求信息的命名空间经过hash算法确定所述数据源实体的命名空间路由信息以选择对应的后端数据源实体;
7、所述后端数据源实体使用所述内部缓存请求访问实际后端缓存系统以得到返回结果,根据所述返回结果埋点收集所述请求信息的命名空间、发起请求服务、缓存访问命令和请求处理耗时信息并进行请求分析得到响应信息以完成通用数据缓存代理。
8、作为上述技术方案的优选,使用数据源实体根据所述请求信息的命名空间经过hash算法确定所述数据源实体的命名空间路由信息以选择对应的后端数据源实体,包括:
9、s31:监听命名空间配置、后端数据源访问配置是否发生变化,其中,所述命名空间配置包括定义注册命名空间、可用访问访问命名空间客户端服务集合和命名空间到后端缓存系统路由关系,所述后端数据源访问配置包括每个后端数据源的具体访问配置;
10、s32:若所述后端数据源访问配置未发生变化,则执行s33;若所述后端数据源访问配置发生变化,则执行s34;
11、s33:使用当前数据源实体的后端缓存系统实例作为待构造数据源实体的后端缓存系统实例;
12、s34:根据新的后端数据源访问配置构造并初始化后端缓存系统实例以作为所述待构造数据源实体的后端缓存系统实例。
13、作为上述技术方案的优选,使用数据源实体根据所述请求信息的命名空间经过hash算法确定所述数据源实体的命名空间路由信息以选择对应的后端数据源实体,还包括:
14、s35:判断所述命名空间配置是否发生变化,若是,则执行s37;否则执行s36:
15、s36:使用当前数据源实体的命名空间路由信息作为所述待构造数据源实体的命名空间路由信息,执行s38;
16、s37:根据新的命名空间配置构造命名空间路由信息并作为所述待构造数据源实体的命名空间路由信息;
17、s38:根据所述待构造数据源实体的后端缓存系统实例和所述待构造数据源实体的命名空间路由信息构造新的数据源实体,并替换当前在使用的数据源实体。
18、作为上述技术方案的优选,每个后端数据源的具体访问配置包括访问url、用户名、密码和协议版本。
19、作为上述技术方案的优选,所述命名空间配用于对客户端的缓存资源抽象描述,通过命名空间对所述缓存资源进行逻辑概念的边界定义,以解耦客户端和后端缓存系统。
20、作为上述技术方案的优选,采用通用通信协议数据结构实现所述客户端和后端缓存系统的解耦,其中,通用通信协议用于客户端与代理系统的通信。
21、作为上述技术方案的优选,所述通用通信协议数据结构用于缓存请求的认证、授权、访问许可、后端缓存系统故障转移、动态横向扩展、缓存流量复制或流量监控中的至少一种。
22、作为上述技术方案的优选,获取客户端发送的请求信息,并对所述请求信息进行解析得到所述请求信息对应的缓存访问命令,包括:
23、客户端构造请求信息并序列化所述请求信息;
24、将序列化后的请求信息进行发送。
25、作为上述技术方案的优选,所述请求信息包括命名空间、发起请求服务、缓存访问命令和缓存访问命令内容,所述响应信息包括响应码、响应消息和响应结果。
26、第二方面,本发明还提供了一种通用数据缓存代理系统,包括:
27、请求获取单元,用于获取客户端发送的请求信息,并对所述请求信息进行解析得到所述请求信息对应的缓存访问命令;
28、信息判断单元,用于根据所述缓存访问命令选择对应的命令处理器进行处理,判断所述请求信息的命名空间存在于已注册命名空间库,且所述请求信息的发起请求服务存在于命名空间客户端服务集合,所述命令处理器解析所述请求信息的缓存访问命令内容;
29、请求构造单元,用于根据所述缓存访问命令内容构造内部抽象缓存请求,并根据所述内部抽象缓存请求埋点采集缓存请求信息以进行热点访问分析;
30、实体选择单元,用于使用数据源实体根据所述请求信息的命名空间经过hash算法确定所述数据源实体的命名空间路由信息以选择对应的后端数据源实体;
31、请求分析单元,用于所述后端数据源实体使用所述内部缓存请求访问实际后端缓存系统以得到返回结果,根据所述返回结果埋点收集所述请求信息的命名空间、发起请求服务、缓存访问命令和请求处理耗时信息并进行请求分析得到响应信息以完成通用数据缓存代理。
32、本发明提供了一种通用数据缓存代理方法及系统,通过获取客户端发送的请求信息,并对请求信息进行解析得到请求信息对应的缓存访问命令,根据缓存访问命令选择对应的命令处理器进行处理,判断请求信息的命名空间存在于已注册命名空间库,且请求信息的发起请求服务存在于命名空间客户端服务集合,命令处理器解析请求信息的缓存访问命令内容,根据缓存访问命令内容构造内部抽象缓存请求,并根据内部抽象缓存请求埋点采集缓存请求信息以进行热点访问分析,使用数据源实体根据请求信息的命名空间经过hash算法确定数据源实体的命名空间路由信息以选择对应的后端数据源实体,后端数据源实体使用内部缓存请求访问实际后端缓存系统以得到返回结果,根据返回结果埋点收集请求信息的命名空间、发起请求服务、缓存访问命令和请求处理耗时信息并进行请求分析得到响应信息以完成通用数据缓存代理,解决了传统代理视角局限问题,扩大了通用数据缓存代理范围,也提升了数据缓存代理的可靠性。
1.一种通用数据缓存代理方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的通用数据缓存代理方法,其特征在于,使用数据源实体根据所述请求信息的命名空间经过hash算法确定所述数据源实体的命名空间路由信息以选择对应的后端数据源实体,包括:
3.根据权利要求2所述的通用数据缓存代理方法,其特征在于,还包括:
4.根据权利要求2所述的通用数据缓存代理方法,其特征在于,每个后端数据源的具体访问配置包括访问url、用户名、密码和协议版本。
5.根据权利要求2所述的通用数据缓存代理方法,其特征在于,所述命名空间配用于对客户端的缓存资源抽象描述,通过命名空间对所述缓存资源进行逻辑概念的边界定义,以解耦客户端和后端缓存系统。
6.根据权利要求5所述的通用数据缓存代理方法,其特征在于,采用通用通信协议数据结构实现所述客户端和后端缓存系统的解耦,其中,通用通信协议用于客户端与代理系统的通信。
7.根据权利要求6所述的通用数据缓存代理方法,其特征在于,所述通用通信协议数据结构用于缓存请求的认证、授权、访问许可、后端缓存系统故障转移、动态横向扩展、缓存流量复制或流量监控中的至少一种。
8.根据权利要求1所述的通用数据缓存代理方法,其特征在于,获取客户端发送的请求信息,并对所述请求信息进行解析得到所述请求信息对应的缓存访问命令,包括:
9.根据权利要求1所述的通用数据缓存代理方法,其特征在于,所述请求信息包括命名空间、发起请求服务、缓存访问命令和缓存访问命令内容,所述响应信息包括响应码、响应消息和响应结果。
10.一种根据权利要求1-9任一项所述的通用数据缓存代理方法的通用数据缓存代理系统,其特征在于,包括:
