本申请涉及数据处理,特别是涉及一种无状态数据标记方法、装置、电子设备及计算机可读介质。
背景技术:
1、随着互联网业务的快速发展,分布式系统已经成为现代企业架构设计的标配,而容器化已然成为了分布式系统的一种大规模使用技术。使用容器化技术可快速的完成从研发、测试、发布上线、后续的扩容、回滚等一系列软件的生命周期,此种方式固然使得整体服务的易用性、安全性有了极大的保障。
2、然而从业务的角度来看,某种服务由于业务的特性,想要获得一种有序且不重复的有状态的数据,若要获得该种特性,则会破坏无状态数据的标记的无状态特性,但想要使得业务提供可持续的、长期的、稳定的、健壮的服务似乎必须保持该种无状态特性。
技术实现思路
1、有鉴于此,本申请提出了一种无状态数据标记方法、装置、电子设备及计算机可读介质,能够保证无状态数据的标记内的容器服务在不破坏无状态特性的前提下可获取到有状态的数据。
2、本申请实施例第一方面,提供一种无状态数据标记方法,所述方法包括:
3、响应于第一容器中的第一数据的标记请求,通过ntp服务生成第一时间戳,所述第一数据为无状态数据;
4、读取redis共享内存中的第一数组结构,将所述第一时间戳作为第一标记value值存储在所述第一数组结构中,并依据所述第一标记value值生成第一标记key值;
5、将所述第一标记key值以全局变量的形式存储在所述第一容器的本地内存中,所述第一标记key值用于表示所述第一容器对应的第一数据源以及所述第一时间戳。
6、在一种实施方式中,在所述读取redis共享内存中的第一数组结构之后,还包括:
7、当所述第一数组结构为空时,将所述第一时间戳作为所述第一标记value值存储在所述第一数组结构中;
8、当所述第一数组结构存在第二标记value值时,对所述第二标记value值进行解析,得到第二时间戳,判断所述第二时间戳是否等于所述第一时间戳,将所述第一时间戳作为第一标记value值存储在所述第一数组结构中,包括:
9、当所述第二时间戳等于所述第一时间戳时,对所述第一时间戳进行更新,得到第三时间戳,将所述第三时间戳作为所述第一标记value值存储在所述第一数组结构中;
10、当所述第二时间戳不等于所述第一时间戳时,将所述第一时间戳作为所述第一标记value值存储在所述第一数组结构中;
11、其中,所述第二时间戳与第二容器的第二数据对应。
12、在一种实施方式中,所述方法还包括:
13、依据各个容器的业务服务需求配置所述各个容器的补偿时间周期;
14、在每一个所述补偿时间周期到来时,通过所述ntp服务生成第四时间戳,依据所述第四时间戳对第二数组结构中的补偿key进行更新。
15、在一种实施方式中,所述方法还包括:
16、通过所述各个容器对所述第二数组结构进行读取;
17、在第三容器的补偿key所对应的当前时间戳大于与所述第三容器对应的补偿时间周期时,确定所述第三容器故障或死亡;
18、对所述第三容器在所述第一数组结构的标记value和标记key以及所述第二数组结构的补偿key进行剔除。
19、在一种实施方式中,所述方法还包括:
20、在所述redis共享内存中申请一块可用内存;
21、在所述可用内存上创建第一数组结构和第二数组结构;
22、所述方法还包括:
23、通过所述各个容器对所述第一数组结构进行第一虚拟位置划分,得到第一虚拟位置,以及通过所述各个容器对所述第二数组结构进行第二虚拟位置划分,得到第二虚拟位置;
24、其中,所述第一虚拟位置用于区分在所述第一数组结构中的各个容器的标记value和标记key,所述第二虚拟位置用于区分在所述第二数组结构中的各个容器的补偿key。
25、在一种实施方式中,所述方法还包括:
26、当存在新增的容器或重新启动的容器时,再次对所述第一数组结构进行第一虚拟位置划分,得到第一虚拟位置,以及对所述第二数组结构进行第二虚拟位置划分,得到第二虚拟位置。
27、在一种实施方式中,所述方法还包括:
28、对所述第一标记key值进行解析,获取所述第一数据所在的第一数据源的标识信息;
29、依据所述第一数据源的标识信息与所述第一数据源的映射关系,确定所述第一数据源的地址,并获取所述第一数据。
30、本申请实施例第二方面,提供一种无状态数据标记装置,所述装置包括:
31、标记请求模块,用于响应于第一容器中的第一数据的标记请求,通过ntp服务生成第一时间戳,所述第一数据为无状态数据;
32、标记生成模块,用于读取redis共享内存中的第一数组结构,将所述第一时间戳作为第一标记value值存储在所述第一数组结构中,并依据所述第一标记value值生成第一标记key值;
33、标记存储模块,用于将所述第一标记key值以全局变量的形式存储在所述第一容器的本地内存中,所述第一标记key值用于表示所述第一容器对应的第一数据源以及所述第一时间戳。
34、本申请实施例第三方面,提供一种电子设备,包括存储器、处理器以及存储在存储器上的计算机程序,其中,所述处理器执行所述计算机程序以实现如第一方面所述的无状态数据标记方法。
35、本申请实施例第四方面,提供一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如第一方面所述的无状态数据标记方法。
36、本申请的有益效果:
37、本申请实施例提供一种无状态数据标记方法、装置、电子设备及计算机可读介质,包括:响应于第一容器中的第一数据的标记请求,通过ntp服务生成第一时间戳,所述第一数据为无状态数据,读取redis共享内存中的第一数组结构,将所述第一时间戳作为第一标记value值存储在所述第一数组结构中,并依据所述第一标记value值生成第一标记key值,将所述第一标记key值以全局变量的形式存储在所述第一容器的本地内存中,所述第一标记key值用于表示所述第一容器对应的第一数据源以及所述第一时间戳。能够保证无状态数据的标记内的容器服务在不破坏无状态特性的前提下可获取到有状态的数据。
1.一种无状态数据标记方法,其特征在于,所述方法包括:
2.根据权利要求1所述的无状态数据标记方法,其特征在于,在所述读取redis共享内存中的第一数组结构之后,还包括:
3.根据权利要求1所述的无状态数据标记方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的无状态数据标记方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的无状态数据标记方法,其特征在于,还包括:
6.根据权利要求5所述的无状态数据标记方法,其特征在于,所述方法还包括:
7.根据权利要求1-6任一项所述的无状态数据标记方法,其特征在于,所述方法还包括:
8.一种无状态数据标记装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,包括存储器、处理器以及存储在存储器上的计算机程序,其中,所述处理器执行所述计算机程序以实现如权利要求1-7中任一项所述的无状态数据标记方法。
10.一种计算机可读介质,其特征在于,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-7中任一项所述的无状态数据标记方法。