一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于容器的监控实时数据缓存系统及方法与流程

2022-03-01 22:16:25 来源:中国专利 TAG:

技术特征:
1.一种基于容器的监控实时数据缓存系统,其特征在于,包括zk集群、监听/控制节点、迁移队列节点、客户端模块、k8s集群、redis集群、存储节点、热点数据节点:zk集群,主要用于管理redis集群信息和热点数据节点信息;监听/控制节点,用于接收、处理zk集群通知的信息并依据策略自动生成对应的迁移任务,以及向redis集群、k8s集群下发控制命令并执行迁移任务;迁移队列节点,存储监听/控制节点生成的迁移任务信息;客户端模块,用于缓存路由表、热点数据记录信息,依据策略读写数据;k8s集群,用于提供若干基于docker技术生成的容器节点,并接受监听/控制节点下发的命令执行节点管理;redis集群,接受监听/控制节点下发的命令执行节点管理,向存储节点写入缓存;存储节点,用于在本地部署缓存数据,并刷新数据到磁盘;热点数据节点,用于存储关键字信息,供客户端模块读写操作。2.根据权利要求1所述的一种基于容器的监控实时数据缓存系统,其特征在于,所述zk集群、监听/控制节点、迁移队列节点和redis集群由基于docker技术生成的容器节点组成。3.根据权利要求1所述的一种基于容器的监控实时数据缓存系统,其特征在于,所述k8s集群的组成包括至少一台物理机。4.根据权利要求1所述的一种基于容器的监控实时数据缓存系统,其特征在于,所述存储节点为物理节点。5.根据权利要求1所述的一种基于容器的监控实时数据缓存系统,其特征在于,所述监听/控制节点部署有zk客户端、mq客户端、redis客户端、监听模块和控制模块;所述zk集群部署有zk服务;所述迁移队列节点部署mq消息中间件;所述redis集群采用clusetr部署模式;所述热点数据节点部署redis服务、zk客户端;所述客户端模块部署zk客户端、redis客户端。6.一种基于容器的监控实时数据缓存方法,其特征在于,包括如下步骤:启动系统,k8s集群基于docker技术预生成若干容器节点;zk集群统一管理信息数据,所述信息数据包括热点数据节点的元数据信息、路由表信息、热点数据记录信息以及redis集群的元数据信息、路由表信息、负载、槽负载、热点数据信息;监听/控制节点读取zk集群发送的数据,根据数据信息执行策略,自动生成对应的迁移任务,存储在迁移队列节点中,并向redis集群节点、k8s集群节点下发控制命令、执行迁移任务并及时更新zk集群信息;客户端模块从zk集群获取路由表信息、热点数据记录信息,依据一定策略向各节点读写数据;redis集群节点负责向存储节点写入缓存、定时刷新数据到磁盘。7.根据权利要求6所述的一种基于容器的监控实时数据缓存方法,其特征在于,所述监听/控制节点由基于docker技术生成的容器节点组成,部署有zk客户端、mq客户端、redis客户端、监听模块和控制模块;所述zk集群由基于docker技术生成的容器节点组成,部署有zk服务;所述迁移队列节点由基于docker技术生成的容器节点组成,部署mq消息中间件;
所述redis集群采用clusetr部署模式,包括基于docker技术生成的容器节点组成的容器服务节点队列km、ks,所述km为集群主节点,部署redis服务、zk客户端,所述ks为km对应的备节点,用于同步km数据,部署redis服务、agent代理;所述热点数据节点包括基于docker技术生成的容器节点组成的容器服务节点队列kh,部署redis服务、zk客户端;客户端模块部署zk客户端、redis客户端。8.根据权利要求6或7所述的一种基于容器的监控实时数据缓存方法,其特征在于,所述redis集群节点元数据和热点数据节点元数据均包括:节点唯一标识(uuid)、地址(host)、端口(port)、集群标识(cluster),角色(role)、关联备节点(rel)、节点访问频次(freq),t
span
时间内该节点访问频次(q),状态(status);路由信息表记录redis集群节点路由信息,包括:槽号(slots)、主机(host)、端口(port),节点槽访问频次(freqs),t
span
时间内的该节点槽访问频次(qs);热点数据记录信息包括:关键字(key)、主机(host)、端口(port)。9.根据权利要求8所述的一种基于容器的监控实时数据缓存方法,其特征在于,所述监听/控制节点读取zk集群发送的数据,根据数据信息执行策略,自动生成对应的迁移任务,并向redis集群节点、k8s集群节点下发控制命令、执行迁移任务并及时更新zk集群信息的步骤包括:系统启动,设置时间段t
span
时间段t
task
,每隔t
span
触发监听/控制节点读取zk集群信息,统计q
i
和q
i
s
j
,所述q
i
表示t
span
时间内km上i节点的访问频次,所述q
i
s
j
表示t
span
时间内km上i节点下j槽的访问频次;计时器每隔t
task
触发监听/控制节点统计q
i
节点,并执行自动任务生成,其中t
span
<t
task
;当q
i
>d2,则对q
i
s
j
做升序排列保存为q1,q2,...,q
m
,遍历q1,q2,...,q
m
中的各数据q
c
,统计的个数qcount,当qcount<u,则生成热点任务:从k8s获取新的容器节点服务kh,并生成新节点,若新节点中不存在该关键字,则将热点数据复制到新节点;否则生成扩容任务:从k8s获取新的容器节点服务km、ks,使km、ks以主备模式加入redis集群节点,选取满足条件的槽号向量,迁移对应槽到km节点,更新zk集群信息,所述d2表示第一阈值参数,β表示调节参数,u表示第一设定值,其中,0<β<1,1≤c≤m,m为i节点下的槽数,表示对q1,q2,...,q
m
中所有数据求和,当q
i
<d1,若cluster=0且rel指向i节点的节点存在,则生成删除该节点任务:k8s回收该节点,修改zk集群信息,修改热点数据记录;若cluster=0且rel指向i节点的节点不存在且redis集群节点大于第二设定值,则生成迁移任务:将该节点上的槽数据迁移到访问频次最低的节点,删除并通过k8s回收该节点,所述d1表示第二阈值参数,且d
1<
d2;当d1≤q
i
≤d2,若s2>g,则生成换算任务:换算出需要迁移的槽号及所在的节点的信息,迁移该节点下槽数据到对应的剩余节点中,所述g表示第三阈值参数,其中n为集群km个数。
10.根据权利要求9所述的一种基于容器的监控实时数据缓存方法,其特征在于,所述扩容任务中,选取满足条件的槽号向量的方法包括:迭代计算其中1≤j≤m,当acc≥η,0<η<1,通过[q1,q2,...,q
j
]换算出对应的槽号向量[s
v1
,...,s
vj
],其中s
v1
表示槽号为sv1,表示对q1,q2,...,q
m
中前j个数据进行求和。11.根据权利要求9所述的一种基于容器的监控实时数据缓存方法,其特征在于,所述换算任务中换算出需要迁移的槽号及所在的节点的方法包括:将km各节点的q
i
降序排列,记为p1,p2,...,p
n
,依次迭代计算通过[p1,p2,...,p
j
]换算出对应的节点序列n
v1
,...,n
vj
,其中1≤j≤n,当acc1≥80%,表示对p1,p2,...,p
n
中所有数据求和,表示对p1,p2,...,p
n
中前j个数据进行求和;将所有槽的q
i
s
j
升序排列,记为q1,q2,...,q
m
,其中节点m表示n
v1
,...,n
vj
节点上所有槽的个数,依次迭代计算其中1≤s≤m,当acc2≥40%,通过[q1,q2,...,q
s
]换算出需要迁移的槽号及所在的节点的信息n
a
s
t
,n
a
s
t
表示a节点上的t槽号,表示对q1,q2,...,q
m
中所有数据进行求和,表示对q1,q2,...,q
m
中前s个数据进行求和。12.根据权利要求11所述的一种基于容器的监控实时数据缓存方法,其特征在于,所述迁移该节点下槽数据到对应的剩余节点中的方法包括:剩余节点序列记为n
k
,对n
k
节点的q
i
做升序排列,并记为l1,...,l
e
,迁移a节点上的槽s
t
到主机host(a1),其中a1=l
(tmode) 1
,e表示剩余节点序列n
k
中节点的个数。13.根据权利要求9所述的一种基于容器的监控实时数据缓存方法,其特征在于,还包括遍历zk集群目录下的status节点,若zk集群目录下的status节点已删除,则生成该节点宕机任务。14.根据权利要求6所述的一种基于容器的监控实时数据缓存方法,其特征在于,所述客户端模块从zk集群获取路由表信息、热点数据记录信息,依据一定策略向各节点读写数据的步骤包括:客户端读操作,若关键字在热点数据记录表中,客户端依据均衡散列的方式依次从kh节点,km节点读取数据,若关键字不在,计算槽号并通过路由表获取主机km信息,从该主机读取数据;客户端写操作,若关键字在热点数据记录表中,客户端写热点数据节点kh,同时通过路由表写集群节点km,若关键字不在,则查询路由表写集群km节点;客户端实时更新km的节点的访问频次和槽访问频次。
15.根据权利要求6所述的一种基于容器的监控实时数据缓存方法,其特征在于,redis集群节点负责向存储节点写入缓存、定时刷新数据到磁盘的步骤包括:redis集群节点的ks节点通过代理将数据写入存储节点的本地缓存ecache中,所述ecache采用map结构存储kv数据,所述ecache数据定时刷新到磁盘中。

技术总结
本发明公开了一种基于容器的监控实时数据缓存系统及方法,该方法包括,启动系统,K8s集群预生成若干容器节点和基于docker的容器服务节点队列;Zk集群统一管理信息数据,所述信息数据包括节点元数据、路由表信息、热点数据记录信息;监听/控制节点读取Zk集群发送的数据,根据数据信息执行策略,自动生成对应的迁移任务,并向Redis集群节点、K8s集群节点下发控制命令、执行迁移任务并及时更新Zk信息;客户端模块从Zk集群获取路由表信息、热点数据记录信息,依据一定策略向各节点读写数据;Redis集群节点负责向存储节点写入缓存、定时刷新数据到磁盘。本发明解决了现有技术中实时数据缓存效率低,可靠性差的问题。可靠性差的问题。可靠性差的问题。


技术研发人员:狄颖琪 陈莉莉 郝明明 胡波
受保护的技术使用者:国电南瑞科技股份有限公司
技术研发日:2021.10.11
技术公布日:2022/2/28
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献