动态下发配置的方法和计算机设备与流程

未命名 08-15 阅读:121 评论:0


1.本技术属于计算机领域,尤其涉及一种动态下发配置的方法和计算机设备。


背景技术:

2.移动端需要文案,或广告需要更换,或移动端某功能上线后发现有一个严重的问题,这些场景希望通过接口下发配置来覆盖本地配置,从而解决问题。
3.现有的解决方式为:一定向轮询请求到后端,拉取最新的配置数据,但是大多数拉取到的都是没有更新的;二长轮询后端接口,服务端没有数据则hold该请求,将socket等请求保存起来,不立即返回,此时的超时时间一般会比正常的http请求的超时时间长,造成流量浪费,机器资源浪费;三长链接推送模式,当发布更新配置后,可以通过长链接通道向在线用户下发配置变更通知,用户收到通知后便会主动拉取配置,但是如果长链接失效会导致更新不及时。


技术实现要素:

4.本技术的目的在于提供一种动态下发配置的方法和计算机设备,旨在解决更新配置是流量耗费高的问题。
5.第一方面,本技术提供了一种动态下发配置的方法,包括:
6.接收客户端发送的读取最新配置的请求;
7.根据预设的灰度条件,判断客户端是否命中灰度条件;如果没有命中灰度条件,则不下发最新配置;如果命中灰度条件,则查询是否有本地缓存;
8.如果没有本地缓存,则从数据库读取配置缓存到本地,再从本地读取最新配置,将最新配置下发到客户端;如果有本地缓存,则从本地缓存中读取最新配置,再将最新配置下发到客户端;以使客户端读取到最新配置,计算并对比判断客户端本地存储配置的散列值和服务器下发的最新配置的散列值是否相同;如果相同,则不需要更新配置;如果不相同,则在客户端进行最新配置更新。
9.进一步地,所述在客户端进行最新配置更新,具体为:通过文本差异比较算法得到散列值,并根据散列值判断是否为增量更新,如果是增量更新,则与客户端本地存储配置进行比较生成补丁,根据补丁更新配置;如果不是增量更新,则利用最新配置替换本地存储配置并更新内存。
10.进一步地,所述散列值包括md5值和哈希值。
11.进一步地,所述方法还包括:采用消息队列遥测传输mqtt长链接技术实时下发最新配置,使客户端接收最新配置。
12.进一步地,所述接收客户端发送的读取最新配置的请求之前,还包括:调用cdn预热接口,将对应的最新配置缓存到cdn节点,使得客户端命中灰度条件后直接从cdn节点缓存中获取最新配置。
13.第二方面,本技术提供了一种计算机设备,包括:一个或多个处理器、存储器以及
一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述处理器执行所述计算机程序时实现如第一方面所述的动态下发配置的方法的步骤。
14.第三方面,本技术提供了一种动态下发配置的方法,包括:
15.连接服务端接口,请求读取服务端的最新配置;
16.设置灰度条件,等待服务端判断是否命中预设的灰度条件;如果没有命中灰度条件,则不对配置进行更新;如果命中灰度条件,则读取服务端下发的最新配置;
17.对读取的最新配置进行计算并对比判断本地存储配置的散列值和服务器的最新配置的散列值是否相同;
18.如果相同,则不需要更新本地存储配置;如果不相同,则通过差异比较算法得到散列值,并根据散列值判断是否为增量更新,如果是增量更新,与客户端本地存储配置进行比较生成补丁,根据补丁更新配置;如果不是增量更新,则利用最新配置替换本地存储配置并更新内存。
19.进一步地,所述连接服务端接口,获取服务端的最新配置之前,还包括:客户端根据服务端下发轮询间隔时间进行短轮询配置后端接口更新。
20.进一步地,所述如果命中灰度条件,则读取服务端下发的最新配置,具体为:如果命中灰度条件,读取服务端返回的存有最新配置的cdn链接,包括是否全量、是否加密、是否压缩和轮询间隔时间。
21.第四方面,本技术提供了一种计算机设备,包括:一个或多个处理器、存储器以及一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述处理器执行所述计算机程序时实现所述的动态下发配置的方法的步骤。
22.在本技术中,采用增量更新,使用文本差异比较算法,增量下发配置,减少流量消耗;客户端根据服务端下发轮询间隔时间进行段轮询配置后端接口更新,保证了配置更新的时效性;调用cdn预热接口,将对应的最新配置缓存到cdn节点,使得客户端命中灰度条件后直接从cdn节点缓存中获取最新配置,在请求配置更新的高峰期,减少cdn的承受压力,并提高客户端的下载速度。
附图说明
23.图1是本技术一实施例提供的动态下发配置的方法的流程图。
24.图2是本技术另一实施例提供的动态下发配置的方法的流程图。
25.图3是本技术一实施例提供的计算机设备的具体结构框图。
具体实施方式
26.为了使本技术的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
27.为了说明本技术所述的技术方案,下面通过具体实施例来进行说明。
28.请参阅图1,本技术一实施例提供的动态下发配置的方法包括以下步骤:需注意的
是,若有实质上相同的结果,本技术的动态下发配置并不以图1所示的流程顺序为限。
29.s101、接收客户端发送的读取最新配置的请求;
30.s102、根据预设的灰度条件,判断客户端是否命中灰度条件;如果没有命中灰度条件,则不下发最新配置;如果命中灰度条件,则查询是否有本地缓存;
31.s103、如果没有本地缓存,则从数据库读取配置缓存到本地,再从本地读取最新配置,将最新配置下发到客户端;如果有本地缓存,则从本地缓存中读取最新配置,再将最新配置下发到客户端;以使客户端读取到最新配置,计算并对比判断客户端本地存储配置的散列值和服务器下发的最新配置的散列值是否相同;如果相同,则不需要更新配置;如果不相同,则在客户端进行最新配置更新。
32.在本技术一实施例中,将最新配置进行加密压缩后再下发到客户端,将最新配置通过gzip和zstd算法压缩存储,对单value数据加密,即对每个明文key对应的value数据加密,再下发到客户端。
33.在本技术一实施例中,所述在客户端进行最新配置更新,具体为:通过文本差异比较算法得到散列值,并根据散列值判断是否为增量更新,如果是增量更新,则与客户端本地存储配置进行比较生成补丁,根据补丁更新配置;如果不是增量更新,则利用最新配置替换本地存储配置并更新内存。
34.所述文本差异比较算法为google diff match patch。
35.在本技术一实施例中,所述散列值包括md5值和哈希值。
36.在本技术一实施例中,所述方法还包括:采用消息队列遥测传输mqtt长链接技术实时下发最新配置,使客户端接收最新配置。
37.在本技术一实施例中,所述灰度条件包括:百分比、网络制式、系统版本和用户id。
38.客户端设置灰度条件后,客户端后端将灰度条件存在mysql或redis。
39.在本技术一实施例中,调用cdn预热接口,将对应的最新配置缓存到cdn节点,使得客户端命中灰度条件后直接从cdn节点缓存中获取最新配置。
40.本技术一实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本技术一实施例提供的动态下发配置的方法的步骤。
41.图3示出了本技术一实施例提供的计算机设备的具体结构框图,一种计算机设备100包括:一个或多个处理器101、存储器102、以及一个或多个计算机程序,其中所述处理器101和所述存储器102通过总线连接,所述一个或多个计算机程序被存储在所述存储器102中,并且被配置成由所述一个或多个处理器101执行,所述处理器101执行所述计算机程序时实现如本技术一实施例提供的动态下发配置的方法的步骤。
42.计算机设备包括服务器和终端等。该计算机设备可以是台式计算机、移动终端或车载设备,移动终端包括手机、平板电脑、个人数字助理或可穿戴设备等中的至少一种。
43.请参阅图2,本技术另一实施例提供了一种动态下发配置的方法,包括:
44.s201、连接服务端接口,请求读取服务端的最新配置;
45.s202、设置灰度条件,等待服务端判断是否命中预设的灰度条件;如果没有命中灰度条件,则不对配置进行更新;如果命中灰度条件,则读取服务端下发的最新配置;
46.s203、对读取的最新配置进行计算并对比判断本地存储配置的散列值和服务器的
最新配置的散列值是否相同;
47.s204、如果相同,则不需要更新本地存储配置;如果不相同,则通过差异比较算法得到散列值,并根据散列值判断是否为增量更新,如果是增量更新,与客户端本地存储配置进行比较生成补丁,根据补丁更新配置;如果不是增量更新,则利用最新配置替换本地存储配置并更新内存。
48.在本技术另一实施例中,所述连接服务端接口,获取服务端的最新配置之前,还包括:客户端根据服务端下发轮询间隔时间进行短轮询配置后端接口更新。
49.在本技术另一实施例中,所述如果命中灰度条件,则读取服务端下发的最新配置,具体为:如果命中灰度条件,读取服务端返回的存有最新配置的cdn链接,包括是否全量、是否加密、是否压缩和轮询间隔时间。
50.本技术另一实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本技术另一实施例提供的动态下发配置的方法的步骤。
51.本技术另一实施例提供了一种计算机设备,具体结构框图如图3所示,一种计算机设备100包括:一个或多个处理器101、存储器102、以及一个或多个计算机程序,其中所述处理器101和所述存储器102通过总线连接,所述一个或多个计算机程序被存储在所述存储器102中,并且被配置成由所述一个或多个处理器101执行,所述处理器101执行所述计算机程序时实现如本技术另一实施例提供的动态下发配置的方法的步骤。
52.本技术另一实施例提供了一种动态下发配置的系统,包括:
53.客户端,连接服务端接口,请求并读取服务端下发的最新配置,将最新配置进行解压解密,计算并对比判断本地存储配置的md5值和服务器的最新配置的md5值是否相同;如果相同,则不需要更新配置;如果不相同,则通过判断是否为增量更新,如果是增量更新且是应用增量包更新,则采用谷歌差分匹配补丁算法,根据得到的hash值,对比补丁与本地存储配置更新配置;如果不是增量更新,则替换本地存储配置和更新内存。
54.服务端,接收客户端读取最新配置的请求,根据预设的灰度条件,判断客户端是否命中灰度条件;如果没有命中灰度条件,则不下发最新配置;如果命中灰度条件,则查询是否有本地缓存,如果没有本地缓存,则从数据库读取配置缓存到本地,再从本地读取最新配置,将最新配置进行加密压缩后下发到客户端;如果有本地缓存,则从本地缓存中读取最新配置,再将最新配置进行加密压缩后下发到客户端。
55.在本技术实施例中,采用增量更新,使用文本差异比较算法,增量下发配置,减少流量消耗;客户端根据服务端下发轮询间隔时间进行段轮询配置后端接口更新,保证了配置更新的时效性;通过cdn预热,使得在请求配置更新的高峰期,确保cdn能承受对应的压力。
56.应该理解的是,本技术各实施例中的各个步骤并不是必然按照步骤标号指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
57.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
58.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
59.以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。

技术特征:
1.一种动态下发配置的方法,其特征在于,包括:接收客户端发送的读取最新配置的请求;根据预设的灰度条件,判断客户端是否命中灰度条件;如果没有命中灰度条件,则不下发最新配置;如果命中灰度条件,则查询是否有本地缓存;如果没有本地缓存,则从数据库读取配置缓存到本地,再从本地读取最新配置,将最新配置下发到客户端;如果有本地缓存,则从本地缓存中读取最新配置,再将最新配置下发到客户端;以使客户端读取到最新配置,计算并对比判断客户端本地存储配置的散列值和服务器下发的最新配置的散列值是否相同;如果相同,则不需要更新配置;如果不相同,则在客户端进行最新配置更新。2.如权利要求1所述的方法,其特征在于,所述在客户端进行最新配置更新,具体为:通过文本差异比较算法得到散列值,并根据散列值判断是否为增量更新,如果是增量更新,则与客户端本地存储配置进行比较生成补丁,根据补丁更新配置;如果不是增量更新,则利用最新配置替换本地存储配置并更新内存。3.如权利要求1所述的方法,其特征在于,所述散列值包括md5值和哈希值。4.如权利要求1所述的方法,其特征在于,所述方法还包括:采用消息队列遥测传输mqtt长链接技术实时下发最新配置,使客户端接收最新配置。5.如权利要求1所述的方法,其特征在于,所述接收客户端发送的读取最新配置的请求之前,还包括:调用cdn预热接口,将对应的最新配置缓存到cdn节点,使得客户端命中灰度条件后直接从cdn节点缓存中获取最新配置。6.一种计算机设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的动态下发配置的方法的步骤。7.一种动态下发配置的方法,其特征在于,包括:连接服务端接口,请求读取服务端的最新配置;设置灰度条件,等待服务端判断是否命中预设的灰度条件;如果没有命中灰度条件,则不对配置进行更新;如果命中灰度条件,则读取服务端下发的最新配置;对读取的最新配置进行计算并对比判断本地存储配置的散列值和服务器的最新配置的散列值是否相同;如果相同,则不需要更新本地存储配置;如果不相同,则通过差异比较算法得到散列值,并根据散列值判断是否为增量更新,如果是增量更新,与客户端本地存储配置进行比较生成补丁,根据补丁更新配置;如果不是增量更新,则利用最新配置替换本地存储配置并更新内存。8.如权利要求7所述的方法,其特征在于,所述连接服务端接口,获取服务端的最新配置之前,还包括:客户端根据服务端下发轮询间隔时间进行短轮询配置后端接口更新。9.如权利要求7所述的方法,其特征在于,所述如果命中灰度条件,则读取服务端下发
的最新配置,具体为:如果命中灰度条件,读取服务端返回的存有最新配置的cdn链接,包括是否全量、是否加密、是否压缩和轮询间隔时间。10.一种计算机设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,其特征在于,所述处理器执行所述计算机程序时实现如权利要求7至9任一项所述的动态下发配置的方法的步骤。

技术总结
本申请提供了一种动态下发配置的方法和计算机设备,包括:接收客户端发送的读取最新配置的请求;根据预设的灰度条件,判断客户端是否命中灰度条件;如果没有命中灰度条件,则不下发最新配置;如果命中灰度条件,则查询是否有本地缓存;如果没有本地缓存,则从数据库读取配置缓存到本地,再从本地读取最新配置,将最新配置下发到客户端;如果有本地缓存,则从本地缓存中读取最新配置,再将最新配置下发到客户端;以使客户端读取到最新配置,计算并对比判断客户端本地存储配置的散列值和服务器下发的最新配置的散列值是否相同;如果相同,则不需要更新配置;如果不相同,则在客户端进行最新配置更新。该方法能使配置更新时减少流量消耗。流量消耗。流量消耗。


技术研发人员:秦复祥
受保护的技术使用者:深圳依时货拉拉科技有限公司
技术研发日:2023.05.17
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐