[发明专利]一种在微服务架构下实现全局有序重演的方法有效
申请号: | 201710384544.6 | 申请日: | 2017-05-26 |
公开(公告)号: | CN107181805B | 公开(公告)日: | 2019-11-12 |
发明(设计)人: | 朱立;王泊;孙增;徐丹;张涛;甘张生;叶婧;黄俊杰 | 申请(专利权)人: | 上交所技术有限责任公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04J3/06;G06F9/54 |
代理公司: | 上海三方专利事务所(普通合伙) 31127 | 代理人: | 吴玮;李美立 |
地址: | 200131 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 微服 架构 实现 全局 有序 重演 方法 | ||
1.一种在微服务架构下实现全局有序重演的方法,所述的微服务和微服务之间通过消息中间件进行通信,其特征在于在消息中间件上实现逻辑时钟算法,所述的逻辑时钟算法同时参考本机物理时钟和消息传递的因果时序,在应用软件层和消息中间件之间设有逻辑时钟层,作为逻辑时钟和逻辑时间戳的维护逻辑,在每个节点的逻辑时钟层内部都维护一个二元组形式的逻辑时钟{T,C},其中T和C初始化均为0,每条传递的消息m都携带两个二元组{T,C}格式的逻辑时间戳ts(m)和tr(m):其中,ts(m)对应m的发送,tr(m)对应m的接收,两个逻辑时间戳之间的比较规则是:先看T分量哪个大;若相等则再看C分量哪个大,具体步骤包括:
a.当节点i是单机微服务,应用软件向逻辑时钟层Pi提交待发消息m时:
1)Pi调整自身逻辑时钟{Ti,Ci}如下:
T=max{Pi本地物理时钟,Ti};
如果T>Ti则Ti=T,Ci=0;
否则,Ti保持不变,Ci=Ci+1;
2)设置m携带的发送逻辑时间戳,ts(m)={Ti,Ci},并记录日志;
3)向消息中间件提交消息m;
b.当节点j是单机微服务,逻辑时钟层从消息中间件收到消息m时:
1)调整自身逻辑时钟{Tj,Cj}如下:
T=max{Tj,Pj本地物理时钟,ts(m).T},其中,ts(m).T是指ts(m)的T分量;
如果T>Tj且T>ts(m).T,则Tj=T,Cj=0;
否则Tj=T,Cj=max{Cj,ts(m).C}+1;
2)设置m携带的接收逻辑时间戳,tr(m)={Tj,Cj},并记录日志;
3)向应用层投递消息m;
c.当集群i的应用软件向逻辑时钟层Pi提交待发消息m时:
1)Pi调整自身逻辑时钟{Ti,Ci};
Ti不变,Ci=Ci+1,使集群全部主机的逻辑时钟一致;
2)设置m携带的发送逻辑时间戳,ts(m)={Ti,Ci},并记录日志;
3)集群主节点向消息中间件提交消息m;
d.当集群j主节点的逻辑时钟层从消息中间件收取消息m时:
1)调整自身逻辑时钟
T=max{Tj,Pj本地物理时钟,ts(m).T};
如果T>Tj且T>ts(m).T则Tj=T,Cj=0;
否则Tj=T,Cj=max{Cj,ts(m).C}+1;
2)设置m携带的接收逻辑时间戳,tr(m)={Tj,Cj},并记录日志;
3)利用RAFT等原子组播协议通过消息中间件将m可靠传送给从节点后,向应用层投递消息m;
e.当集群j从节点的逻辑时钟层收到主节点送来的消息m时:
1)自身逻辑时钟=tr(m),并记录日志;
2)向应用层投递消息m;
读取系统中每个微服务的日志,把日志项按逻辑时钟排序,即可将排序后的日志项按因果顺序单步重演整个系统中的消息收发事件,逻辑时钟的T分量和事件的物理时间相接近,易于按指定倍速进行重演。
2.如权利要求1所述的一种在微服务架构下实现全局有序重演的方法,其特征在于所述的重演方法适用的微服务包括单机和高可用集群,当使用高可用集群时,所述的微服务是基于有唯一主节点的共识算法构建的,在一个集群内部,主节点从多个输入消息中间件读取消息后排序,自己按此顺序处理消息,而其他节点会从主节点处获得排序后的消息,然后按同样的顺序处理。
3.如权利要求1所述的一种在微服务架构下实现全局有序重演的方法,其特征在于节点内收发事件的逻辑时间戳单调递增,消息接收逻辑时间戳大于其发送的逻辑时间戳,从而保存了系统内部的因果序,且逻辑时间戳的T分量能用于反映物理时间。
4.如权利要求1所述的一种在微服务架构下实现全局有序重演的方法,其特征在于为了确保产生的逻辑时间戳构成一个全序,引入节点ID/集群ID作为逻辑时间戳的第三个分量,每个集群发出消息时,在逻辑时间戳的ID分量上填上自身ID,此时逻辑时间戳的比较规则是:先看T分量哪个大,若相等则再看C分量哪个大,若还相等则再看ID分量哪个大。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上交所技术有限责任公司,未经上交所技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710384544.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种可变印刷包装膜
- 下一篇:一种易撕高阻隔食品包装膜