CN108132807B - 参数加载方法及装置 - Google Patents
参数加载方法及装置 Download PDFInfo
- Publication number
- CN108132807B CN108132807B CN201611092062.5A CN201611092062A CN108132807B CN 108132807 B CN108132807 B CN 108132807B CN 201611092062 A CN201611092062 A CN 201611092062A CN 108132807 B CN108132807 B CN 108132807B
- Authority
- CN
- China
- Prior art keywords
- parameter
- server
- application
- configuration parameters
- memory
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明是关于一种参数加载方法及装置,属于互联网技术领域。所述方法包括:在对外管理组件中,配置直播应用的应用标识以及至少一个服务器的地址信息和端口号;当接收到对直播应用的参数修改请求时,基于应用标识,将参数修改请求中携带的修改后的配置参数存储至数据库中;基于至少一个服务器的地址信息和端口号,将修改后的配置参数由数据库加载至至少一个服务器的内存中。在对外管理组件中通过配置直播应用的应用标识、以及至少一个服务器的地址信息和端口号,使得在接收到对该直播应用的参数修改请求后,至少一个服务器中的每一个服务器均可同步修改后的配置参数,避免多个服务器中存储的同一配置参数的取值不一致,该种参数加载方式效果更优。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种参数加载方法及装置。
背景技术
近年来,集合在线唱歌、在线视频、在线游戏、在线教育等功能为一体的直播应用得到空前发展,越来越多的用户加入到直播与观看直播的行列中。为了满足用户的不同需求,直播应用设置了相关的配置参数。例如,设置了是否允许一个用户同时观看不同直播的配置参数、是否开启直播内历史消息存储的配置参数、对直播内其他用户发送的消息进行高中低级别消息设置的配置参数等。这样,当直播应用在运行过程中第一次接收到用户的参数调用请求时,直播应用所搭载的直播系统会从位于网络侧的数据库中加载与用户的参数调用请求匹配的配置参数,并将该配置参数存储至直播系统所在直播服务器集群中至少一个服务器的内存中,以基于该配置参数通过纯内存操作响应用户的参数调用请求。
相关技术中,直播应用所搭载的直播系统在接收到用户的参数调用请求后,若与该参数调用请求匹配的配置参数已加载到内存中,则直播服务器集群中一个服务器会基于该配置参数响应该参数调用请求。此外,在直播应用运行的过程中,经常会涉及到需要修改配置参数的情况。比如,用户触发了配置参数修改操作,那么除了数据库中会存储修改后的配置参数外,仅对上述参数调用请求进行响应的服务器会接收到修改后的配置参数,并将修改后的配置参数进行存储,以替换原来的配置参数。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
在进行配置参数修改时,仅可将修改后的配置参数同步至直播服务器集群中一个服务器的内存中,而对于其他同样存储有上述配置参数的服务器来说,则不能同步修改后的配置参数,因此会产生多个服务器中存储的同一配置参数的取值不一致的情况,该种参数加载方式效果欠佳。
发明内容
为克服相关技术中存在的问题,本发明提供一种参数加载方法及装置。
根据本发明实施例的第一方面,提供一种参数加载方法,所述方法包括:
在对外管理组件中,配置直播应用的应用标识以及至少一个服务器的地址信息和端口号,所述至少一个服务器用于存储所述直播应用的配置参数;
当接收到对所述直播应用的参数修改请求时,基于所述应用标识,将所述参数修改请求中携带的修改后的配置参数存储至数据库中;
基于所述至少一个服务器的地址信息和端口号,将所述修改后的配置参数由所述数据库加载至所述至少一个服务器的内存中。
在另一个实施例中,所述方法还包括:
设置所述直播应用的配置参数初始值,将所述配置参数初始值添加至所述应用标识指示的第一参数存储对象中,所述第一参数存储对象存储在所述至少一个服务器的内存中;
当接收到包含所述应用标识的参数调用请求时,在所述至少一个服务器中确定响应所述参数调用请求的指定服务器;
在所述指定服务器的内存中获取所述直播应用的配置参数;
若所述直播应用的配置参数未存储于所述指定服务器的内存中,则在所述指定服务器的内存中获取所述第一参数存储对象;
基于所述第一参数存储对象中包含的所述配置参数初始值响应所述参数调用请求。
在另一个实施例中,所述方法还包括:
若所述配置参数未存储于所述指定服务器的内存中,则从所述数据库加载所述直播应用的配置参数至所述至少一个服务器的内存中;
在加载所述直播应用的配置参数的过程中,若再次接收到包含所述应用标识的参数调用请求,则在所述指定服务器的内存中获取已加载到的第一参数;
在所述配置参数初始值中,获取与未加载到的第二参数匹配的第一参数初始值;
基于所述第一参数和所述第一参数初始值,响应所述参数调用请求。
在另一个实施例中,所述基于所述至少一个服务器的地址信息和端口号,将所述配置参数由所述数据库加载至所述至少一个服务器的内存中之后,所述方法还包括:
在所述配置参数加载至所述至少一个服务器的内存中后,记录当前时间;
将所述对外管理组件中的更新时间置为所述当前时间,所述更新时间用于描述最后一次所述直播应用的配置参数由所述数据库加载至所述至少一个服务器的内存的时间;
从所述更新时间开始,在经过预设更新间隔后,将所述数据库中当前存储的所述直播应用的配置参数加载至所述至少一个服务器的内存中。
在另一个实施例中,所述在所述指定服务器的内存中获取所述直播应用的配置参数,包括:
在所述指定服务器的内存中获取第二参数存储对象;
若所述第二参数存储对象中包含有所述直播应用配置参数,则获取所述第二参数存储对象包含的所述直播应用的配置参数。
根据本发明实施例的第二方面,提供一种参数加载装置,所述装置包括:
配置模块,用于在对外管理组件中,配置直播应用的应用标识以及至少一个服务器的地址信息和端口号,所述至少一个服务器用于存储所述直播应用的配置参数;
存储模块,用于当接收到对所述直播应用的参数修改请求时,基于所述应用标识,将所述参数修改请求中携带的修改后的配置参数存储至数据库中;
加载模块,用于基于所述至少一个服务器的地址信息和端口号,将所述修改后的配置参数由所述数据库加载至所述至少一个服务器的内存中。
在另一个实施例中,所述装置还包括:
设置模块,用于设置所述直播应用的配置参数初始值,将所述配置参数初始值添加至所述应用标识指示的第一参数存储对象中,所述第一参数存储对象存储在所述至少一个服务器的内存中;
确定模块,用于当接收到包含所述应用标识的参数调用请求时,在所述至少一个服务器中确定响应所述参数调用请求的指定服务器;
获取模块,用于在所述指定服务器的内存中获取所述直播应用的配置参数;
所述获取模块,还用于若所述直播应用的配置参数未存储于所述指定服务器的内存中,则在所述指定服务器的内存中获取所述第一参数存储对象;
响应模块,用于基于所述第一参数存储对象中包含的所述配置参数初始值响应所述参数调用请求。
在另一个实施例中,所述加载模块,还用于若所述配置参数未存储于所述指定服务器的内存中,则从所述数据库加载所述直播应用的配置参数至所述至少一个服务器的内存中;
所述获取模块,还用于在加载所述直播应用的配置参数的过程中,若再次接收到包含所述应用标识的参数调用请求,则在所述指定服务器的内存中获取已加载到的第一参数;
所述获取模块,还用于在所述配置参数初始值中,获取与未加载到的第二参数匹配的第一参数初始值;
所述响应模块,还用于基于所述第一参数和所述第一参数初始值,响应所述参数调用请求。
在另一个实施例中,所述装置还包括:
记录模块,用于在所述配置参数加载至所述至少一个服务器的内存中后,记录当前时间;
更新模块,用于将所述对外管理组件中的更新时间置为所述当前时间,所述更新时间用于描述最后一次所述直播应用的配置参数由所述数据库加载至所述至少一个服务器的内存的时间;
所述加载模块,还用于从所述更新时间开始,在经过预设更新间隔后,将所述数据库中当前存储的所述直播应用的配置参数加载至所述至少一个服务器的内存中。
在另一个实施例中,所述获取模块,还用于在所述指定服务器的内存中获取第二参数存储对象;若所述第二参数存储对象中包含有所述直播应用配置参数,则获取所述第二参数存储对象包含的所述直播应用的配置参数。
本发明的实施例提供的技术方案可以包括以下有益效果:
在对外管理组件中通过配置直播应用的应用标识,也即AppId(ApplicationIdentity,应用标识),以及用于存储该直播应用的配置参数的至少一个服务器的地址信息和端口号,使得在接收到对该直播应用的参数修改请求后,利用该应用标识、记录的地址信息和端口,可将修改后的配置参数由数据库加载至至少一个服务器的内存中,使得至少一个服务器中的每一个服务器均可同步修改后的配置参数,避免了多个服务器中存储的同一配置参数的取值不一致的情况,该种参数加载方式效果更优。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种参数加载方法的流程图;
图2A是根据一示例性实施例示出的一种参数加载方法的流程图;
图2B是根据一示例性实施例示出的一种参数加载方法的流程图;
图3A是根据一示例性实施例示出的一种参数加载装置的框图;
图3B是根据一示例性实施例示出的一种参数加载装置的框图;
图3C是根据一示例性实施例示出的一种参数加载装置的框图;
图4是根据一示例性实施例示出的一种参数加载装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在对本发明实施例进行详细的解释说明之前,先对本发明实施例涉及的名词进行解释说明。
直播应用:专门为视频直播业务提供的主播与观众之间进行消息实时互动的云服务产品。其中,主播为进行直播的用户,观众为正在观看直播的用户。直播应用中的绝大部分操作均采用了纯内存操作,也即直播应用在运行的过程中,仅依赖其所搭载的直播系统的服务器集群中全部服务器的内存,而不依赖位于网络侧的数据库,因此直播应用不限制当前观看直播的观众人数的上限,而且支持消息海量并发,使得消息可以及时到达、性能较高。
配置参数:对于每一款直播应用,均存在与其相关的配置参数。其中,对于直播应用来说,其配置参数可为是否允许一个用户同时观看不同直播的配置参数、是否开启直播内历史消息存储的配置参数、对直播内其他用户发送的消息进行高中低级别消息设置的配置参数等。
对外管理组件:对外管理组件可为JDK(Java Development Kit,程序设计语言开发工具包)提供的JMX MBean(Java Management Extensions Managed Bean,程序设计语言管理扩展的管理构件),这里的MBean为被管理的Java对象,MBean会暴露一个供用户使用的外部接口,用户可在直播应用所搭载的直播系统运行时,通过该外部接口修改MBean中的属性。
图1是根据一示例性实施例示出的一种参数加载方法的流程图,如图1所示,该方法包括以下步骤。
在步骤101中,在对外管理组件中,配置直播应用的应用标识以及至少一个服务器的地址信息和端口号,至少一个服务器用于存储直播应用的配置参数。
在步骤102中,当接收到对直播应用的参数修改请求时,基于应用标识,将参数修改请求中携带的修改后的配置参数存储至数据库中。
在步骤103中,基于至少一个服务器的地址信息和端口号,将修改后的配置参数由数据库加载至至少一个服务器的内存中。
本发明实施例提供的方法,在对外管理组件中通过配置直播应用的应用标识,也即AppId,以及用于存储该直播应用的配置参数的至少一个服务器的地址信息和端口号,使得在接收到对该直播应用的参数修改请求后,利用该应用标识、记录的地址信息和端口,可将修改后的配置参数由数据库加载至至少一个服务器的内存中,使得至少一个服务器中的每一个服务器均可同步修改后的配置参数,避免了多个服务器中存储的同一配置参数的取值不一致的情况,该种参数加载方式效果更优。
在另一个实施例中,该方法还包括:
设置直播应用的配置参数初始值,将配置参数初始值添加至应用标识指示的第一参数存储对象中,第一参数存储对象存储在至少一个服务器的内存中;
当接收到包含应用标识的参数调用请求时,在至少一个服务器中确定响应参数调用请求的指定服务器;
在指定服务器的内存中获取直播应用的配置参数;
若直播应用的配置参数未存储于指定服务器的内存中,则在指定服务器的内存中获取第一参数存储对象;
基于第一参数存储对象中包含的配置参数初始值响应参数调用请求。
在另一个实施例中,该方法还包括:
若配置参数未存储于指定服务器的内存中,则从数据库加载直播应用的配置参数至至少一个服务器的内存中;
在加载直播应用的配置参数的过程中,若再次接收到包含应用标识的参数调用请求,则在指定服务器的内存中获取已加载到的第一参数;
在配置参数初始值中,获取与未加载到的第二参数匹配的第一参数初始值;
基于第一参数和第一参数初始值,响应参数调用请求。
在另一个实施例中,基于至少一个服务器的地址信息和端口号,将配置参数由数据库加载至至少一个服务器的内存中之后,该方法还包括:
在配置参数加载至至少一个服务器的内存中后,记录当前时间;
将对外管理组件中的更新时间置为当前时间,更新时间用于描述最后一次直播应用的配置参数由数据库加载至至少一个服务器的内存的时间;
从更新时间开始,在经过预设更新间隔后,将数据库中当前存储的直播应用的配置参数加载至至少一个服务器的内存中。
在另一个实施例中,在指定服务器的内存中获取直播应用的配置参数,包括:
在指定服务器的内存中获取第二参数存储对象;
若第二参数存储对象中包含有直播应用配置参数,则获取第二参数存储对象包含的直播应用的配置参数。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图2A根据一示例性实施例示出的一种参数加载方法的流程图,如图2A所示,该方法包括以下步骤。
在步骤201中,设置直播应用的配置参数初始值,将该配置参数初始值添加至该直播应用的应用标识指示的第一参数存储对象中。
在本发明实施例中,配置参数初始值即为直播应用所搭载的直播系统为该直播应用的配置参数设置的一个默认值。例如,若直播应用中的配置参数包括“是否开启直播内历史消息存储”的配置参数、“将直播内其他用户的点赞消息进行高中低级别消息设置”的配置参数和“是否接收直播开播提醒”的配置参数,则设置直播应用的配置参数初始值可为“开启直播内历史消息存储”、“将直播内其他用户的点赞消息设置为高级别消息”和“接收直播开播提醒”。本发明实施例对配置参数的内容和配置参数初始值的设置方式不进行具体限定。
其中,直播应用所搭载的直播系统存在于直播服务器集群中,该直播服务器集群包括至少一个服务器,也即该直播系统由直播服务器集群中的至少一个服务器维护,至少一个服务器的内存用于存储直播应用的配置参数。
在设置了直播应用的配置参数初始值后,根据直播应用的应用标识,在至少一个服务器的内存中,获取该应用标识指示的第一参数存储对象,并将该配置参数初始值添加至该第一参数存储对象中。其中,该第一参数存储对象可为诸如AppInfoObj(ApplicationInformation Object,应用程序信息对象)的存储对象,第一参数存储对象存储在至少一个服务器中每一个服务器的内存中。
需要说明的是,在将配置参数初始值添加至上述应用标识指示的第一参数存储对象中时,至少一个服务器中每一个服务器中存储的第一参数存储对象中均需添加。例如,若该直播应用为应用1,应用1的应用标识为App1,应用1所搭载的直播系统所在的直播服务器集群中包括10个服务器,则在10个服务器的内存中获取APP1指示的10个第一参数存储对象AppInfoObj1,并将应用1的配置参数初始值添加在这10个AppInfoObj1中。
在步骤202中,在对外管理组件中,配置该直播应用的应用标识以及至少一个服务器的地址信息和端口号。
其中,在配置该直播应用的应用标识以及至少一个服务器的地址信息和端口号时,可以在对外管理组件中维护一个如下述表1所示的直播应用服务器列表,并基于该直播应用服务器列表存储该直播应用的应用标识与至少一个服务器的地址信息和端口号之间的对应关系。
由下述表1可知,5个服务器存储有应用标识为App1的直播应用的配置参数,其中,端口号为80的服务器的地址信息为117.114.151.174;端口号为81的服务器的地址信息为117.114.151.175;端口号为82的服务器的地址信息为117.114.151.176;端口号为83的服务器的地址信息为117.114.151.177;端口号为84的服务器的地址信息为117.114.151.178。有3个服务器存储有应用标识为App2的直播应用的配置参数,其中,端口号为91的服务器的地址信息为157.112.146.208;端口号为92的服务器的地址信息为157.112.146.209;端口号为93的服务器的地址信息为157.112.146.210。
表1
需要说明的是,上述步骤201和步骤202的执行先后顺序任意,即上述步骤201既可以在上述步骤202之前执行,也可以在上述步骤202之后执行,本发明实施例对此不进行具体限定。
在步骤203中,当接收到包含该应用标识的参数调用请求时,在至少一个服务器中确定响应该参数调用请求的指定服务器,在指定服务器的内存中获取第二参数存储对象;若第二参数存储对象中包含有该直播应用的配置参数,则获取第二参数存储对象包含的该直播应用的配置参数;若第二参数存储对象中未包含该直播应用的配置参数,则执行下述步骤204。
在本发明实施例中,当接收到参数调用请求时,读取该参数调用请求中携带的应用标识,根据该应用标识确定其所指示的直播应用搭载的直播系统所在的直播服务器集群,即需先确定应存储该直播应用的配置参数的至少一个服务器,并在至少一个服务器中确定响应该参数调用请求的指定服务器。例如,若该参数调用请求中携带的应用标识为App1,确定App1指示的直播应用为直播应用H,直播应用H搭载的直播系统所在的服务器集群中包括5个服务器,这5个服务器分别为服务器A、服务器B、服务器C、服务器D和服务器E,则可将服务器A确定为指定服务器。
在确定响应参数调用请求的指定服务器后,根据该应用标识获取指定服务器的内存中的第二参数存储对象。其中,该第二参数存储对象可为诸如ConcurrentHashMap(并发散列表)的Map(泛型)对象,第二参数存储对象存储在上述至少一个服务器中每一个服务器的内存中,用于存储该直播应用的配置参数。
若第二参数存储对象中包含有该应用标识指示的直播应用的配置参数,则获取第二参数存储对象包含的该应用标识指示的直播应用的配置参数,并将该配置参数返回给发送参数调用请求的发送方,也即基于配置参数响应参数调用请求;若第二参数存储对象中未包含该应用标识指示的直播应用的配置参数,则说明该参数调用请求为直播应用搭载的直播系统在启动后接收到的第一个参数调用请求,因此需要执行下述步骤204。
在步骤204中,若第二参数存储对象中未包含该直播应用的配置参数,则在指定服务器的内存中获取第一参数存储对象,并基于第一参数存储对象中包含的配置参数初始值响应该参数调用请求,并从数据库加载该直播应用的配置参数至至少一个服务器的内存中。
其中,若第二参数存储对象中未包含该应用标识指示的直播应用的配置参数,也即该应用标识指示的直播应用的配置参数未存储于指定服务器的内存中,则根据该应用标识在指定服务器的内存中获取第一参数存储对象,并在第一参数存储对象中获取配置参数初始值。之后,将该配置参数初始值返回给发送该参数调用请求的发送方,也即基于配置参数初始值响应该参数调用请求。
需要说明的是,在本发明实施例中,上述提及的第一参数存储对象和第二参数存储对象均直接存储在至少一个服务器中每一个服务器的内存中,也即第一参数存储对象和第二参数存储对象分别独立存储于至少一个服务器中每一个服务器的内存中;而在另一个实施例中,第一参数存储对象可存储在第二参数存储对象中,也即,第二参数存储对象可包括第一参数存储对象。其中,若第一参数存储对象存储在第二参数存储对象中,则当在第一参数存储对象中获取配置参数初始值时,需要调用诸如PutIfAbsent(缺席调用)方法的初始值获取方法;也即,若第二参数存储对象中未包含该应用标识指示的直播应用的配置参数,则调用该初始值获取方法,根据直播应用的应用标识,在第二参数存储对象中获取第一参数存储对象,并获取该第一参数存储对象中的配置参数初始值。其中,在调用初始值获取方法时,需要以应用标识为Key(关键字),以第一参数存储对象为Value(键值)进行调用。
例如,设第一参数存储对象是AppInfoObj,第二参数存储对象是ConcurrentHashMap,AppInfoObj和直播应用的配置参数均存储在ConcurrentHashMap中,初始值获取方法为PutIfAbsent方法,则具体设置和获取直播应用的配置参数初始值过程可为:首先,设定一些默认值作为直播应用的配置参数初始值,将第一参数存储对象设置为AppInfoObj;然后,将该配置参数初始值存储在AppInfoObj中;最后,将第二参数存储对象设置为ConcurrentHashMap,并将AppInfoObj存储在ConcurrentHashMap中。当在AppInfoObj中获取配置参数初始值时,调用PutIfAbsent方法,以AppId为Key,AppInfoObj为Value,在ConcurrentHashMap中获取AppInfoObj,并获取AppInfoObj中的配置参数初始值。
在基于配置参数初始值响应参数调用请求后,会根据该应用标识在数据库中获取该应用标识指示的直播应用的配置参数,并将该配置参数加载至至少一个服务器中每一个服务器的内存中,具体是加载到第二参数存储对象中。
其中,数据库可维护一个如表2所示的配置参数存储列表,将配置参数和与其对应的直播应用的应用标识对应存储至该配置参数存储列表中。由表2可知,应用标识App1指示的直播应用的配置参数为“关闭直播内历史消息存储”、“将直播内其他用户的点赞消息设置为低级别消息”和“拒收直播开播提醒”;应用标识App2指示的直播应用的配置参数为“关闭直播内历史消息存储”、“将直播内其他用户的点赞消息设置为中级别消息”和“拒收直播开播提醒”。
表2
需要说明的是,在加载直播应用的配置参数的过程中,若再次接收到包含该应用标识的参数调用请求,则执行下述步骤205;当完成该直播应用的配置参数的加载后,还可执行下述步骤208和步骤209。
在步骤205中,在加载直播应用的配置参数的过程中,若再次接收到包含该应用标识的参数调用请求,则在指定服务器的内存中获取已加载到的第一参数,并在配置参数初始值中,获取与未加载到的第二参数匹配的第一参数初始值,基于第一参数和第一参数初始值,响应该参数调用请求。
在加载该直播应用的配置参数的过程中,也即尚未完成对配置参数的加载时,若再次接收到包含该应用标识的参数调用请求,则在指定服务器的内存中获取当前已加载到的第一参数。其中,该第一参数为该应用标识指示的直播应用的配置参数的一部分;之后,获取与未加载到的第二参数匹配的第一参数初始值。其中,该第一参数初始值为该应用标识指示的直播应用的配置参数初始值的一部分;第一参数和第二参数组成了该直播应用的配置参数。最后,将第一参数和第一参数初始值作为一个整体响应再次接收到的该参数调用请求。
例如,设应用标识为App1,其指示的直播应用为应用A,应用A的配置参数初始值为“开启直播内历史消息存储”、“将直播内其他用户的点赞消息设置为高级别消息”和“接收直播开播提醒”,应用A的配置参数为“关闭直播内历史消息存储”、“将直播内其他用户的点赞消息设置为低级别消息”和“拒收直播开播提醒”,若在将配置参数“关闭直播内历史消息存储”、“将直播内其他用户的点赞消息设置为低级别消息”加载完毕时,再次接收到包含应用标识App1的参数调用请求,则此时的第一参数为“关闭直播内历史消息存储”、“将直播内其他用户的点赞消息设置为低级别消息”,第一参数初始值为“接收直播开播提醒”,将“关闭直播内历史消息存储”、“将直播内其他用户的点赞消息设置为低级别消息”和“接收直播开播提醒”作为整体响应参数调用请求。
其中,在完成配置参数的加载后,若再次接收到包含该应用标识的参数调用请求,则基于加载完成的配置参数响应该参数调用请求即可。
综合来看,由于设置了直播应用的配置参数初始值,上述步骤204和步骤205所示的方法可以基于该配置参数初始值,响应在配置参数加载过程中接收到的参数调用请求,无需在配置参数加载完毕后才对参数调用请求进行响应,因此解决了配置参数加载过程中可能发生的参数调用请求的请求线程堆积问题,降低了当并发的参数调用请求过于高时致使直播系统崩溃的风险。而对于一个直播应用来说,其配置参数初始值与数据库中存储的该直播应用的配置参数可能存在不同之处,所以响应参数调用请求的配置参数可能存在不准确的情况。但这种情况仅仅存在于直播应用所搭载的直播系统在启动后,第一次接收到参数调用请求的场景中,且只影响极少数甚至可以忽略不计的用户,因此对于直播应用来说,是完全可以接受的。
需要说明的是,图2A中所示的步骤201至步骤205描述了直播应用在运行中接收到参数调用请求时执行的操作。众所周知,在直播应用的运行过程中,用户常常会对配置参数进行修改,若直播系统在运行中接收到对直播应用的参数修改请求,则还会执行图2B中所示的步骤206至步骤207。
在步骤206中,当接收到对该直播应用的参数修改请求时,基于该应用标识,将该参数修改请求中携带的修改后的配置参数存储至数据库中。
在本发明实施例中,该参数修改请求中除了携带修改后的配置参数外,还包括有该直播应用的应用标识。当接收到对该直播应用的参数修改请求时,获取该参数修改请求中携带的修改后的配置参数和该应用标识,并基于该应用标识,将修改后的配置参数存储至数据库中,也即用修改后的配置参数对数据库中当前存储的该应用标识对应的配置参数进行更新。
在步骤207中,基于至少一个服务器的地址信息和端口号,将修改后的配置参数由数据库加载至至少一个服务器的内存中。
其中,在将修改后的配置参数由数据库加载至至少一个服务器的内存中时,需要调用对外管理组件,在调用对外管理组件时,可以是具有同步权限的用户通过诸如API(Application Programming Interface,应用程序编程接口)的接口不触发,也可以是系统管理员触发。
若对外管理组件中维护了如上述表1所示的直播应用服务器列表,并基于该直播应用服务器列表存储直播应用的应用标识与至少一个服务器的地址信息和端口号之间的对应关系,则在对外管理组件中获取该应用标识对应的至少一个服务器的地址信息和端口号时,根据该应用标识在上述列表中进行查找,进而得到与该应用配置匹配的至少一个服务器的地址信息和端口号。之后,基于至少一个服务器的地址信息和端口号,将修改后的配置参数由数据库加载至至少一个服务器的内存中。
需要说明的是,在将修改后的配置参数由数据库加载至至少一个服务器的内存的操作过程中,需要使用异步加载的方式进行操作,也即先将数据库中修改后的配置参数加载到至少一个服务器的内存中,待加载过程执行完毕后,再基于加载到的修改后的配置参数,对至少一个服务器的内存中原来存储的配置参数进行替换,将修改后的配置参数作为该直播应用新的配置参数进行存储,这样可以避免在参数调用请求高并发的场景下出现参数调用请求的请求线程堆积的情况。
在通过上述步骤206和步骤207完成将修改后的配置参数加载至至少一个服务器的内存后,还可包括下述步骤208和步骤209。
在步骤208中,在该直播应用的配置参数加载至至少一个服务器的内存中后,记录当前时间,并将对外管理组件中的更新时间置为当前时间。
在本发明实施例中,还会在对外管理组件中设置一个更新时间,该更新时间用于描述最后一次该直播应用的配置参数由数据库加载至至少一个服务器的内存中的时间。这样,在完成将配置参数加载至至少一个服务器的内存中后,直播系统会记录完成将配置参数加载至至少一个服务器内存中的时间。例如,若完成将配置参数加载至至少一个服务器内存中的时间为13点30分,则13:30即为当前时间,因此将对外管理组件中的更新时间置为13:30。
进一步地,本发明实施例还设置了通过设置预设更新间隔,周期性地对存储在至少一个服务器内存中的配置参数进行更新的过程,详见下述步骤209。
在步骤209中,从更新时间开始,在经过预设更新间隔后,将数据库中当前存储的该直播应用的配置参数加载至至少一个服务器的内存中。
其中,在获取到预设更新间隔后,基于更新时间和预设更新间隔,确定下一次修改参数的更新时间,即在下一个更新时间来到时将数据库中存储的该直播应用的配置参数加载至至少一个服务器内存中。例如,若更新时间为15:10,预设更新间隔为2小时,则在17:10时将数据库中当前存储的直播应用的配置参数加载至至少一个服务器的内存中。其中,为了实现周期性地更新至少一个服务器内存中的配置参数,可以在直播应用所搭载的直播系统中增加一个定时器。
本发明实施例提供的方法,在对外管理组件中通过配置直播应用的应用标识,也即AppId,以及用于存储该直播应用的配置参数的至少一个服务器的地址信息和端口号,使得在接收到对该直播应用的参数修改请求后,利用该应用标识、记录的地址信息和端口,可将修改后的配置参数由数据库加载至至少一个服务器的内存中,使得至少一个服务器中的每一个服务器均可同步修改后的配置参数,避免了多个服务器中存储的同一配置参数的取值不一致的情况,该种参数加载方式效果更优。
在另一个实施例中,通过设置直播应用的配置参数初始值,并在至少一个服务器的内存中未包含该直播应用的配置参数时,基于配置参数初始值响应该直播应用接收到的参数调用请求,无需在配置参数加载完毕后才对参数调用请求进行响应,因此解决了配置参数加载过程中可能发生的参数调用请求的请求线程堆积问题,降低了当并发的参数调用请求过于高时致使直播系统崩溃的风险。
图3A是根据一示例性实施例示出的一种参数加载装置的框图。参照图3A,该装置包括配置模块301,存储模块302和加载模块303。
该配置模块301,用于在对外管理组件中,配置直播应用的应用标识以及至少一个服务器的地址信息和端口号,至少一个服务器用于存储直播应用的配置参数;
该存储模块302,用于当接收到对直播应用的参数修改请求时,基于应用标识,将参数修改请求中携带的修改后的配置参数存储至数据库中;
该加载模块303,用于基于至少一个服务器的地址信息和端口号,将修改后的配置参数由数据库加载至至少一个服务器的内存中。
在另一个实施例中,参照图3B,该装置还包括设置模块304,确定模块305,获取模块306和响应模块307。
该设置模块304,用于设置直播应用的配置参数初始值,将配置参数初始值添加至应用标识指示的第一参数存储对象中,第一参数存储对象存储在至少一个服务器的内存中;
该确定模块305,用于当接收到包含应用标识的参数调用请求时,在至少一个服务器中确定响应参数调用请求的指定服务器;
该获取模块306,用于在指定服务器的内存中获取直播应用的配置参数;
该获取模块306,还用于若直播应用的配置参数未存储于指定服务器的内存中,则在指定服务器的内存中获取第一参数存储对象;
该响应模块307,用于基于第一参数存储对象中包含的配置参数初始值响应参数调用请求。
在另一个实施例中,该加载模块303,还用于若配置参数未存储于指定服务器的内存中,则从数据库加载直播应用的配置参数至至少一个服务器的内存中;
该获取模块306,还用于在加载直播应用的配置参数的过程中,若再次接收到包含应用标识的参数调用请求,则在指定服务器的内存中获取已加载到的第一参数;
该获取模块306,还用于在配置参数初始值中,获取与未加载到的第二参数匹配的第一参数初始值;
该响应模块307,还用于基于第一参数和第一参数初始值,响应参数调用请求。
在另一个实施例中,参照图3C,该装置还包括记录模块308和更新模块309。
该记录模块308,用于在配置参数加载至至少一个服务器的内存中后,记录当前时间;
该更新模块309,用于将对外管理组件中的更新时间置为当前时间,更新时间用于描述最后一次直播应用的配置参数由数据库加载至至少一个服务器的内存的时间;
该加载模块303,还用于从更新时间开始,在经过预设更新间隔后,将数据库中当前存储的直播应用的配置参数加载至至少一个服务器的内存中。
在另一个实施例中,该获取模块306,还用于在指定服务器的内存中获取第二参数存储对象;若第二参数存储对象中包含有直播应用配置参数,则获取第二参数存储对象包含的直播应用的配置参数。
本发明实施例提供的装置,在对外管理组件中通过配置直播应用的应用标识,也即AppId,以及用于存储该直播应用的配置参数的至少一个服务器的地址信息和端口号,使得在接收到对该直播应用的参数修改请求后,利用该应用标识、记录的地址信息和端口,可将修改后的配置参数由数据库加载至至少一个服务器的内存中,使得至少一个服务器中的每一个服务器均可同步修改后的配置参数,避免了多个服务器中存储的同一配置参数的取值不一致的情况,该种参数加载方式效果更优。
在另一个实施例中,通过设置直播应用的配置参数初始值,并在至少一个服务器的内存中未包含该直播应用的配置参数时,基于配置参数初始值响应该直播应用接收到的参数调用请求,无需在配置参数加载完毕后才对参数调用请求进行响应,因此解决了配置参数加载过程中可能发生的参数调用请求的请求线程堆积问题,降低了当并发的参数调用请求过于高时致使直播系统崩溃的风险。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图4是根据一示例性实施例示出的一种参数加载装置400的框图。例如,装置400可以被提供为一服务器。参照图4,装置400包括处理组件422,其进一步包括一个或多个处理器,以及由存储器432所代表的存储器资源,用于存储可由处理组件422的执行的指令,例如应用程序。存储器432中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件422被配置为执行指令,以执行上述参数加载方法。
装置400还可以包括一个电源组件426被配置为执行装置400的电源管理,一个有线或无线网络接口450被配置为将装置400连接到网络,和一个输入输出(I/O)接口458。装置400可以操作基于存储在存储器432的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (8)
1.一种参数加载方法,其特征在于,所述方法包括:
在对外管理组件中,配置直播应用的应用标识以及至少一个服务器的地址信息和端口号,所述至少一个服务器用于存储所述直播应用的配置参数;
当接收到对所述直播应用的参数修改请求时,基于所述应用标识,将所述参数修改请求中携带的修改后的配置参数存储至数据库中;
基于所述至少一个服务器的地址信息和端口号,将所述修改后的配置参数由所述数据库加载至所述至少一个服务器的内存中;
所述方法还包括:
设置所述直播应用的配置参数初始值,将所述配置参数初始值添加至所述应用标识指示的第一参数存储对象中,所述第一参数存储对象存储在所述至少一个服务器的内存中;
当接收到包含所述应用标识的参数调用请求时,在所述至少一个服务器中确定响应所述参数调用请求的指定服务器;
在所述指定服务器的内存中获取所述直播应用的配置参数;
若所述直播应用的配置参数未存储于所述指定服务器的内存中,则在所述指定服务器的内存中获取所述第一参数存储对象;
基于所述第一参数存储对象中包含的所述配置参数初始值响应所述参数调用请求。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述配置参数未存储于所述指定服务器的内存中,则从所述数据库加载所述直播应用的配置参数至所述至少一个服务器的内存中;
在加载所述直播应用的配置参数的过程中,若再次接收到包含所述应用标识的参数调用请求,则在所述指定服务器的内存中获取已加载到的第一参数,所述第一参数为所述应用标识指示的直播应用的配置参数的一部分;
在所述配置参数初始值中,获取与未加载到的第二参数匹配的第一参数初始值,所述第二参数和所述第一参数组成了所述直播应用的配置参数;
基于所述第一参数和所述第一参数初始值,响应所述参数调用请求。
3.根据权利要求1所述的方法,其特征在于,所述基于所述至少一个服务器的地址信息和端口号,将所述配置参数由所述数据库加载至所述至少一个服务器的内存中之后,所述方法还包括:
在所述配置参数加载至所述至少一个服务器的内存中后,记录当前时间;
将所述对外管理组件中的更新时间置为所述当前时间,所述更新时间用于描述最后一次所述直播应用的配置参数由所述数据库加载至所述至少一个服务器的内存的时间;
从所述更新时间开始,在经过预设更新间隔后,将所述数据库中当前存储的所述直播应用的配置参数加载至所述至少一个服务器的内存中。
4.根据权利要求1所述的方法,其特征在于,所述在所述指定服务器的内存中获取所述直播应用的配置参数,包括:
在所述指定服务器的内存中获取第二参数存储对象;
若所述第二参数存储对象中包含有所述直播应用配置参数,则获取所述第二参数存储对象包含的所述直播应用的配置参数。
5.一种参数加载装置,其特征在于,所述装置包括:
配置模块,用于在对外管理组件中,配置直播应用的应用标识以及至少一个服务器的地址信息和端口号,所述至少一个服务器用于存储所述直播应用的配置参数;
存储模块,用于当接收到对所述直播应用的参数修改请求时,基于所述应用标识,将所述参数修改请求中携带的修改后的配置参数存储至数据库中;
加载模块,用于基于所述至少一个服务器的地址信息和端口号,将所述修改后的配置参数由所述数据库加载至所述至少一个服务器的内存中;
所述装置还包括:
设置模块,用于设置所述直播应用的配置参数初始值,将所述配置参数初始值添加至所述应用标识指示的第一参数存储对象中,所述第一参数存储对象存储在所述至少一个服务器的内存中;
确定模块,用于当接收到包含所述应用标识的参数调用请求时,在所述至少一个服务器中确定响应所述参数调用请求的指定服务器;
获取模块,用于在所述指定服务器的内存中获取所述直播应用的配置参数;
所述获取模块,还用于若所述直播应用的配置参数未存储于所述指定服务器的内存中,则在所述指定服务器的内存中获取所述第一参数存储对象;
响应模块,用于基于所述第一参数存储对象中包含的所述配置参数初始值响应所述参数调用请求。
6.根据权利要求5所述的装置,其特征在于,所述加载模块,还用于若所述配置参数未存储于所述指定服务器的内存中,则从所述数据库加载所述直播应用的配置参数至所述至少一个服务器的内存中;
所述获取模块,还用于在加载所述直播应用的配置参数的过程中,若再次接收到包含所述应用标识的参数调用请求,则在所述指定服务器的内存中获取已加载到的第一参数,所述第一参数为所述应用标识指示的直播应用的配置参数的一部分;
所述获取模块,还用于在所述配置参数初始值中,获取与未加载到的第二参数匹配的第一参数初始值,所述第二参数和所述第一参数组成了所述直播应用的配置参数;
所述响应模块,还用于基于所述第一参数和所述第一参数初始值,响应所述参数调用请求。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
记录模块,用于在所述配置参数加载至所述至少一个服务器的内存中后,记录当前时间;
更新模块,用于将所述对外管理组件中的更新时间置为所述当前时间,所述更新时间用于描述最后一次所述直播应用的配置参数由所述数据库加载至所述至少一个服务器的内存的时间;
所述加载模块,还用于从所述更新时间开始,在经过预设更新间隔后,将所述数据库中当前存储的所述直播应用的配置参数加载至所述至少一个服务器的内存中。
8.根据权利要求5所述的装置,其特征在于,所述获取模块,还用于在所述指定服务器的内存中获取第二参数存储对象;若所述第二参数存储对象中包含有所述直播应用配置参数,则获取所述第二参数存储对象包含的所述直播应用的配置参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611092062.5A CN108132807B (zh) | 2016-12-01 | 2016-12-01 | 参数加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611092062.5A CN108132807B (zh) | 2016-12-01 | 2016-12-01 | 参数加载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108132807A CN108132807A (zh) | 2018-06-08 |
CN108132807B true CN108132807B (zh) | 2021-04-09 |
Family
ID=62387776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611092062.5A Active CN108132807B (zh) | 2016-12-01 | 2016-12-01 | 参数加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108132807B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328275A (zh) * | 2020-10-10 | 2021-02-05 | 岭东核电有限公司 | 用于核电厂的数据更新方法、装置、终端设备和存储介质 |
CN113037887A (zh) * | 2021-03-09 | 2021-06-25 | 北京金山云网络技术有限公司 | 设备状态的识别方法及装置、存储介质、电子设备 |
CN114489851B (zh) * | 2022-01-20 | 2024-02-20 | 飞腾信息技术有限公司 | 内存芯片的启动方法、装置、计算机设备及存储介质 |
CN115118590B (zh) * | 2022-06-22 | 2024-05-10 | 平安科技(深圳)有限公司 | 配置数据的管理方法、装置、系统、设备和存储介质 |
CN116483474B (zh) * | 2023-06-21 | 2023-09-19 | 中国工商银行股份有限公司 | 参数加载方法、装置、设备、计算机可读存储介质及产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101615130A (zh) * | 2009-07-24 | 2009-12-30 | 方正国际软件(武汉)有限公司 | 业务功能管理系统和方法 |
CN103124221A (zh) * | 2011-11-21 | 2013-05-29 | 苏州达联信息科技有限公司 | 一种视频分发网络节点服务器的配置同步方法 |
CN103248651A (zh) * | 2012-02-09 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 一种性能监控的方法和系统以及客户端和服务器 |
CN103777969A (zh) * | 2012-10-19 | 2014-05-07 | 阿里巴巴集团控股有限公司 | 一种无需重启部署服务器参数的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8086698B2 (en) * | 2006-06-02 | 2011-12-27 | Google Inc. | Synchronizing configuration information among multiple clients |
US10333785B2 (en) * | 2014-05-08 | 2019-06-25 | Dell Products L.P. | Server information handling system configuration by peer-to-peer networking |
-
2016
- 2016-12-01 CN CN201611092062.5A patent/CN108132807B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101615130A (zh) * | 2009-07-24 | 2009-12-30 | 方正国际软件(武汉)有限公司 | 业务功能管理系统和方法 |
CN103124221A (zh) * | 2011-11-21 | 2013-05-29 | 苏州达联信息科技有限公司 | 一种视频分发网络节点服务器的配置同步方法 |
CN103248651A (zh) * | 2012-02-09 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 一种性能监控的方法和系统以及客户端和服务器 |
CN103777969A (zh) * | 2012-10-19 | 2014-05-07 | 阿里巴巴集团控股有限公司 | 一种无需重启部署服务器参数的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108132807A (zh) | 2018-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108132807B (zh) | 参数加载方法及装置 | |
CN110493067B (zh) | 一种api网关服务更新的方法及装置 | |
CN112019475B (zh) | 无服务器架构下的资源访问方法、设备、系统及存储介质 | |
CN107451147B (zh) | 一种kafka集群动态切换的方法和装置 | |
CN107291750B (zh) | 一种数据迁移方法和装置 | |
CN110309161B (zh) | 一种数据同步方法、装置及服务器 | |
CN106533713B (zh) | 一种应用部署方法及设备 | |
WO2017167121A1 (zh) | 确定及运用应用程序之间的关系关联的方法及装置 | |
CN109173270B (zh) | 一种游戏服务系统和实现方法 | |
CN111770355B (zh) | 媒体服务器确定方法、装置、服务器以及存储介质 | |
CN110377431B (zh) | 多注册中心场景下服务调用方法及装置 | |
CN110888858B (zh) | 数据库的操作方法和装置、存储介质、电子装置 | |
WO2018071432A1 (en) | Information pushing | |
CN113590169B (zh) | 应用部署方法、应用部署系统和计算机可读存储介质 | |
CN110781149A (zh) | 管理直播间信息的方法、装置、设备及存储介质 | |
CN111698281B (zh) | 一种资源下载方法、装置、电子设备及存储介质 | |
CN115134373A (zh) | 数据同步方法、装置、存储介质及电子设备 | |
CN116233283B (zh) | 一种设备通信协议的动态扩展和热插拔方法 | |
CN113094074B (zh) | 一种服务集群的更新方法及装置 | |
CN106855816B (zh) | 终端中应用程序的资源文件加载方法和装置 | |
CN106331774A (zh) | 设备连接的方法和装置、以及智能电视系统 | |
CN107547607B (zh) | 一种集群迁移方法及装置 | |
WO2021036838A1 (zh) | 应用程序的安装方法、运行方法、电子设备、计算机可读介质 | |
CN114461149A (zh) | 一种基于K8s的分布式数据存储方法及装置 | |
CN115713317A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |