一种K8s环境下基于grpc的缓存同步实现方法及系统技术方案

技术编号:36566145 阅读:21 留言:0更新日期:2023-02-04 17:22
本发明专利技术涉及云计算技术领域,具体为一种K8s环境下基于grpc的缓存同步实现方法包括以下步骤:节点对应K8s环境中一个Deployment或StatefulSet所管理的每一个Pod;节点之间进行缓存更新的同步;获取到集群中所有节点的IP后,对节点信息进行整理,并保存到节点的内存中;选用grpc作为集群内节点间通信的方式进行缓存;有益效果为:本发明专利技术提出的K8s环境下基于grpc的缓存同步实现方法及系统相对于普通的内存缓存方式,该发明专利技术能使多副本程序内存中的缓存得到实时更新,有效解决缓存数据不一致的问题,同时不依赖外部缓存系统。同时不依赖外部缓存系统。同时不依赖外部缓存系统。

【技术实现步骤摘要】
一种K8s环境下基于grpc的缓存同步实现方法及系统


[0001]本专利技术涉及云计算
,具体为一种K8s环境下基于grpc的缓存同步实现方法及系统。

技术介绍

[0002]在K8s环境下,程序通常以多副本的方式运行,每个副本运行相同的代码。同时,在许多业务场景下,需要通过缓存提高程序的响应速度与执行效率。
[0003]现有技术中,如果程序以多副本的方式运行,且将缓存存放于内存中,当其中一个副本中的缓存发生改变时,其他副本的缓存无法及时更新,在缓存失效前的短暂时间内,可能会导致数据不一致的情况发生,进而导致程序的行为出现问题。因此,在K8s环境下,人们通常会使用Redis等外部缓存系统来解决缓存不一致的问题。
[0004]但是,当环境资源紧缺需要尽量减少业务系统以外的组件时,或者希望程序依赖更少的外部组件以减少出错的可能性时,人们通常会选择继续将缓存存放于内存中,并通过缩短缓存失效时间等措施减少缓存不一致的情况发生,但并不能做到完全杜绝,因此不得不提示用户进行等待,直到缓存过期后数据恢复正常。并且,缓存失效时间设置地过短也本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种K8s环境下基于grpc的缓存同步实现方法,其特征在于,该方法包括以下步骤:节点对应K8s环境中一个Deployment或StatefulSet所管理的每一个Pod;节点之间进行缓存更新的同步;获取到集群中所有节点的IP后,对节点信息进行整理,并保存到节点的内存中;选用grpc作为集群内节点间通信的方式进行缓存。2.根据权利要求1所述的一种K8s环境下基于grpc的缓存同步实现方法,其特征在于:节点之间进行缓存更新的同步时,采用K8s apiserver,该方案为程序添加如下配置项:Pod标签:值为该程序部署时所指定的K8s Pod标签;Pod UID:通过K8s提供的Downward API获取Pod自身的UID;在程序运行时,以Pod标签为筛选条件,调用K8s apiserver提供的Restful接口,查询处于运行状态下的所有Pod,获取其IP地址,Pod UID用于判别查询到的Pod是否为自身。3.根据权利要求1所述的一种K8s环境下基于grpc的缓存同步实现方法,其特征在于:节点之间进行缓存更新的同步时,采用K8s headless service;首先,为程序添加如下配置项:Pod自身IP:通过K8s提供的Downward API获取Pod自身的IP;然后,为程序创建headless service用于节点间通信,通过将service的ClusterIP设置为None,即可将其转换为headless service,需要注意,该headless service仅用于集群间通信,不对外提供服务;在程序运行时,对headless service的域名进行DNS解析,获取Pod IP列表,“Pod自身IP”配置项用于判别查询到的Pod是否为自身。4.根据权利要求1所述的一种K8s环境下基于grpc的缓存同步实现方法,其特征在于:节点信息包括以下内容:节点IP:通过集群感知机制获取;端口号:节点间通信所使用的端口号,可使用固定端口号,或从配置文件读取;是否为自身节点:通过“Pod UID”或“Pod自身IP”判别该节点是否为自身节点;其中,当节点为自身节点时,直接通过程序内部的方法调用进行缓存更新,否则通过grpc进行远程更新。5.根据权利要求1所述的一种K8s环境下基于grpc的缓存同步实现方法,其特征在于:缓存的操作分为以下步骤:a)从数据库中读取数据,并存放于缓存中;b)当缓存中存在所需数据时,读取缓存,否则读取数据库,并将其存放于缓存中;c)执行业务逻辑,数据发生变化,更新数据库,同时更新缓存。这里的数据变化包括创建新数据、更新已有数据、删除已有数据;d)超过过期时间后,数据被标记为过期,无法再被读取。6.一种如上述权利要求1

5任意一项所述的K8s环境下基于grpc的缓存同步实现系统,其...

【专利技术属性】
技术研发人员:张兆林张宏原张建伟赵山
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1