本技术属于数据处理,具体涉及一种ip地址管理方法、系统、装置、设备及可读存储介质。
背景技术:
1、现有技术方案主要是通过在线和离线两种方式通过网际互连协议(internetprotocol,ip)查询地理位置信息,在线方式原始数据在服务提供方,无论是访问速度还是安全性都无法和离线方式比拟,优点是数据及时性高;离线方式由于将数据直接在本地进行备份,访问速度和安全性都比在线方式强,但是数据无法得到及时更新。由于ip地理信息变动比较频繁,不及时更新的话,就无法保证解析结果的准确性。
技术实现思路
1、本技术实施例提供一种ip地址管理方法、系统、装置、设备及可读存储介质,能够解决现有ip地址管理难以兼顾数据获取效率和数据及时更新的问题。
2、第一方面,提供了一种ip地址管理方法,所述方法由本地ip地理库执行,方法包括:
3、在监听到缓存时间耗尽的情况下,向中央ip地理库发送同步请求,所述同步请求中包含:解析次数,缓存时间和版本号;
4、从中央ip地理库接收响应数据,所述响应数据中包含:补丁数据包、所述解析次数的排名(rank)值,所述缓存时间的99%分位值p99,
5、根据所述补丁数据包,更新ip地址信息;
6、根据所述rank值和所述p99,更新所述缓存时间;
7、其中,所述解析次数由与所述本地ip地理库对应的ip解析服务确定,且每当所述ip解析服务接收到解析请求时,所述ip解析服务将所述解析次数加1,所述ip解析服务和所述本地ip地理库通过k8s crd定义实现。
8、可选地,所述方法还包括:
9、在所述ip解析服务接收到解析请求的情况下,向所述ip解析服务发送ip地址信息;
10、通知所述ip解析服务将解析次数置0。
11、可选地,所述根据所述rank值和所述p99,更新所述缓存时间,包括:
12、根据所述响应数据中的rank值、step值、所述p99和当前缓存时间,计算更新后的缓存时间;
13、其中,step值为所述ip解析服务的解析次数的排名每上升或下降一个单位所需要调整的步长。
14、可选地,所述根据所述响应数据中的rank值、step值、所述p99和当前缓存时间,计算更新后的缓存时间,包括:
15、根据以下公式计算更新后的缓存时间;
16、tnew=(t+(r1-r2)×step)×(1+(t-p99)/(t×p99))
17、其中,tnew为更新后的缓存时间,t为当前缓存时间,r1为所述响应数据中的rank值,r2为所述本地ip地理库上一次向所述中央ip地理库发送同步请求时,所述中央ip地理库的响应数据中的rank值,所述t、所述r2和所述step由k8s crd维护。
18、可选地,所述方法还包括:
19、将所述r1赋值给所述r2。
20、第二方面,提供了一种ip地址管理方法,所述方法由中央ip地理库执行,方法包括:
21、从多个本地ip地理库中的目标本地ip地理库接收同步请求,所述同步请求中包含:解析次数,缓存时间和版本号;
22、计算所述解析次数在所有本地ip地理库中的rank值;
23、计算所述缓存时间在所有本地ip地理库中的p99;
24、根据所述版本号,生成补丁数据包;
25、向所述目标本地ip地理库发送响应数据,所述响应数据中包含:所述补丁数据包、所述rank值,所述p99;
26、其中,所述解析次数由与所述目标本地ip地理库对应的ip解析服务确定,且每当所述ip解析服务接收到解析请求时,所述ip解析服务将所述解析次数加1,所述ip解析服务和所述本地ip地理库通过k8s crd定义实现。
27、可选地,所述计算所述解析次数在所有本地ip地理库中的rank值,包括:
28、计算所述目标本地ip地理库的解析次数在所有本地ip地理库的解析次数中的排名r1;
29、将所述r1确定为所述解析次数在所有本地ip地理库中的rank值。
30、可选地,所述计算所述缓存时间在所有本地ip地理库中的p99,包括:
31、根据以下公式计算所述缓存时间在所有本地ip地理库中的p99:
32、p99=sectionstart+(sectionend-sectionstart)*(rank/sectioncount);
33、其中,section为所述缓存时间的第99%分位数值所落区间,sectionstart为所述区间起始值,sectionend为所述区间结束值,sectioncount为所述区间的解析次数的总个数,rank为第99%分位数值在所述区间的位置。
34、可选地,所述根据所述版本号,生成补丁数据包,包括:
35、将所述版本号对应的ip地理位置库与上一次的版本号对应的ip地理位置库作对比;
36、通过遍历差异内容,生成所述补丁数据包。
37、第三方面,提供了一种ip地址管理方法,所述方法由ip解析服务执行,方法包括:
38、在接收到解析请求的情况下,将解析次数加1;
39、从与所述ip解析服务对应的本地ip地理库接收ip地址信息;
40、其中,所述ip解析服务和所述本地ip地理库通过k8s crd定义实现。
41、可选地,所述方法还包括:
42、根据所述本地ip地理库的通知,将所述解析次数置0。
43、第四方面,提供了一种ip地址管理系统,包括:
44、一个中央ip地理库,所述中央ip地理库集中存储最新的ip地址与地理信息的映射信息;
45、多个解析大区,其中每个解析大区内部署一个本地ip地理库和一个ip解析服务;
46、所述本地ip地理库用于执行如第一方面所述的ip地址管理方法,所述中央ip地理库用于执行如第二方面所述的ip地址管理方法,所述ip解析服务用于执行如第三方面所述的ip地址管理方法。
47、第五方面,提供了一种ip地址管理装置,所述装置应用于本地ip地理库,所述装置包括:
48、第一发送模块,用于在监听到缓存时间耗尽的情况下,向中央ip地理库发送同步请求,所述同步请求中包含:解析次数,缓存时间和版本号;
49、第一接收模块,用于从中央ip地理库接收响应数据,所述响应数据中包含:补丁数据包、所述解析次数的rank值,所述缓存时间的p99,
50、第一更新模块,用于根据所述补丁数据包,更新ip地址信息;
51、第二更新模块,用于根据所述rank值和所述p99,更新所述缓存时间;
52、其中,所述解析次数由与所述本地ip地理库对应的ip解析服务确定,且每当所述ip解析服务接收到解析请求时,所述ip解析服务将所述解析次数加1,所述ip解析服务和所述本地ip地理库通过k8s crd定义实现。
53、可选地,所述装置还包括:
54、第三发送模块,用于在所述ip解析服务接收到解析请求的情况下,向所述ip解析服务发送ip地址信息;
55、通知模块,用于通知所述ip解析服务将解析次数置0。
56、可选地,所述第二更新模块,具体用于:
57、根据所述响应数据中的rank值、step值、所述p99和当前缓存时间,计算更新后的缓存时间;
58、其中,step值为所述ip解析服务的解析次数的排名每上升或下降一个单位所需要调整的步长。
59、可选地,所述第二更新模块,具体用于:
60、根据以下公式计算更新后的缓存时间;
61、tnew=(t+(r1-r2)×step)×(1+(t-p99)/(t×p99))
62、其中,tnew为更新后的缓存时间,t为当前缓存时间,r1为所述响应数据中的rank值,r2为所述本地ip地理库上一次向所述中央ip地理库发送同步请求时,所述中央ip地理库的响应数据中的rank值,所述t、所述r2和所述step由k8s crd维护。
63、可选地,所述装置还包括:
64、第二处理模块,用于将所述r1赋值给所述r2。
65、第六方面,提供了一种ip地址管理装置,所述装置应用于中央ip地理库,所述装置包括:
66、第二接收模块,用于从多个本地ip地理库中的目标本地ip地理库接收同步请求,所述同步请求中包含:解析次数,缓存时间和版本号;
67、第一计算模块,用于计算所述解析次数在所有本地ip地理库中的rank值;
68、第二计算模块,用于计算所述缓存时间在所有本地ip地理库中的p99;
69、生成模块,用于根据所述版本号,生成补丁数据包;
70、第二发送模块,用于向所述目标本地ip地理库发送响应数据,所述响应数据中包含:所述补丁数据包、所述rank值,所述p99;
71、其中,所述解析次数由与所述目标本地ip地理库对应的ip解析服务确定,且每当所述ip解析服务接收到解析请求时,所述ip解析服务将所述解析次数加1,所述ip解析服务和所述本地ip地理库通过k8s crd定义实现。
72、可选地,所述第一计算模块,具体用于:
73、计算所述目标本地ip地理库的解析次数在所有本地ip地理库的解析次数中的排名r1;
74、将所述r1确定为所述解析次数在所有本地ip地理库中的rank值。
75、可选地,所述第二计算模块,具体用于:
76、根据以下公式计算所述缓存时间在所有本地ip地理库中的p99:
77、p99=sectionstart+(sectionend-sectionstart)*(rank/sectioncount);
78、其中,section为所述缓存时间的第99%分位数值所落区间,sectionstart为所述区间起始值,sectionend为所述区间结束值,sectioncount为所述区间的解析次数的总个数,rank为第99%分位数值在所述区间的位置。
79、可选地,所述生成模块,具体用于:
80、将所述版本号对应的ip地理位置库与上一次的版本号对应的ip地理位置库作对比;
81、通过遍历差异内容,生成所述补丁数据包。
82、第七方面,提供了一种ip地址管理装置,所述装置应用于ip解析服务,所述装置包括:
83、第一处理模块,用于在接收到解析请求的情况下,将解析次数加1;
84、第三接收模块,用于从与所述ip解析服务对应的本地ip地理库接收ip地址信息;
85、其中,所述ip解析服务和所述本地ip地理库通过k8s crd定义实现。
86、可选地,所述装置还包括:
87、第三处理模块,用于根据所述本地ip地理库的通知,将所述解析次数置0。
88、第八方面,提供了一种电子设备,该终端包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤,或者实现如第二方面所述的方法的步骤,或者实现如第三方面所述的方法的步骤。
89、第九方面,提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤,或者实现如第二方面所述的方法的步骤,或者实现如第三方面所述的方法的步骤。
90、第十方面,提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法的步骤,或者实现如第二方面所述的方法的步骤,或者实现如第三方面所述的方法的步骤。
91、第十一方面,提供了一种计算机程序/程序产品,所述计算机程序/程序产品被存储在存储介质中,所述程序/程序产品被至少一个处理器执行以实现如第一方面所述的方法的步骤,或者实现如第二方面所述的方法的步骤,或者实现如第三方面所述的方法的步骤。
92、在本技术实施例中,本地ip地理库的缓存时间依据中央ip地理库反馈的解析次数排名变动以及旧的缓存时间在所有解析大区中的99%分位值计算得出,可适应由于地理位置、经济发展情况等因素导致的解析服务使用不均衡,缓存时间计算放在本地ip地理库,可降低中央ip地理库的计算压力。ip解析服务接收到解析请求时,优先访问本地ip地理库,可降低网络时延,提高解析效率。ip解析服务和本地ip地理库通过k8s crd定义实现,借助kubernetes云原生特性,利用自定义资源对象(custom resource)来管理缓存时间计算、版本拉取、数据上报等,可以做到快速伸缩,降低运维难度,实现热更新。