CN114500281A - 移动端的配置系统、方法及装置 - Google Patents
移动端的配置系统、方法及装置 Download PDFInfo
- Publication number
- CN114500281A CN114500281A CN202210035600.6A CN202210035600A CN114500281A CN 114500281 A CN114500281 A CN 114500281A CN 202210035600 A CN202210035600 A CN 202210035600A CN 114500281 A CN114500281 A CN 114500281A
- Authority
- CN
- China
- Prior art keywords
- configuration
- file
- version number
- mobile terminal
- updated version
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 238000004590 computer program Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 239000002699 waste material Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000009530 blood pressure measurement Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种移动端的配置系统、方法及装置,其中系统包括:内容分发模块,用于根据已更新版本配置文件生成待配置文件,并将配置链接返回给配置中心;配置中心用于将已更新版本号以及配置链接发送到网关模块;移动端,用于发送API请求,其中包括本地版本号;网关模块,用于接收到API请求后,从配置链接中确定目标链接并返回至移动端;移动端还用于根据目标链接获取目标配置文件,运用统一网关的方式接收每次API请求,并根据其中的本地版本号和已更新版本号确定目标链接,实现线上配置近实时和动态化更新。
Description
技术领域
本发明涉及配置更新领域,特别是涉及一种移动端的配置系统、方法及装置。
背景技术
移动端应用程序上有很多配置文件,配置文件为移动端应用程序的运行提供运行条件,而配置文件可以包括业务文件和系统文件等,而随着业务的增长和需求的变化以及版本的升级,移动端应用程序需要配置的文件越来越多,且有些文件要求实时性。
在相关技术中,在需要更新移动端的本地配置文件时,开发人员可以将已更新配置文件上传至配置中心。移动端可以采用主动拉取、后端推送、推拉结合等方式获取已更新版本配置文件。其中,主动拉取会带来非常多流量的浪费,而且对后端会带来很多无用请求造成机器的浪费;推送的方式虽然节省流量,但不能保证100%不丢失数据的实时配置生效率。
发明内容
本发明的目的是克服现有技术中的不足之处,提供一种移动端的配置系统、方法及装置,以保证在配置更新时能动态化实时获取配置文件且不丢失,具体方案如下:
第一方面,一种移动端的配置系统,所述系统包括:
配置中心,用于将已更新版本号对应的已更新版本配置文件发布到内容分发模块;
内容分发模块,用于根据所述已更新版本配置文件生成待配置文件,并将所述待配置文件的配置链接返回给配置中心;
所述配置中心还用于将所述已更新版本号以及所述配置链接发送到网关模块;
移动端,用于向网关模块发送用于查询应用程序是否配置更新的API请求,所述API请求中包括移动端应用程序的本地版本号;
网关模块,用于在接收到所述API请求后,根据所述本地版本号和所述已更新版本号从所述配置链接中确定目标链接并将所述目标链接返回至所述移动端;
所述移动端还用于在接收到所述目标链接后访问所述目标链接并从所述内容分发模块获取与所述目标链接对应的目标配置文件并根据所述目标配置文件完成应用程序的更新。
在一个较佳的实施例中,所述待配置文件包括所述已更新版本号对应的全量待配置文件以及增量待配置文件;
所述内容分发模块还用于在检测到所述已更新版本配置文件时,根据所述已更新版本配置文件生成全量待配置文件以及增量待配置文件。在一个较佳的实施例中,所述网关模块包括网关存储模块和网关;
网关存储模块,用于存储所述已更新版本号以及所述配置链接;
网关,用于在接收到所述API请求后,根据所述本地版本号向网关存储模块发送用于查询所述已更新版本号的查询请求,并根据网关存储模块返回的所述已更新版本号确定所述目标链接。
在一个较佳的实施例中,所述内容分发模块还用于访问所述配置中心设置的预设差值数量的前版本配置文件,并分别比较所述已更新版本配置文件和各个前版本配置文件之间首部和尾部的相同部分,再比较中间的差异部分,将各个差异部分生成预设差值数量的所述增量配置文件。在一个较佳的实施例中,所述网关还用于比较所述本地版本号和所述已更新版本号之间差值,当差值大于所述预设差值时,将所述全量配置文件对应的全量配置链接确定为所述目标链接;
当差值不大于所述预设差值时,将所述增量配置文件对应的增量配置链接确定为所述目标链接。在一个较佳的实施例中,所述移动端还用于在获取到所述增量配置文件后,将所述增量配置文件与所述本地版本号对应的所述本地配置文件对所述移动端应用程序进行字符串拼接和删除操作,更新应用程序。
在一个较佳的实施例中,所述配置中心还用于对所述已更新版本配置文件加密后发送到所述内容分发模块;所述内容分发模块解密后根据所述已更新版本配置文件生成所述待配置文件,再对所述待配置文件加密;所述移动端获取加密的所述待配置文件,在所述移动端中进行解密。
在一个较佳的实施例中,系统还包括:
灰度管理模块,用于在配置中心将已更新版本配置文件发布到内容分发模块之前确定是否满足发布条件;
若满足,则向配置中心发送配送指令,以使配置中心将已更新版本配置文件发布到内容分发模块。
第二方面,提供一种移动端的配置方法,应用于所述网关模块,所述方法包括:
存储所述配置中心发送的所述已更新版本号和所述配置链接;
接收所述移动端发送的所述API请求,其中包括所述本地版本号;
根据所述本地版本号和所述已更新版本号从所述配置链接中确定所述目标链接;
发送所述目标链接至所述移动端。
第三方面,提供一种移动端的配置装置,所述装置包括:
存储模块,用于存储所述配置中心发送的所述已更新版本号和所述配置链接;
接收模块,用于接收所述移动端发送的所述API请求,其中包括所述本地版本号;
确定模块,用于根据所述本地版本号和所述已更新版本号从所述配置链接中确定所述目标链接;
发送模块,用于发送所述目标链接至所述移动端。
本发明中通过配置中心发布已更新版本配置文件,通过内容分发模块生成待配置文件,并将待配置文件的配置链接返回给配置中心,还通过配置中心将已更新版本号以及配置链接发送到网关模块,通过移动端向网关模块发送用于查询应用程序是否配置更新的API请求,API请求中包括移动端应用程序的本地版本号,还通过网关模块根据本地版本号和已更新版本号从配置链接中确定目标链接并将目标链接返回至移动端,移动端在接收目标链接后访问目标链接并从内容分发模块获取目标配置文件并完成应用程序的更新,从而实现移动端动态化实时配置。一方面,本发明对于移动端配置更新从现有技术中的主动拉取、后端推送以及推拉结合等方式改为运用统一网关的方式,该方式基于联网状态下的每次API请求,根据移动端上报的本地版本号和配置中心发送的已更新版本号确定目标链接并指示移动端更新,而主动拉取是移动端主动访问后端服务器更新本地应用程序,该方式导致移动端产生很多流量浪费,且对后端带来大量无效请求,而后端推送的方式虽然节省流量,但当出现比如推送过程中移动端网络波动等情况时不能保证推送中不丢失文件的实时配置,而推拉结合虽然能较好的解决上述问题,但同样会出现大量请求导致后台工作繁忙产生后台系统安全风险,因此本发明通过网关模块指示移动端减轻后端如配置中心等的运行压力并实现近实时线上配置。另一方面,通过生成全量待配置文件和增量待配置文件,当移动端本地版本号较已更新版本号相差不大时选择下载增量待配置文件,避免了流量和后端算力等资源的浪费,缩短了移动端更新时间,从而实现动态化更新。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为移动端的配置系统的示意图;
图2为移动端请求网关模块调用业务线的工作示意图;
图3为移动端请求网关模块调用业务线时逻辑操作的示意图;
图4为一种移动端的配置方法的步骤示意图;
图5为一种移动端的配置方法的流程示意图;
图6为移动端的配置装置的结构示意图;
图7为本发明实施例中电子设备的架构图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳实施方式。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施方式。相反地,提供这些实施方式的目的是使对本发明的公开内容理解的更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
如背景技术中提到的,更新配置可以采用主动拉取、推送等方式获取已更新版本配置文件。其中,主动拉取会带来非常多流量的浪费,而且对后端会带来很多无用请求造成机器的浪费;推送的方式虽然节省流量,但不能保证100%的实时配置生效率,本发明中通过网关模块确定目标链接,终端下载目标链接对应的目标配置文件,其中通过确定下载全量待配置文件还是增量待配置文件,实现动态化实时配置的效果,避免流量和后端算力等资源的浪费,优化了线上配置能力。下面将结合附图对本发明中一种移动端的配置系统、方法、电子设备以及存储介质做详细阐述。
如图1所示,本发明提供一种移动端的配置系统,该系统包括:
配置中心101,用于将已更新版本号对应的已更新版本配置文件发布到内容分发模块;
内容分发模块102,用于根据已更新版本配置文件生成待配置文件并将待配置文件的配置链接返回给配置中心;
配置中心101还用于将已更新版本号以及配置链接发送到网关模块;
移动端103,用于向网关模块发送用于查询应用程序是否配置更新的API请求,API请求中包括移动端应用程序的本地版本号;
网关模块104,用于在接收到API请求后,根据本地版本号和已更新版本号从配置链接中确定目标链接并将目标链接返回至移动端;
移动端103还用于在接收到目标链接后访问目标链接并从内容分发模块获取与目标链接对应的目标配置文件并根据目标配置文件完成应用程序的更新。
在本实施例中,移动端检查配置更新的操作都是在API(ApplicationProgramming Interface,应用程序编程接口)请求header(顶端)里完成,API请求的格式如下:
//Request Header
version:1.0.6(终端发送的请求的首部的版本号)
//Response Header
url:https://resource.downapp.cn/1.0.6_1.1.0(网关模块对于请求的回复中首部包含的目标链接)
其中网关模块只需要处理API请求的Header,移动端只需要处理网关回复的Header,,付出极小的代价就可以为整个移动端的配置带来高实时性、高动态性和高可靠性。
内容分发模块每次接收到已更新版本配置文件后,会立即替换所缓存的全量待配置文件,然后对比已更新版本配置文件和前几次版本文件生成多个差量待配置文件,并将上一次生成的多个差量待配置文件删除,然后立即将刚生成的待配置文件的配置链接回复给配置中心,网关模块接收到已更新版本号后,会立即用已更新版本号替换所缓存的目标版本号,再将接受的配置链接和已更新版本号以及本地版本号对应,比如将全量待配置文件的配置链接配置和已更新版本号对应,将差量待配置文件的配置链接和已更新版本号与本地版本号对应。在完成应用程的更新后,移动端自动将本地版本号替换成目标版本号。
在本发明中,移动端只需要通过处理API Header,就可以很快判断出是否需要更新配置,再通过网关模块发送的目标链接,及时访问内容分发模块下载目标配置文件,将需要移动端配置更新的处理任务降到最少,实现近实时的线上配置。
在一个较佳的实施方式中,待配置文件包括已更新版本号对应的全量待配置文件以及增量待配置文件;内容分发模块还用于在检测到已更新版本配置文件时,根据已更新版本配置文件生成全量待配置文件以及增量带配置文件。
在本实施例中,已更新版本配置文件发布到内容分发模块后,需要同步去更新网关模块缓存的值(已更新版本号)。这里因为要考虑更新可能要支持全量更新和差量更新两种模式,如何在网关存储模块中设置正确的值。其中全量更新就是根据全量配置链接下载全量待配置文件,差量更新就是根据增量配置链接下载全增量待配置文件。现实中,线上部署的网关存储模块一般是Redis,Redis key只能为String类型,所以策略是:
(1)每次已更新版本配置文件发布时,内容分发模块生成比如6个待配置文件,分别是1个全量待配置文件+与最近5个版本的差量待配置文件;
(2)向比如Redis中设置配置最新版本
latest=>1.1.0(1.1.0为最新版本号)
(3)向Redis设置6个值,key分别为全量待配置文件+与最近5个版本的差量待配置文件,value为对应的配置链接,形如:
1.1.0=>https://resource.downapp.cn/1.1.0
1.0.9_1.1.0=>https://resource.downapp.cn/1.0.9_1.1.0
1.0.8_1.1.0=>https://resource.downapp.cn/1.0.8_1.1.0
1.0.7_1.1.0=>https://resource.downapp.cn/1.0.7_1.1.0
1.0.6_1.1.0=>https://resource.downapp.cn/1.0.6_1.1.0
1.0.5_1.1.0=>https://resource.downapp.cn/1.0.5_1.1.0
1.1.0=>https://resource.downapp.cn/1.1.0就是将已更新版本号1.1.0和下载全量待配置文件的地址对应;
1.0.9_1.1.0=>https://resource.downapp.cn/1.0.9_1.1.0就是将已更新版本号1.1.0和前版本号1.0.9与下载该增量待配置文件的地址对应;
1.0.8_1.1.0=>https://resource.downapp.cn/1.0.8_1.1.0就是将已更新版本号1.1.0和前版本号1.0.8与该下载增量待配置文件的地址对应;
1.0.7_1.1.0=>https://resource.downapp.cn/1.0.7_1.1.0就是将已更新版本号1.1.0和前版本号1.0.7与该下载增量待配置文件的地址对应;
1.0.6_1.1.0=>https://resource.downapp.cn/1.0.6_1.1.0就是将已更新版本号1.1.0和前版本号1.0.6与该下载增量待配置文件的地址对应;
1.0.5_1.1.0=>https://resource.downapp.cn/1.0.5_1.1.0就是将已更新版本号1.1.0和前版本号1.0.5与该下载增量待配置文件的地址对应。
(4)清除网关存储模块上的旧值,比如上一次所存储的前目标链接。在本发明中,后台的维护人员只需要在配置中心中发送已更新版本配置文件和确认预设差值数量的前版本配置文件,其余动作比如生成待配置文件,处理移动端API请求等都可以由本系统自动完成,减少了维护人员的工作量。
在一个较佳的实施方式中,网关模块包括网关存储模块和网关;
网关存储模块,用于存储已更新版本号以及配置链接;
网关,用于在接收到API请求后,根据本地版本号向网关存储模块发送用于查询已更新版本号的查询请求,并根据网关存储模块返回的已更新版本号确定目标链接。
在本实施例中,网关存储模块可以使用生活中较常用的Redis模块来存储已更新版本号以及配置链接,在移动端发送的API请求中,检查配置更新的操作都是在API请求header里完成,比如本地版本号都是放在API请求header里。
在本发明中,网关模块接收API请求后,只需要访问header,并可以通过统一修改API请求,就可以换取高实时性和高可靠性。
在一个较佳的实施方式中,内容分发模块还用于访问配置中心设置的预设差值数量的前版本配置文件,并分别比较已更新版本配置文件和各个前版本配置文件之间首部和尾部的相同部分,再比较中间的差异部分,将各个差异部分生成预设差值数量的增量待配置文件。
在本实施例中,如前文所述当设置的预设差值为5时,内容分发模块会访问配置中心中前5个版本的配置文件,分别比较已更新版本配置文件和前5个版本的配置文件之间首部和尾部的相同部分,再比较中间的差异部分,将各个差异部分生成5个差量待配置文件。由于配置文件都是纯文本,增量更新可以使用的是Google出的google-diff-match-patch(一种谷歌提供的补丁生成服务),支持Java,JavaScript,Dart,C++,C#,Objective-C,Lua和Python而差异的部分可以通过一些字符去表示该改动是DEL(delte,删除)还是ADD(addition,添加)还EQUAL(相同,不动作),这样最终形成的差量待配置文件仅比改动部分要大一点。生成的差量待配置文件以官方为例,其中包含两个字符串之间变动部分的location和length,并最终下发给移动端。
在本发明中,通过差量待配置文件相比于全量更新待配置文件小很多,使得生成差量待配置文件基本是毫秒级的,也不必担心接口请求的耗时问题。
在一个较佳的实施方式中,网关还用于比较本地版本号和已更新版本号之间差值,当差值大于预设差值时,将全量待配置文件对应的全量配置链接确定为目标链接;
当差值不大于所述预设差值时,将增量待配置文件对应的增量配置链接确定为目标链接。
在本实施例中,如图5所示,维护人员通过配置中心设置的预设差值为5,网关通过比较header里面的本地版本号和已更新版本号,判断是否为目标配置版本。如果为目标配置版本,则API回复不用任何处理。如果发现header内的本地版本号和已更新版本差值是5个版本以上,则将全量待配置文件对应的全量配置链接确定为目标链接,进行全量更新,如果发现header内的版本和已更新版本差值5个版本以内或者相等,则将增量待配置文件对应的增量配置链接确定为目标链接,进行差量更新。全量更新和差量更新从网关存储模块中查询要下载的配置链接。
在一个较佳的实施方式中,移动端还用于在获取到增量配置文件后,将增量配置文件与本地版本号对应的本地配置文件对移动端应用程序进行字符串拼接和删除操作,更新应用程序。
在本实施例中,为了确保移动端最终更新完的应用程序与配置中心的已更新配置文件一致,移动端在下载好增量待配置文件之后,用该配置生成MD5(散列函数)值,与我们在内容分发模块生成增量待配置文件时携带的最新配置的MD5值进行比较,在一致的情况下才去缓存配置,避免因为增量待配置文件造成应用程序无法使用的问题。
在一个较佳的实施方式中,配置中心还用于对已更新版本配置文件加密后发送到内容分发模块;内容分发模块解密后根据已更新版本配置文件生成待配置文件,再对待配置文件加密;移动端获取加密的待配置文件,在移动端中进行解密。
在本实施例中,维护人员用配置中心下发的已更新配置文件中会有一些敏感数据。比如乘车补贴优惠券,某个优惠券的生效时间戳,如果用户分析出来了,可以人为修改配置数据从而导致程序运行异常。因此,为了保护下发的敏感配置数据,需进行加密。加密方式可以采用单Value(值)加密,对每个Key(密匙)对应的Value进行加密,最后下发到移动端,解压后存储在移动端磁盘里的是明文Key+密文Value,在需要读取某个配置时,再实时解密并缓存在内存里,从而降低数据泄漏风险。
在选择具体加密方式方面,考虑到移动端的解密耗时,可以使用类似AES(Advanced Encryption Standard高级加密标准)/CBC(CipherBlock Chaining密码分组链接)加密算法,密钥可以存储到移动端保护起来(为了安全可以放到移动端内部,通过混淆提高安全性,或者采用白盒加密方案,将密钥与算法一起编译生成代码从而隐藏密钥),也可以支持动态更新。另外,Value加密后是二进制数据,此时要利用Base64(基于64个可打印字符对任意字节数据进行编码的算法)编码,把二进制数据转成文本写入配置文件中。
在一个较佳的实施方式中,系统还包括:
灰度管理模块,用于在配置中心将已更新版本配置文件发布到内容分发模块之前确定是否满足发布条件;
若满足,则向配置中心发送配置指令,以使配置中心将已更新版本配置文件发布到内容分发模块。
在本实施例中,在已更新配置文件正式发布前,选择特定人群试用,逐步扩大其试用者数量,以便及时发现和纠正其中的问题。灰度发布后开始从多个维度比如移动端应用程序版本区间、城市、渠道等观察已更新配置文件的线上数据表现,其中发布条件是指试用者的应用程序确定逻辑运行正常且稳定,且没出现死机、因程序本身原因出现卡顿等情况时,灰度管理模块才允许配置中心发布已更新配置文件。另外,大量移动端在检测到更新后,会立即访问内容分发模块下载待配置文件,如果访问量级很大,需要考虑会出现请求高峰,要确保内容分发模块能承受对应的访问压力,不能被打挂。而且,由于内容分发模块同步需要一段时间,所以此时内容分发模块可能会发生回源,对源服务器和配置中心也会造成一定的压力。因此,在每次发布后,可以结合具体场景及用户QPS(每秒查询率),有选择地考虑对内容分发模块进行预热。
在本发明中,配置中心能够做到秒级下发,但如果配置文件有问题,可能会立即导致大规模线上故障。可以通过支持配置的灰度发布及时发现和处理配置文件可能会出现的问题。
在一个较佳的实施方式中,无论配置文件的物理组织形式是什么样的,逻辑上依旧只看它的数据结构。数据结构希望设置成如下:
在本实施例中,配置文件中每个业务线占据顶层key-value的一个值(对应着'category1'即种类1),业务线内部设置自己需要的key-value字段或者sub-group(子集)设置。如图2所示移动端可以通过http(Hyper Text TransferProtocol超文本传输协议)/websocket(全双工通信协议)/tcp(Transmission Control Protocol传输控制协议)等方式请求网关模块,网关模块再通过rpc(远程程序调用)服务去调用各个业务线的服务,比如移动端需要使用业务一时,通过http的方式向网关模块发出请求,网关模块通过远程程序调用去调用业务一的服务。如图3所示,为网关调用各个业务线服务时操作逻辑示意图。包括:身份验证(对移动端进行身份验证);验签;tag:灰度;压测;mock:接口下线;限流(移动端访问太频繁是进行限流);风控相关;配置中心(将业务调用保存在配置中心)相关等逻辑。
在本发明中,数据结构设计成这样便于日后配置文件膨胀过大时的拆分,而且也便于在移动端上更新配置后判断某个业务线的配置是否发生了改变,以提示后端预设回调处理。
在一个较佳的实施方式中,下载的过程未必总是能在移动端活跃期间完成,所以需要考虑两种异常情况:
(1)当前App进程关闭时,下载还未完成。
(2)当前下载还未完成时,移动端不停发起API请求,API Response Header不停提示更新配置,当然,都是相同的url。
此时即使下载异常,移动端的本地版本号不会发生变化,下一次API请求时,网关模块仍然会比较本地版本号和已更新版本号,如果API里的本地版本号比已更新版本号小,仍然会返回目标链接,让移动端继续下载
如图4所示,本发明提供了一种移动端的配置方法,应用于网关模块,该方法包括:
S401、存储配置中心发送的已更新版本号和配置链接;
S402、接收移动端发送的API请求,其中包括本地版本号;
S403、根据API请求中本地版本号和已更新版本号从配置链接中确定目标链接;
S404、发送目标链接至移动端。
本实施例中,当API请求Header里的本地版本号与已更新版本号之间差值为零时,网关模块指示移动端无动作,当差值不大于预设差值时,网关模块返回增量待配置文件对应的目标链接给移动端,当差值大于预设差值时,网关模块返回全量待配置文件对应的目标链接给移动端,通过网关模块确定目标链接近实时地在线更新配置,移动端通过下载目标链接对应的待配置文件能实现配置更新的动态化。
在一个较佳的实施方式中,根据API请求中本地版本号和已更新版本号从配置链接中确定目标链接还包括:比较本地版本号和已更新版本号之间差值,当差值大于预设差值时,将全量配置文件对应的全量配置链接确定为目标链接;当差值不大于预设差值时,将增量配置文件对应的增量配置链接确定为目标链接。
如图6所示,本发明还提供一种移动端的配置装置,该装置包括:
存储模块601,用于存储所述配置中心发送的所述已更新版本号和所述配置链接;
接收模块602,用于接收所述移动端发送的所述API请求,其中包括所述本地版本号;
确定模块603,用于根据所述本地版本号和所述已更新版本号从所述配置链接中确定所述目标链接;
发送模块604,用于发送所述目标链接至所述移动端。
本发明还提供了一种电子设备,包括:
一个或多个处理器;以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行移动端的配置方法。
本实施例执行过程及所能实现的技术效果请参照应用于网关模块的管理方法的描述,此处不再赘述。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如前所述应用于移动端的配置方法,该方法的执行过程及所能实现的技术效果请参照如前的描述,此处不再赘述。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如前所述应用于移动端的配置方法,该方法的执行过程及所能实现的技术效果请参照如前的描述,此处不再赘述。
其中,图7示例性的展示出了电子设备的系架构,具体可以包括处理器710,视频显示适配器711,磁盘驱动器712,输入/输出接口713,网络接口717,以及存储器720。上述处理器710、视频显示适配器711、磁盘驱动器712、输入/输出接口713、网络接口717,与存储器720之间可以通过通信总线730进行通信连接。
其中,处理器710可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本发明所提供的技术方案。
存储器720可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器720可以存储用于控制计算机系统运行的操作系统721,用于控制计算机系统的低级别操作的基本输入输出系统(BIOS)。另外,还可以存储网页浏览器723,数据存储管理系统727,以及设备标识信息处理系统725等等。上述设备标识信息处理系统725就可以是本发明实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本发明所提供的技术方案时,相关的程序代码保存在存储器720中,并由处理器710来调用执行。
输入/输出接口713用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
网络接口717用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线730包括一通路,在设备的各个组件(例如处理器710、视频显示适配器711、磁盘驱动器712、输入/输出接口713、网络接口717,与存储器720)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器710、视频显示适配器711、磁盘驱动器712、输入/输出接口713、网络接口717,存储器720,总线730等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本发明方案所必需的组件,而不必包含图中所示的全部组件。
本发明的计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储器被安装,或者从ROM被安装。在该计算机程序被处理器执行时,执行本发明的实施例的方法中限定的上述功能。
需要说明的是,本发明的实施例的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(Radio Frequency,射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述服务器中所包含的;也可以是单独存在,而未装配入该服务器中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该服务器执行时,使得该服务器:响应于检测到终端的外设模式未激活时,获取终端上应用的帧率;在帧率满足息屏条件时,判断客户是否正在获取终端的屏幕信息;响应于判断结果为客户未获取终端的屏幕信息,控制屏幕进入立即暗淡模式。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明的实施例的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在客户计算机上执行、部分地在客户计算机上执行、作为一个独立的软件包执行、部分在客户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到客户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明所提供的移动端的配置系统、方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种移动端的配置系统,其特征在于,所述系统包括:
配置中心,用于将已更新版本号对应的已更新版本配置文件发布到内容分发模块;
内容分发模块,用于根据所述已更新版本配置文件生成待配置文件,并将所述待配置文件的配置链接返回给配置中心;
所述配置中心还用于将所述已更新版本号以及所述配置链接发送到网关模块;
移动端,用于向网关模块发送用于查询应用程序是否配置更新的API请求,所述API请求中包括移动端应用程序的本地版本号;
网关模块,用于在接收到所述API请求后,根据所述本地版本号和所述配置中心发送的所述已更新版本号从所述配置链接中确定目标链接并将所述目标链接返回至所述移动端;
所述移动端还用于在接收到所述目标链接后访问所述目标链接并从所述内容分发模块获取与所述目标链接对应的所述目标配置文件并根据所述目标配置文件完成应用程序的更新。
2.根据权利要求1所述的系统,其特征在于,所述待配置文件包括所述已更新版本号对应的全量待配置文件以及增量待配置文件;
所述内容分发模块还用于在检测到所述已更新版本配置文件时,根据所述已更新版本配置文件生成全量待配置文件以及增量待配置文件。
3.根据权利要求1所述的系统,其特征在于,所述网关模块包括网关存储模块和网关;
网关存储模块,用于存储所述已更新版本号以及所述配置链接;
网关,用于在接收到所述API请求后,根据所述本地版本号向网关存储模块发送用于查询所述已更新版本号的查询请求,并根据网关存储模块返回的所述已更新版本号确定所述目标链接。
4.根据权利要求2所述的系统,其特征在于,所述内容分发模块还用于访问所述配置中心设置的预设差值的数量前版本配置文件,并分别比较所述已更新版本配置文件和各个前版本配置文件之间首部和尾部的相同部分,再比较中间的差异部分,将各个差异部分生成预设差值数量的所述增量配置文件。
5.根据权利要求3所述的系统,其特征在于,所述网关还用于比较所述本地版本号和所述已更新版本号之间差值,当差值大于预设差值时,将全量待配置文件对应的全量配置链接确定为所述目标链接;
当差值不大于所述预设差值时,将增量待配置文件对应的增量配置链接确定为所述目标链接。
6.根据权利要求5所述的系统,其特征在于,所述移动端还用于在获取到所述增量配置文件后,将所述增量配置文件与所述本地版本号对应的所述本地配置文件对所述移动端应用程序进行字符串拼接和删除操作,更新应用程序。
7.根据权利要求6所述的系统,其特征在于,所述配置中心还用于对所述已更新版本配置文件加密后发送到所述内容分发模块;所述内容分发模块解密后根据所述已更新版本配置文件生成所述待配置文件,再对所述待配置文件加密;所述移动端获取加密的所述待配置文件,在所述移动端中进行解密。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括:
灰度管理模块,用于在所述配置中心将所述已更新版本配置文件发布到所述内容分发模块之前确定是否满足发布条件;
若满足,则向配置中心发送配送指令,以使配置中心将已更新版本配置文件发布到所述内容分发模块。
9.一种移动端的配置方法,其特征在于,应用于网关模块,所述方法包括:
存储所述配置中心发送的已更新版本号和所述配置链接;
接收所述移动端发送的API请求,其中包括本地版本号;
根据所述本地版本号和所述已更新版本号从所述配置链接中确定目标链接;
发送所述目标链接至所述移动端。
10.一种移动端的配置装置,其特征在于,所述装置包括:
存储模块,用于存储所述配置中心发送的已更新版本号和所述配置链接;
接收模块,用于接收所述移动端发送的API请求,其中包括本地版本号;
确定模块,用于根据所述本地版本号和所述已更新版本号从所述配置链接中确定目标链接;
发送模块,用于发送所述目标链接至所述移动端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210035600.6A CN114500281A (zh) | 2022-01-13 | 2022-01-13 | 移动端的配置系统、方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210035600.6A CN114500281A (zh) | 2022-01-13 | 2022-01-13 | 移动端的配置系统、方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114500281A true CN114500281A (zh) | 2022-05-13 |
Family
ID=81512245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210035600.6A Pending CN114500281A (zh) | 2022-01-13 | 2022-01-13 | 移动端的配置系统、方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114500281A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244556A1 (en) * | 2007-03-30 | 2008-10-02 | Microsoft Corporation | Prevention of exploitation of update rollback |
CN110058873A (zh) * | 2019-03-12 | 2019-07-26 | 天津五八到家科技有限公司 | 应用页面更新方法、装置、设备和存储介质 |
CN111010423A (zh) * | 2019-11-20 | 2020-04-14 | 远景智能国际私人投资有限公司 | 更新包的下载系统、方法、装置、设备及可读存储介质 |
CN111078256A (zh) * | 2019-12-20 | 2020-04-28 | 广州品唯软件有限公司 | 自动化测试环境的升级方法、终端及可读存储介质 |
CN113094139A (zh) * | 2021-04-20 | 2021-07-09 | 北京沃东天骏信息技术有限公司 | Ui样式更新方法和装置 |
CN113342387A (zh) * | 2021-04-30 | 2021-09-03 | 北京房江湖科技有限公司 | 一种软件自动升级方法、更新客户端及更新服务器 |
-
2022
- 2022-01-13 CN CN202210035600.6A patent/CN114500281A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244556A1 (en) * | 2007-03-30 | 2008-10-02 | Microsoft Corporation | Prevention of exploitation of update rollback |
CN110058873A (zh) * | 2019-03-12 | 2019-07-26 | 天津五八到家科技有限公司 | 应用页面更新方法、装置、设备和存储介质 |
CN111010423A (zh) * | 2019-11-20 | 2020-04-14 | 远景智能国际私人投资有限公司 | 更新包的下载系统、方法、装置、设备及可读存储介质 |
CN111078256A (zh) * | 2019-12-20 | 2020-04-28 | 广州品唯软件有限公司 | 自动化测试环境的升级方法、终端及可读存储介质 |
CN113094139A (zh) * | 2021-04-20 | 2021-07-09 | 北京沃东天骏信息技术有限公司 | Ui样式更新方法和装置 |
CN113342387A (zh) * | 2021-04-30 | 2021-09-03 | 北京房江湖科技有限公司 | 一种软件自动升级方法、更新客户端及更新服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110601952A (zh) | 多渠道消息通知发送方法和装置 | |
CN111258602B (zh) | 信息更新方法和装置 | |
CN110825479A (zh) | 页面处理方法、装置、终端设备、服务器和存储介质 | |
CN107844488B (zh) | 数据查询方法和装置 | |
CN111199037A (zh) | 登录方法、系统和装置 | |
CN114282233A (zh) | Web性能优化方法、装置、计算机设备和存储介质 | |
CN110928571A (zh) | 业务程序开发方法和装置 | |
CN108228457B (zh) | 移动终端的测试代理方法及装置、计算机可读存储介质 | |
CN106131109A (zh) | 基于http协议实现app内嵌网页中任意资源缓存的方法和装置 | |
CN112953719B (zh) | 一种令牌认证方法和装置 | |
CN112948138A (zh) | 一种处理消息的方法和装置 | |
CN114500281A (zh) | 移动端的配置系统、方法及装置 | |
CN110851194A (zh) | 一种用于获取实现新接口的代码的方法和装置 | |
CN114115941A (zh) | 资源发送方法、页面渲染方法、装置、电子设备和介质 | |
CN112559001B (zh) | 更新应用的方法和装置 | |
CN114238928A (zh) | 一种远程服务器管理的方法和装置 | |
CN109657481B (zh) | 数据管理方法及装置 | |
CN113132447A (zh) | 反向代理的方法和系统 | |
CN108958771B (zh) | 应用程序的更新方法、装置、服务器及存储介质 | |
CN113761566A (zh) | 一种数据处理方法和装置 | |
CN113742617A (zh) | 一种缓存更新的方法和装置 | |
CN111163156A (zh) | 基于区块链的数据处理方法、设备及存储介质 | |
CN113114606B (zh) | 配送数据采集的方法和装置 | |
CN110851754A (zh) | 网页访问方法及系统、计算机系统和计算机可读存储介质 | |
CN110262756B (zh) | 用于缓存数据的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |