CN107947960A - 配置信息的推送方法及系统、配置信息的接收方法及系统 - Google Patents

配置信息的推送方法及系统、配置信息的接收方法及系统 Download PDF

Info

Publication number
CN107947960A
CN107947960A CN201710951427.3A CN201710951427A CN107947960A CN 107947960 A CN107947960 A CN 107947960A CN 201710951427 A CN201710951427 A CN 201710951427A CN 107947960 A CN107947960 A CN 107947960A
Authority
CN
China
Prior art keywords
information
configuration information
client
configuration
fresh
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.)
Granted
Application number
CN201710951427.3A
Other languages
English (en)
Other versions
CN107947960B (zh
Inventor
刘建民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yonyou Network Technology Co Ltd
Original Assignee
Yonyou Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yonyou Network Technology Co Ltd filed Critical Yonyou Network Technology Co Ltd
Priority to CN201710951427.3A priority Critical patent/CN107947960B/zh
Publication of CN107947960A publication Critical patent/CN107947960A/zh
Application granted granted Critical
Publication of CN107947960B publication Critical patent/CN107947960B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/103Active monitoring, e.g. heartbeat, ping or trace-route with adaptive polling, i.e. dynamically adapting the polling rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Abstract

本发明提出了一种配置信息的推送方法、系统、配置信息的接收方法、系统、计算机装置及计算机可读存储介质,其中用于服务端的配置信息的推送方法包括:接收来自客户端的HTTP请求;检测配置信息的更新信息,同时将更新信息存储至阻塞队列;将阻塞队列中的更新信息推送至客户端;当阻塞队列中不存在更新信息时,令客户端推送更新信息的线程等待通知;同时判断是否出现请求超时异常或网络异常;当未出现请求超时异常或网络异常,以及阻塞队列中已存储有更新信息时,将更新信息推送至客户端。采用基于长轮询方案连接等待和重试,实现类似长连接效果,可以有效的在HTTP协议的基础上,达到实时获取变更状态的效果。

Description

配置信息的推送方法及系统、配置信息的接收方法及系统
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种配置信息的推送方法、系统、配置信息的接收方法、系统、计算机装置及计算机可读存储介质。
背景技术
在互联网应用场景下,一个完整的业务通常由多个微服务组成,每个微服务在开发环境、测试环境、预发布环境和生产环境对应着不同的配置信息,需要针对不同环境维护多份。开发者在开发测试以及联调的时候需要对应不同的环境信息。而频繁的修改和调整配置信息会带来了很大麻烦,并且大量的配置文件的维护给运维人员带来相当大的困扰。
为解决上述问题出现了配置中心,在局域网下如图1所示,私有部署一份配置中心服务,客户端可以通过Socket连接或者Zookeeper的Watcher机制,监听服务端的配置变化。但是如果配置中心以公有服务的方式提供使用时,全链路经过了SLB、Nginx可能还有内部的Haproxy的层层转发,即使配置长时间不超时,也可能由于中间层的网络问题,造成链接异常。所以此类服务不适用类似局域网场景下的TCP直连场景,配置文件的获取和监听方式需要改变。如果以无状态的HTTP请求方式,客户端不断的查询配置状态,获取到不同状态时再重新下载文件更新到本地,方案如图2所示,为了安全性,需要对请求进行加签、验签等操作。缺少了TCP的长链接机制,以传统的无状态的HTTP方式轮询访问服务端,会增加服务端的压力。同时,在大多数时间里,在配置文件没有变化,无谓的客户端发起的轮询检查,消耗大量的资源。
发明内容
本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。
为此,本发明的一个方面在于提出了一种配置信息的推送方法。
本发明的另一个方面在于提出了一种配置信息的推送系统。
本发明的再一个方面在于提出了一种配置信息的接收方法。
本发明的又一个方面在于提出了一种配置信息的接收系统。
本发明的又一个方面在于提出了一种计算机装置。
本发明的又一个方面在于提出了一种计算机可读存储介质。
有鉴于此,根据本发明的一个方面,提出了一种配置信息的推送方法,用于服务端,服务端包括多个阻塞队列,每个阻塞队列对应不同的客户端连接,配置信息的推送方法包括:接收来自客户端的HTTP请求;检测配置信息的更新信息,同时将更新信息存储至阻塞队列;将阻塞队列中的更新信息推送至客户端;当阻塞队列中不存在更新信息时,令客户端推送更新信息的线程等待通知;判断是否出现请求超时异常或网络异常;当未出现请求超时异常或网络异常,以及阻塞队列中已存储有更新信息时,将更新信息推送至客户端。
本发明提供的配置信息的推送方法,运维管理员可以登录云服务,维护配置信息的内容和版本。SLB、Nginx等负载均衡服务器,一般设置为连接超时时间为30S左右,优选为30S,配置轮询时间间隔为30S之内。在运行期,实时的调整配置信息的变化,通过单独的线程监听外部队列任何配置文件的更新信息,其中外部队列例如消息队列(RabbitMQ),会在消息队列中发送该更新信息,将该更新信息转化为特殊结构存储到对应的阻塞队列(BlockingQueue)中。将存储在阻塞队列中的更新信息推送至客户端,如果阻塞队列中没有更新信息服务端并不立即发送,而是利用阻塞队列挂住线程,有更新信息后立即发送,此为和短轮询最大的差异。如果等待过程中没有超时或者网络异常,则在阻塞队列中已存储有更新信息时将更新信息推送至客户端。采用基于长轮询方案连接等待和重试,实现类似长连接效果,可以有效的在HTTP协议的基础上,达到实时获取变更状态的效果。
根据本发明的上述配置信息的推送方法,还可以具有以下技术特征:
在上述技术方案中,优选地,还包括:当出现请求超时异常或网络异常时,记录请求超时异常或网络异常,并构造异常信息发送至客户端;接收下一HTTP请求;根据下一HTTP请求监听已建立或新建阻塞队列。
在该技术方案中,如果等待过程中有超时或者网络异常,则构造异常信息返回给客户端。客户端会处理后发起新的请求,新的请求可以落到服务端集群的任意一节点(服务端),同时构建新的阻塞队列。实现异常通知,能够使客户端知晓超时或者网络异常等信息。
在上述任一技术方案中,优选地,检测配置信息的更新信息,同时将更新信息存储至阻塞队列的步骤,具体包括:检测配置信息的更新信息;判断是否存在阻塞队列;当存在阻塞队列时,将更新信息存储至阻塞队列;当不存在阻塞队列时,建立阻塞队列,并将更新信息存储至阻塞队列。
在该技术方案中,检测到更新信息后,判断本地是否有阻塞队列,当存在时直接将更新信息存储至阻塞队列,当不存在时先建立阻塞队列,在将更新信息存储至阻塞队列,通过阻塞队列存储更新信息,进而实现将更新信息近实时的通知到客户端。
在上述任一技术方案中,优选地,还包括:监听将阻塞队列中的更新信息推送至客户端的过程,获取推送信息;将推送信息存储至Redis数据库,并通过预设方式展示所述推送信息。
在该技术方案中,服务端可以针对每个阻塞队列对应的配置监听请求,以不同的key和value存储连接的监控信息到Redis数据库中,key的命名设置固定的规则。利用Redis中key的超时机制,可以自动消除断开连接的状态。整体的监控程序可以利用Redis的Scan机制,定时的分析监控信息,以图表的方式来展示,实现统一监控某一配置信息推送到各个客户端的状态以及连接的状态。此外,Redis可以采用集群的方式来部署,来保证高可用性。
在上述任一技术方案中,优选地,还包括:将客户端的连接状态与会话信息存储至Redis数据库;利用Shiro安全框架对会话信息进行管理,以清理客户端的重复连接。
在该技术方案中,使用Shiro安全框架和Redis数据库结合,禁用原生的Session的使用,提供SessionManager(会话管理)的实现,供业务调用来存储token(用户令牌)等验证信息。实现清理客户端重复的连接,避免重复推送。
根据本发明的另一个方面,提出了一种配置信息的推送系统,用于服务端,服务端包括多个阻塞队列,每个阻塞队列对应不同的客户端连接,配置信息的推送系统包括:接收单元,用于接收来自客户端的HTTP请求;检测单元,用于检测配置信息的更新信息,同时将更新信息存储至阻塞队列;推送单元,用于将阻塞队列中的更新信息推送至客户端;挂起单元,用于当阻塞队列中不存在更新信息时,令客户端推送更新信息的线程等待新通知;判断单元,用于判断是否出现请求超时异常或网络异常;推送单元,还用于当未出现请求超时异常或网络异常,以及阻塞队列中已存储有更新信息时,将更新信息推送至客户端。
本发明提供的配置信息的推送系统,通过运维管理员可以登录云服务,维护配置信息的内容和版本。SLB、Nginx等负载均衡服务器,一般设置为连接超时时间为30S左右,优选为30S,配置轮询时间间隔为30S之内。在运行期,实时的调整配置信息的变化,通过单独的线程监听外部队列任何配置文件的更新信息,其中外部队列例如消息队列(RabbitMQ),会在消息队列中发送该更新信息,将该更新信息转化为特殊结构存储到对应的阻塞队列(BlockingQueue)中。将存储在阻塞队列中的更新信息推送至客户端,如果阻塞队列中没有更新信息服务端并不立即发送,而是利用阻塞队列挂住线程,有更新信息后立即发送,此为和短轮询最大的差异。如果等待过程中没有超时或者网络异常,则在阻塞队列中已存储有更新信息时将更新信息推送至客户端。采用基于长轮询方案连接等待和重试,实现类似长连接效果,可以有效的在HTTP协议的基础上,达到实时获取变更状态的效果。
根据本发明的上述配置信息的推送系统,还可以具有以下技术特征:
在上述技术方案中,优选地,还包括:记录单元,用于当出现请求超时异常或网络异常时,记录请求超时异常或网络异常,并构造异常信息发送至客户端;接收单元,还用于接收下一HTTP请求;监听单元,用于根据下一HTTP请求监控已建立或新建的阻塞队列。
在该技术方案中,如果等待过程中有超时或者网络异常,则构造异常信息返回给客户端。客户端会处理后发起新的请求,新的请求可以落到服务端集群的任意一节点(服务端),同时构建新的阻塞队列。实现异常通知,能够使客户端知晓超时或者网络异常等信息。
在上述任一技术方案中,优选地,检测单元,用于检测配置信息的更新信息;判断单元,还用于判断是否存在阻塞队列;建立单元,用于当存在阻塞队列时,将更新信息存储至阻塞队列;以及当不存在所述阻塞队列时,建立阻塞队列,并将更新信息存储至阻塞队列。
在该技术方案中,检测到更新信息后,判断本地是否有阻塞队列,当存在时直接将更新信息存储至阻塞队列,当不存在时先建立阻塞队列,在将更新信息存储至阻塞队列,通过阻塞队列存储更新信息,进而实现将更新信息近实时的通知到客户端。
在上述任一技术方案中,优选地,监听单元,用于监听将阻塞队列中的更新信息推送至客户端的过程,获取推送信息;展现单元,用于将推送信息存储至Redis数据库,并通过预设方式展示推送信息。
在该技术方案中,服务端可以针对每个阻塞队列对应的配置监听请求,以不同的key和value存储连接的监控信息到Redis数据库中,key的命名设置固定的规则。利用Redis中key的超时机制,可以自动消除断开连接的状态。整体的监控程序可以利用Redis的Scan机制,定时的分析监控信息,以图表的方式来展示,实现统一监控某一配置信息推送到各个客户端的状态以及连接的状态。此外,Redis可以采用集群的方式来部署,来保证高可用性。
在上述任一技术方案中,优选地,还包括:管理单元,用于将客户端的连接状态与会话信息存储至Redis数据库;以及利用Shiro安全框架对会话信息进行管理,以清理客户端的重复连接。
在该技术方案中,使用Shiro安全框架和Redis数据库结合,禁用原生的Session的使用,提供SessionManager(会话管理)的实现,供业务调用来存储token(用户令牌)等验证信息。实现清理客户端重复的连接,避免重复推送。
根据本发明的再一个方面,提出了一种配置信息的接收方法,用于客户端,配置信息的接收方法包括:在配置中心中下载配置信息,并利用SDK监听配置信息;当监听到配置信息发生变化后,向服务端发送HTTP请求,并设置超时时间;判断是否出现请求超时异常或网络异常;当未出现请求超时异常或网络异常时,接收服务端反馈的配置信息的更新信息,根据更新信息更新配置信息;根据更新后的配置信息构造下一HTTP请求,并按照轮询时间向服务端发送下一HTTP请求。
本发明提供的配置信息的接收方法,客户端应用集成配置中心的SDK(SoftwareDevelopment Kit,软件开发工具包),同时引入了对请求加签的能力,在服务端启动时(Spring容器启动之前)即可下载对应的配置信息到本地,同时利用SDK进行信息变化的监听。客户端使用配置中心提供的SDK扫描到需要监听的配置文件后,向服务端发起HTTP请求,并设置相对长的超时时间,请求经过SLB或者Nginx,落到具体的配置中心的服务端实例上,客户端即开始等待服务端的信息返回。如果在等待期间获取到服务端返回的数据,根据返回的新的配置文件的信息,更新本地文件和实例,结束本次调用,并以新的客户端版本号和时间戳等构造新请求的URL,发起下一次的请求。客户端以上述逻辑轮询访问,可以保证服务端信息变更时,立即获取到变更通知,实现类实时的信息监听,避免客户端无限制的循环访问配置中心服务端而增大服务端压力,造成无用的连接、流量、CPU、缓存、DB(数据库)等资源消耗。
根据本发明的上述配置信息的接收方法,还可以具有以下技术特征:
在上述技术方案中,优选地,还包括:当出现请求超时异常或网络异常时,记录请求超时异常或网络异常并结束HTTP请求,构造下一HTTP请求。
在该技术方案中,如果在等待期间,有超时异常或者网络断开的异常,应该抓取到异常并记录日志,不中断业务逻辑,继续构造新的请求。可以有效的重连和重试,解决了由于网络异常造成的连接超时、断开等问题,完善了服务的自愈能力。
在上述任一技术方案中,优选地,还包括:超时时间的范围为25秒至35秒;轮询时间的范围为小于30秒。
在该技术方案中,超时时间的范围为25秒至35秒,优选为30秒,轮询时间的范围为小于30秒,避免客户端无限循环的短间隔的RestFul访问。
根据本发明的又一个方面,提出了一种配置信息的接收系统,用于客户端,配置信息的接收系统包括:监听单元,用于在配置中心中下载配置信息,并利用SDK监听配置信息;发送单元,用于当监听到配置信息发生变化后,向服务端发送HTTP请求,并设置超时时间;判断单元,用于判断是否出现请求超时异常或网络异常;更新单元,用于当未出现请求超时异常或网络异常时,接收服务端反馈的配置信息的更新信息,根据更新信息更新配置信息;发送单元,还用于根据更新后的配置信息构造下一HTTP请求,并按照轮询时间向服务端发送下一HTTP请求。
本发明提供的配置信息的接收系统,客户端应用集成配置中心的SDK(SoftwareDevelopment Kit,软件开发工具包),同时引入了对请求加签的能力,在服务端启动时(Spring容器启动之前)即可下载对应的配置信息到本地,同时利用SDK进行信息变化的监听。客户端使用配置中心提供的SDK扫描到需要监听的配置文件后,向服务端发起HTTP请求,并设置相对长的超时时间,请求经过SLB或者Nginx,落到具体的配置中心的服务端实例上,客户端即开始等待服务端的信息返回。如果在等待期间获取到服务端返回的数据,根据返回的新的配置文件的信息,更新本地文件和实例,结束本次调用,并以新的客户端版本号和时间戳等构造新请求的URL,发起下一次的请求。客户端以上述逻辑轮询访问,可以保证服务端信息变更时,立即获取到变更通知,实现类实时的信息监听,避免客户端无限制的循环访问配置中心服务端而增大服务端压力,造成无用的连接、流量、CPU、缓存、DB(数据库)等资源消耗。
根据本发明的上述配置信息的接收系统,还可以具有以下技术特征:
在上述技术方案中,优选地,还包括:还包括:记录单元,用于当出现请求超时异常或所述网络异常时,记录请求超时异常或网络异常并结束HTTP请求,构造下一HTTP请求。
在该技术方案中,如果在等待期间,有超时异常或者网络断开的异常,应该抓取到异常并记录日志,不中断业务逻辑,继续构造新的请求。可以有效的重连和重试,解决了由于网络异常造成的连接超时、断开等问题,完善了服务的自愈能力。
在上述任一技术方案中,优选地,还包括:超时时间的范围为25秒至35秒;轮询时间的范围为小于30秒。
在该技术方案中,超时时间的范围为25秒至35秒,优选为30秒,轮询时间的范围为小于30秒,避免客户端无限循环的短间隔的RestFul访问。
根据本发明的又一个方面,提出了一种计算机装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述任一项的配置信息的推送方法的步骤或者如上述任一项的配置信息的接收方法的步骤。
本发明提供的计算机装置,处理器执行计算机程序时实现如上述任一项的配置信息的推送方法的步骤或者如上述任一项的配置信息的接收方法的步骤,具有以上技术效果,在此不再赘述。
根据本发明的又一个方面,提出了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一项的配置信息的推送方法的步骤或者如上述任一项的配置信息的接收方法的步骤。
本发明提供的计算机可读存储介质,计算机程序被处理器执行时实现如上述任一项的配置信息的推送方法的步骤或者如上述任一项的配置信息的接收方法的步骤,具有以上技术效果,在此不再赘述。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了相关技术中的局域网配置监听的示意图;
图2示出了相关技术中的短连接方式的配置监听的示意图;
图3示出了本发明的一个实施例的配置中心的使用场景的示意图;
图4示出了本发明的一个实施例的长轮询调用的示意图;
图5示出了本发明的一个实施例的配置信息的推送方法的流程示意图;
图6示出了本发明的一个实施例的服务端配置管理的示意图;
图7示出了本发明的一个实施例的服务器端线程阻塞等待实现的示意图;
图8a示出了本发明的一个实施例的配置信息的推送系统的示意框图;
图8b示出了本发明的另一个实施例的配置信息的推送系统的示意框图;
图9示出了本发明的一个实施例的配置信息的接收方法的流程示意图;
图10示出了本发明的一个实施例的客户端SDK集成的示意图;
图11示出了本发明的一个实施例的配置信息的接收系统的示意框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不限于下面公开的具体实施例的限制。
图3示出了本发明的一个实施例的配置中心的使用场景的示意图,其中,配置中心为一个统一的配置文件管理、维护的服务,能够统一管理多个微服务的配置文件,还能根据开发、测试、预发布、生产等环境进行区分隔离,并且能记录配置文件的多个版本。在配置中心的管理下,运维管理员只构建一份代码即可发布到不同的环境,应用从配置中心拉取不同环境的配置(服务A集群测试环境、服务A集群预发布环境、服务A集群生产环境等),各个应用可以定义多个配置文件,运维管理在配置中心统一维护各个服务的配置信息。配置中心可以解决多版本、多环境下配置文件统一管控的问题。
本发明至少能够解决以下技术问题:
问题一:实现配置中心的SDK,实现以短连接方式的无状态的HTTP请求,获取和更新服务端配置信息。配置中心的服务端,可以采用已有的云服务。在云服务场景下,不提供Socket长连接方式,配置中心的SDK需要以HTTP方式下载配置,获取配置的最新版本,上报本地的版本信息等。
问题二:公网环境,在HTTP协议的限制下如何实现类似长连接的实时效果。客户端无限制的循环访问配置中心服务端,会增大服务端压力,造成无用的连接、流量、CPU、缓存、DB等资源消耗,需要避免无限循环的短间隔的RestFul访问。但在外网环境下,必须基于HTTP协议,所以需要在此协议下和服务端建立通信,在服务端变化后,近实时的通知到客户端变化信息。
问题三:如何实现服务端的挂起实现和全局监控各个客户端的配置文件最新状态。客户端业务应用以分布式方式部署,各个客户端获取配置信息不一致情况下,会造成业务数据的不一致,从而导致业务逻辑错误,情况严重。配置中心的服务端需要统一监控某一配置文件推送到各个客户端的状态以及连接的状态,服务端维护着多个应用的多种环境的配置信息,需要处理隔离各个应用数据又能有效的监控不同应用的连接。
问题四:异常情况下,客户端和服务端如何自愈重连及保障服务的高可用。公网环境下,网络抖动和异常断开很常见,在某一次的连接失败或者异常网络断开情况下,SDK端需要重试和服务端的连接,恢复原有的监听;服务端需要清理客户端重复的连接,避免重复推送。同时,服务端为分布式集群部署,需要处理各个节点客户端对服务端请求的一致性以及重连时数据的一致性。
针对上述问题本发明的整体方案的架构图(长轮询调用)如图4所示,配置信息的下载和监听,使用成熟的配置中心方案即可,例如百度开源的disconf、阿里的diamond、携程的Apollo以及用友云的配置中心均可实现。
采用基于long polling机制的长轮询方案,可以有效的在HTTP协议的基础上,达到实时获取变更状态的效果。客户端在配置中心SDK的基础上,对指定版本和环境的配置文件发起监听请求,服务端接收到请求后进入等待状态,服务端查询后端的对应配置的最新状态,如果状态和客户端相同,则挂起此次请求,直至检查到新的变化,才立即返回新的状态信息,客户端再下载新的配置。服务端的挂起应该在全链路允许的连接超时时间内,一般为30S。在SLB、Nginx或者Haproxy等负载均衡服务器中,通常的超时时间都设置为30S。服务端如果在30S内始终未获取到信息变化,则断开连接返回特殊信息,客户端获取到结果后,重新发起新的请求;如果在时间段内获取到了信息变更,则立即更新本地配置,同时携带更新后的版本信息发起新的监听请求,进入下一迭代。
配置中心的服务端为分布式的服务,可以水平扩展以增强服务能力。经过服务均衡服务的转发,客户端的请求可以均匀的分布在不同的应用服务器上。各个服务器共同监听统一的外部队列(如RabbitMQ),获取各个配置的变更状态,以便及时通知到客户端SDK的挂起的请求中。
本发明第一方面的实施例,提出一种配置信息的推送方法,用于服务端,服务端包括多个阻塞队列,每个阻塞队列对应不同的客户端连接,图5示出了本发明的一个实施例的配置信息的推送方法的流程示意图。其中,该方法包括:
步骤502,接收来自客户端的HTTP请求;
步骤504,检测配置信息的更新信息,同时将更新信息存储至阻塞队列;
步骤506,将阻塞队列中的更新信息推送至客户端;
步骤508,当阻塞队列中不存在更新信息时,令客户端推送更新信息的线程等待通知;
步骤510,判断是否出现请求超时异常或网络异常;
步骤512,当未出现请求超时异常或网络异常,以及阻塞队列中已存储有更新信息时,将更新信息推送至客户端;
步骤514,当出现请求超时异常或网络异常时,记录请求超时异常或网络异常,并构造异常信息发送至客户端;接收下一HTTP请求;根据下一HTTP请求监听已建立或新建阻塞队列。
本发明提供的配置信息的推送方法,如图6所示,运维管理员可以登录云服务,维护配置信息的内容和版本。SLB、Nginx等负载均衡服务器,一般设置为连接超时时间为30S左右,配置轮询时间间隔为30S之内,请求发送到服务端后,服务端检测到有配置更新,则返回需要更新的数据,如果后端没有新版本更新,服务端并不立即返回,而是利用BlockingQueue挂住线程,有信息后立即返回,此为和短轮询最大的差异。同时,服务端在启动服务时,已经有单独的线程监听外部队列,例如RabbitMQ(消息队列),任何配置文件的更新,会在RabbitMQ中发送消息,此监听会处理此消息,并将信息转化为特殊结构,放到对应的BlockingQueue中。
在处理客户端请求的线程等待此BlockingQueue时,如果有新信息入队,则立即取出,并查询最新的配置内容,构造返回结果,返回给客户端。用以解决上述问题二,采用基于长轮询方案连接等待和重试,实现类似长连接效果,可以有效的在HTTP协议的基础上,达到实时获取变更状态的效果。
如果等待过程中有超时或者网络异常,则构造异常信息返回给客户端。客户端会处理后发起新的请求,新的请求可以落到服务端集群的任意一节点(服务端),同时构建新的阻塞队列。实现异常通知,能够使客户端知晓超时或者网络异常等信息。
在本发明的一个实施例中,优选地,检测配置信息的更新信息,同时将更新信息存储至阻塞队列的步骤,具体包括:检测配置信息的更新信息;判断是否存在阻塞队列;当存在阻塞队列时,将更新信息存储至阻塞队列;当不存在阻塞队列时,建立阻塞队列,并将更新信息存储至阻塞队列。
在该实施例中,检测到更新信息后,判断本地是否有阻塞队列,当存在时直接将更新信息存储至阻塞队列,当不存在时先建立阻塞队列,在将更新信息存储至阻塞队列,通过阻塞队列存储更新信息,进而实现将更新信息近实时的通知到客户端。
在本发明的一个实施例中,优选地,还包括:监听将阻塞队列中的更新信息推送至客户端的过程,获取推送信息;将推送信息存储至Redis数据库,并通过预设方式展示所述推送信息。
在该实施例中,多线程处理请求,针对配置的阻塞队列,服务端控制台实现Zookeeper节点监听或者队列监听;利用从阻塞队列(BlockingQueue)的空队列中取出信息时会线程等待的特点实现线程的挂起。每个BlockingQueue对应不同应用、环境、版本以及客户端实例等信息唯一确定的一个配置文件,如图7所示,服务端在启动服务时,已经有单独的线程监听外部队列,例如RabbitMQ(消息队列),任何配置文件的更新,会在RabbitMQ中发送消息,此监听会处理此消息,并将信息转化为特殊结构,放到对应的BlockingQueue中。在后端程序的JVM(Java虚拟机)中,可以维护着多个阻塞队列,分别和前端(客户端)对应。当由于异常或者超时断开的请求,可以在下次请求时随机落到任意的服务端实例,构建新的阻塞队列。后端程序设置定时扫描机制,清理无用的阻塞队列,所谓无用的阻塞队列是指,若当前请求为第一服务端,而下次请求落到任意的第二服务端,则第一服务端的阻塞队列即为无用的阻塞队列。
服务端可以针对每个阻塞队列对应的配置监听请求,以不同的key和value,存储连接的监控信息到Redis中,Key的命名设置固定的规则。利用Redis中key的超时机制,可以自动消除断开连接的状态。整体的监控程序可以利用Redis的Scan机制,定时的分析监控信息,以图表的方式来展示。Redis可以采用集群的方式来部署,来保证高可用性,用于解决上述问题三。
在本发明的一个实施例中,优选地,还包括:将客户端的连接状态与会话信息存储至Redis数据库;利用Shiro安全框架对会话信息进行管理,以清理客户端的重复连接。
在该实施例中,配置中心服务端需要解决Session无状态的问题,达到服务水平扩展的能力,即前端请求由负载均衡服务器转发到后端的任何一个服务器时,处理逻辑和返回结果相同,不会有HttpSession的特殊信息存在。通用的解决方案已经很成熟,即使用分布式缓存服务来存储HttpSession相关的信息,如使用定制的SessionManager将原生的HttpSession中存储的信息托管到Redis中。本方案中使用Shiro和Redis结合,禁用原生的Session的使用,提供SessionManager的实现,供业务调用来存储token(用户令牌)等验证信息,用于解决上述问题四。
本发明第二方面的实施例,提出一种配置信息的推送系统,用于服务端,服务端包括多个阻塞队列,每个阻塞队列对应不同的客户端连接,图8a示出了本发明的一个实施例的配置信息的推送系统800的示意框图。其中,该系统800包括:
接收单元802,用于接收来自客户端的HTTP请求;检测单元804,用于检测配置信息的更新信息,同时将更新信息存储至阻塞队列;推送单元806,用于将阻塞队列中的更新信息推送至客户端;挂起单元808,用于当阻塞队列中不存在更新信息时,令客户端推送更新信息的线程等待新通知;判断单元810,用于判断是否出现请求超时异常或网络异常;推送单元806,还用于当未出现请求超时异常或网络异常,以及阻塞队列中已存储有更新信息时,将更新信息推送至客户端。
本发明提供的配置信息的推送系统800,通过运维管理员可以登录云服务,维护配置信息的内容和版本。SLB、Nginx等负载均衡服务器,一般设置为连接超时时间为30S左右,优选为30S,配置轮询时间间隔为30S之内。在运行期,实时的调整配置信息的变化,通过单独的线程监听外部队列任何配置文件的更新信息,其中外部队列例如消息队列(RabbitMQ),会在消息队列中发送该更新信息,将该更新信息转化为特殊结构存储到对应的阻塞队列(BlockingQueue)中。将存储在阻塞队列中的更新信息推送至客户端,如果阻塞队列中没有更新信息服务端并不立即发送,而是利用阻塞队列挂住线程,有更新信息后立即发送,此为和短轮询最大的差异。如果等待过程中没有超时或者网络异常,则在阻塞队列中已存储有更新信息时将更新信息推送至客户端。采用基于长轮询方案连接等待和重试,实现类似长连接效果,可以有效的在HTTP协议的基础上,达到实时获取变更状态的效果。
图8b示出了本发明的另一个实施例的配置信息的推送系统800的示意框图。其中,该系统800包括:
接收单元802,用于接收来自客户端的HTTP请求;检测单元804,用于检测配置信息的更新信息,同时将更新信息存储至阻塞队列;推送单元806,用于将阻塞队列中的更新信息推送至客户端;挂起单元808,用于当阻塞队列中不存在更新信息时,将向客户端推送更新信息的线程挂起;判断单元810,用于判断是否出现请求超时异常或网络异常;推送单元806,还用于当未出现请求超时异常或网络异常,以及阻塞队列中已存储有更新信息时,将更新信息推送至客户端;
还包括:记录单元812,用于当出现请求超时异常或网络异常时,记录请求超时异常或网络异常,并构造异常信息发送至客户端;接收单元802,还用于接收下一HTTP请求;监听单元814,用于根据下一HTTP请求监控已建立或新建的阻塞队列。
在该实施例中,如果等待过程中有超时或者网络异常,则构造异常信息返回给客户端。客户端会处理后发起新的请求,新的请求可以落到服务端集群的任意一节点(服务端),同时构建新的阻塞队列。实现异常通知,能够使客户端知晓超时或者网络异常等信息。
在本发明的一个实施例中,如图8b所示,优选地,检测单804元,用于检测配置信息的更新信息;判断单元810,还用于判断是否存在阻塞队列;建立单元816,用于当存在阻塞队列时,将更新信息存储至阻塞队列;以及当不存在所述阻塞队列时,建立阻塞队列,并将更新信息存储至阻塞队列。
在该实施例中,检测到更新信息后,判断本地是否有阻塞队列,当存在时直接将更新信息存储至阻塞队列,当不存在时先建立阻塞队列,在将更新信息存储至阻塞队列,通过阻塞队列存储更新信息,进而实现将更新信息近实时的通知到客户端。
在本发明的一个实施例中,如图8b所示,优选地,监听单元814,用于监听将阻塞队列中的更新信息推送至客户端的过程,获取推送信息;展现单元818,用于将推送信息存储至Redis数据库,并通过预设方式展示推送信息。
在该实施例中,服务端可以针对每个阻塞队列对应的配置监听请求,以不同的key和value存储连接的监控信息到Redis数据库中,key的命名设置固定的规则。利用Redis中key的超时机制,可以自动消除断开连接的状态。整体的监控程序可以利用Redis的Scan机制,定时的分析监控信息,以图表的方式来展示,实现统一监控某一配置信息推送到各个客户端的状态以及连接的状态。此外,Redis可以采用集群的方式来部署,来保证高可用性。
在本发明的一个实施例中,如图8b所示,优选地,还包括:管理单元820,用于将客户端的连接状态与会话信息存储至Redis数据库;以及利用Shiro安全框架对会话信息进行管理,以清理客户端的重复连接。
在该实施例中,使用Shiro安全框架和Redis数据库结合,禁用原生的Session的使用,提供SessionManager(会话管理)的实现,供业务调用来存储token(用户令牌)等验证信息。实现清理客户端重复的连接,避免重复推送。
本发明第三方面的实施例,提出一种配置信息的接收方法,用于客户端,图9示出了本发明的一个实施例的配置信息的接收方法的流程示意图。其中,该方法包括:
步骤902,在配置中心中下载配置信息,并利用SDK监听配置信息;
步骤904,当监听到配置信息发生变化后,向服务端发送HTTP请求,并设置超时时间;
步骤906,判断是否出现请求超时异常或网络异常;
步骤908,当未出现请求超时异常或网络异常时,接收服务端反馈的配置信息的更新信息,根据更新信息更新配置信息;
步骤910,根据更新后的配置信息构造下一HTTP请求,并按照轮询时间向服务端发送下一HTTP请求;
步骤912,当出现请求超时异常或网络异常时,记录请求超时异常或网络异常并结束HTTP请求,构造下一HTTP请求。
本发明提供的配置信息的接收方法,如图10所示,客户端应用集成配置中心的SDK,集成配置中心SDK包括管理员及业务应用,同时引入了对请求加签的能力,在配置中心服务端启动时(Spring容器启动之前),即可在配置中心服务端的配置中心数据库中下载对应的配置信息到本地,同时利用SDK进行信息变化的监听,将监听信息存储至连接的Redi集群中。客户端使用配置中心提供的SDK扫描到需要监听的配置文件后,向服务端发起HTTP请求,并设置相对长的超时时间,请求经过SLB或者Nginx,落到具体的配置中心的服务端实例上,客户端即开始等待服务端的信息返回。如果在等待期间获取到服务端返回的数据,根据返回的新的配置文件的信息,更新本地文件和实例,结束本次调用,并以新的客户端版本号和时间戳等构造新请求的URL,发起下一次的请求。客户端以上述逻辑轮询访问,可以保证服务端信息变更时,立即获取到变更通知,实现类实时的信息监听,避免客户端无限制的循环访问配置中心服务端而增大服务端压力,造成无用的连接、流量、CPU、缓存、DB(数据库)等资源消耗。
如果在等待期间,有超时异常或者网络断开的异常,应该抓取到异常并记录日志,不中断业务逻辑,继续构造新的请求。可以有效的重连和重试,解决了由于网络异常造成的连接超时、断开等问题,完善了服务的自愈能力。
在本发明的一个实施例中,优选地,还包括:超时时间的范围为25秒至35秒;轮询时间的范围为小于30秒。
在该实施例中,超时时间的范围为25秒至35秒,优选为30秒,轮询时间的范围为小于30秒,避免客户端无限循环的短间隔的RestFul访问。
本发明第四方面的实施例,提出一种配置信息的接收系统,用于客户端,图11示出了本发明的一个实施例的配置信息的接收系统1100的示意框图。其中,该系统1100包括:
监听单元1102,用于在配置中心中下载配置信息,并利用SDK监听配置信息;发送单元1104,用于当监听到配置信息发生变化后,向服务端发送HTTP请求,并设置超时时间;判断单元1106,用于判断是否出现请求超时异常或网络异常;更新单元1108,用于当未出现请求超时异常或网络异常时,接收服务端反馈的配置信息的更新信息,根据更新信息更新配置信息;发送单元1104,还用于根据更新后的配置信息构造下一HTTP请求,并按照轮询时间向服务端发送下一HTTP请求。
本发明提供的配置信息的接收系统1100,客户端应用集成配置中心的SDK,同时引入了对请求加签的能力,在服务端启动时(Spring容器启动之前)即可下载对应的配置信息到本地,同时利用SDK进行信息变化的监听。客户端使用配置中心提供的SDK扫描到需要监听的配置文件后,向服务端发起HTTP请求,并设置相对长的超时时间,请求经过SLB或者Nginx,落到具体的配置中心的服务端实例上,客户端即开始等待服务端的信息返回。如果在等待期间获取到服务端返回的数据,根据返回的新的配置文件的信息,更新本地文件和实例,结束本次调用,并以新的客户端版本号和时间戳等构造新请求的URL,发起下一次的请求。客户端以上述逻辑轮询访问,可以保证服务端信息变更时,立即获取到变更通知,实现类实时的信息监听,避免客户端无限制的循环访问配置中心服务端而增大服务端压力,造成无用的连接、流量、CPU、缓存、DB等资源消耗。
在本发明的一个实施例中,如图11所示,优选地,还包括:记录单元1110,用于当出现请求超时异常或所述网络异常时,记录请求超时异常或网络异常并结束HTTP请求,构造下一HTTP请求。
在该实施例中,如果在等待期间,有超时异常或者网络断开的异常,应该抓取到异常并记录日志,不中断业务逻辑,继续构造新的请求。可以有效的重连和重试,解决了由于网络异常造成的连接超时、断开等问题,完善了服务的自愈能力。
在本发明的一个实施例中,优选地,还包括:超时时间的范围为25秒至35秒;轮询时间的范围为小于30秒。
在该实施例中,超时时间的范围为25秒至35秒,优选为30秒,轮询时间的范围为小于30秒,避免客户端无限循环的短间隔的RestFul访问。
本发明第五方面的实施例,提出了一种计算机装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述任一项的配置信息的推送方法的步骤或者如上述任一项的配置信息的接收方法的步骤。
本发明提供的计算机装置,处理器执行计算机程序时实现如上述任一项的配置信息的推送方法的步骤或者如上述任一项的配置信息的接收方法的步骤,具有以上技术效果,在此不再赘述。
本发明第六方面的实施例,提出了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一项的配置信息的推送方法的步骤或者如上述任一项的配置信息的接收方法的步骤。
本发明提供的计算机可读存储介质,计算机程序被处理器执行时实现如上述任一项的配置信息的推送方法的步骤或者如上述任一项的配置信息的接收方法的步骤,具有以上技术效果,在此不再赘述。
本发明的优势在于:(1)配置信息集中管控,线上配置信息保密和安全管理;(2)持续集成和构建时不需关心配置信息的区分和环境的对应;(3)配置信息的动态获取,业务的动态调整;(4)近实时监控配置信息的变化,秒级感知最新信息;(5)在大量客户端配置和多链接高负载情况下,提升效率,避免资源消耗;(6)在不能使用TCP长连接的环境下,解决了实时获取信息变更的问题,减轻了服务端的负载,提高了效率。客户端近实时感知服务端变化,并可以有效的重连和重试,解决了由于网络异常造成的连接超时、断开等问题,完善了服务的自愈能力;(7)不同于局域网下的监听实现方案,在公有云条件限制下,通过HTTP协议实现了类似长连接的效果,达到了配置文件的近实时推送,在配置信息的管理和监听方向上有很大创新。
本发明可以在以下场景中借鉴并推广:(1)业务应用部署时需要修改配置文件,集群部署时需运维统一管控配置信息时;(2)应用中的业务需要根据配置信息执行不同逻辑,动态调整调用链路时;(3)客户端的配置在服务端更新后需要及时更新,实时性要求较高时;(4)已有应用不希望二次开发和代码侵入,配置和集成SDK即可下载和监听配置时。
在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (18)

1.一种配置信息的推送方法,用于服务端,其特征在于,所述服务端包括多个阻塞队列,每个所述阻塞队列对应不同的客户端连接,所述配置信息的推送方法包括:
接收来自所述客户端的HTTP请求;
检测配置信息的更新信息,同时将所述更新信息存储至阻塞队列;
将所述阻塞队列中的所述更新信息推送至所述客户端;
当所述阻塞队列中不存在所述更新信息时,令所述客户端推送所述更新信息的线程等待通知;
判断是否出现请求超时异常或网络异常;
当未出现所述请求超时异常或所述网络异常,以及所述阻塞队列中已存储有所述更新信息时,将所述更新信息推送至所述客户端。
2.根据权利要求1所述的配置信息的推送方法,其特征在于,还包括:
当出现所述请求超时异常或所述网络异常时,记录所述请求超时异常或所述网络异常,并构造异常信息发送至所述客户端;
接收下一HTTP请求;
根据所述下一HTTP请求监控已建立或新建的阻塞队列。
3.根据权利要求2所述的配置信息的推送方法,其特征在于,所述检测配置信息的更新信息,同时将所述更新信息存储至所述阻塞队列的步骤,具体包括:
检测所述配置信息的所述更新信息;
判断是否存在所述阻塞队列;
当存在所述阻塞队列时,将所述更新信息存储至所述阻塞队列;
当不存在所述阻塞队列时,建立所述阻塞队列,并将所述更新信息存储至所述阻塞队列。
4.根据权利要求1至3中任一项所述的配置信息的推送方法,其特征在于,还包括:
监听将所述阻塞队列中的所述更新信息推送至所述客户端的过程,获取推送信息;
将所述推送信息存储至Redis数据库,并通过预设方式展示所述推送信息。
5.根据权利要求4所述的配置信息的推送方法,其特征在于,还包括:
将客户端的连接状态与会话信息存储至所述Redis数据库;
利用Shiro安全框架对所述会话信息进行管理,以清理客户端的重复连接。
6.一种配置信息的推送系统,用于服务端,其特征在于,所述服务端包括多个阻塞队列,每个所述阻塞队列对应不同的客户端连接,所述配置信息的推送系统包括:
接收单元,用于接收来自所述客户端的HTTP请求;
检测单元,用于检测配置信息的更新信息,同时将所述更新信息存储至阻塞队列;
推送单元,用于将所述阻塞队列中的所述更新信息推送至所述客户端;
挂起单元,用于当所述阻塞队列中不存在所述更新信息时,令所述客户端推送所述更新信息的线程等待新通知;
判断单元,用于判断是否出现请求超时异常或网络异常;
所述推送单元,还用于当未出现所述请求超时异常或所述网络异常,以及所述阻塞队列中已存储有所述更新信息时,将所述更新信息推送至所述客户端。
7.根据权利要求6所述的配置信息的推送系统,其特征在于,还包括:
记录单元,用于当出现所述请求超时异常或所述网络异常时,记录所述请求超时异常或所述网络异常,并构造异常信息发送至所述客户端;
所述接收单元,还用于接收下一HTTP请求;
监听单元,用于根据所述下一HTTP请求监控已建立或新建的阻塞队列。
8.根据权利要求7所述的配置信息的推送系统,其特征在于,
所述检测单元,用于检测所述配置信息的所述更新信息;
所述判断单元,还用于判断是否存在所述阻塞队列;
建立单元,用于当存在所述阻塞队列时,将所述更新信息存储至所述阻塞队列;以及当不存在所述阻塞队列时,建立所述阻塞队列,并将所述更新信息存储至所述阻塞队列。
9.根据权利要求6至8中任一项所述的配置信息的推送系统,其特征在于,所述监听单元,用于监听将所述阻塞队列中的所述更新信息推送至所述客户端的过程,获取推送信息;
展现单元,用于将所述推送信息存储至Redis数据库,并通过预设方式展示所述推送信息。
10.根据权利要求9所述的配置信息的推送系统,其特征在于,还包括:
管理单元,用于将客户端的连接状态与会话信息存储至所述Redis数据库;以及利用Shiro安全框架对所述会话信息进行管理,以清理客户端的重复连接。
11.一种配置信息的接收方法,用于客户端,其特征在于,所述配置信息的接收方法包括:
在配置中心中下载配置信息,并利用SDK监听所述配置信息;
当监听到所述配置信息发生变化后,向服务端发送HTTP请求,并设置超时时间;
判断是否出现请求超时异常或网络异常;
当未出现所述请求超时异常或所述网络异常时,接收所述服务端反馈的所述配置信息的更新信息,根据所述更新信息更新所述配置信息;
根据更新后的所述配置信息构造下一HTTP请求,并按照轮询时间向所述服务端发送所述下一HTTP请求。
12.根据权利要求11所述的配置信息的接收方法,其特征在于,还包括:
当出现所述请求超时异常或所述网络异常时,记录所述请求超时异常或所述网络异常并结束所述HTTP请求,构造所述下一HTTP请求。
13.根据权利要求11或12所述的配置信息的接收方法,其特征在于,还包括:
所述超时时间的范围为25秒至35秒;
所述轮询时间的范围为小于30秒。
14.一种配置信息的接收系统,用于客户端,其特征在于,所述配置信息的接收系统包括:
监听单元,用于在配置中心中下载配置信息,并利用SDK监听所述配置信息;
发送单元,用于当监听到所述配置信息发生变化后,向服务端发送HTTP请求,并设置超时时间;
判断单元,用于判断是否出现请求超时异常或网络异常;
更新单元,用于当未出现所述请求超时异常或所述网络异常时,接收所述服务端反馈的所述配置信息的更新信息,根据所述更新信息更新所述配置信息;
所述发送单元,还用于根据更新后的所述配置信息构造下一HTTP请求,并按照轮询时间向所述服务端发送所述下一HTTP请求。
15.根据权利要求14所述的配置信息的接收系统,其特征在于,还包括:
记录单元,用于当出现所述请求超时异常或所述网络异常时,记录所述请求超时异常或所述网络异常并结束所述HTTP请求,构造所述下一HTTP请求。
16.根据权利要求14或15所述的配置信息的接收系统,其特征在于,还包括:
所述超时时间的范围为25秒至35秒;
所述轮询时间的范围为小于30秒。
17.一种计算机装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的配置信息的推送方法的步骤或者如权利要求11至13中任一项所述的配置信息的接收方法的步骤。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的配置信息的推送方法的步骤或者如权利要求11至13中任一项所述的配置信息的接收方法的步骤。
CN201710951427.3A 2017-10-13 2017-10-13 配置信息的推送方法及系统、配置信息的接收方法及系统 Active CN107947960B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710951427.3A CN107947960B (zh) 2017-10-13 2017-10-13 配置信息的推送方法及系统、配置信息的接收方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710951427.3A CN107947960B (zh) 2017-10-13 2017-10-13 配置信息的推送方法及系统、配置信息的接收方法及系统

Publications (2)

Publication Number Publication Date
CN107947960A true CN107947960A (zh) 2018-04-20
CN107947960B CN107947960B (zh) 2021-01-15

Family

ID=61935253

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710951427.3A Active CN107947960B (zh) 2017-10-13 2017-10-13 配置信息的推送方法及系统、配置信息的接收方法及系统

Country Status (1)

Country Link
CN (1) CN107947960B (zh)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109120550A (zh) * 2018-07-18 2019-01-01 武汉绿色网络信息服务有限责任公司 一种无锁化处理方法和装置
CN109547481A (zh) * 2018-12-28 2019-03-29 深圳竹云科技有限公司 一种基于Redis有序集合和令牌方式的网站用户会话管理方法
CN109801425A (zh) * 2018-12-27 2019-05-24 平安科技(深圳)有限公司 面签业务中队列轮询提示方法、装置、设备及存储介质
CN109936618A (zh) * 2017-12-19 2019-06-25 阿瓦亚公司 用于集群应用负载均衡的长轮询
CN109947464A (zh) * 2019-03-22 2019-06-28 优信拍(北京)信息科技有限公司 一种配置更新方法及装置
CN110262902A (zh) * 2019-05-16 2019-09-20 杭州朗和科技有限公司 信息处理方法及系统、介质和计算设备
CN110597739A (zh) * 2019-06-03 2019-12-20 上海云盾信息技术有限公司 一种配置的管理方法、系统及设备
CN111045745A (zh) * 2018-10-10 2020-04-21 北京京东金融科技控股有限公司 管理配置信息的方法和系统
CN111245874A (zh) * 2018-11-28 2020-06-05 杭州海康威视数字技术股份有限公司 信息推送方法、装置、服务器及存储介质
CN111538602A (zh) * 2020-04-17 2020-08-14 上海悦易网络信息技术有限公司 一种消息队列的消息转发方法及设备
CN111638870A (zh) * 2020-05-14 2020-09-08 民生科技有限责任公司 一种基于react和redux的前端开发基础平台
CN111711621A (zh) * 2020-06-05 2020-09-25 平安科技(深圳)有限公司 基于集群环境的电话会话管理方法、装置及计算机设备
CN111988186A (zh) * 2020-09-02 2020-11-24 深圳壹账通智能科技有限公司 一种配置同步方法及相关装置
CN112019369A (zh) * 2019-05-31 2020-12-01 烽火通信科技股份有限公司 一种微服务框架下动态配置管理方法及系统
CN112035226A (zh) * 2020-08-12 2020-12-04 上海擎感智能科技有限公司 数据传输方法、电子设备及计算机可读存储介质
CN113239061A (zh) * 2021-05-31 2021-08-10 浙江环玛信息科技有限公司 智慧法院数据更新方法及系统
CN114721740A (zh) * 2022-04-06 2022-07-08 平安国际融资租赁有限公司 消息触发方法、装置、设备及存储介质
CN114928645A (zh) * 2022-04-26 2022-08-19 青岛海尔科技有限公司 资源包处理方法和装置、存储介质及电子装置
CN115333940A (zh) * 2022-08-11 2022-11-11 以萨技术股份有限公司 基于etcd实现配置监听的方法和系统
CN114928645B (zh) * 2022-04-26 2024-04-19 青岛海尔科技有限公司 资源包处理方法和装置、存储介质及电子装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004072131A (ja) * 2002-06-11 2004-03-04 Ricoh Co Ltd ネットワークファクシミリ装置
CN101110706A (zh) * 2007-07-23 2008-01-23 中兴通讯股份有限公司 一种配置数据同步方法
CN104092718A (zh) * 2013-12-12 2014-10-08 腾讯数码(天津)有限公司 分布式系统及分布式系统中配置信息的更新方法
CN104486319A (zh) * 2014-12-09 2015-04-01 上海爱数软件有限公司 适用于高可用系统的配置文件实时同步方法及其系统
CN106557347A (zh) * 2016-11-24 2017-04-05 泰康保险集团股份有限公司 软件更新方法及装置
CN107045472A (zh) * 2017-05-04 2017-08-15 武汉轻工大学 移动设备信息采集系统
CN107154922A (zh) * 2016-03-04 2017-09-12 北京京东尚科信息技术有限公司 配置管理系统及配置管理方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004072131A (ja) * 2002-06-11 2004-03-04 Ricoh Co Ltd ネットワークファクシミリ装置
CN101110706A (zh) * 2007-07-23 2008-01-23 中兴通讯股份有限公司 一种配置数据同步方法
CN104092718A (zh) * 2013-12-12 2014-10-08 腾讯数码(天津)有限公司 分布式系统及分布式系统中配置信息的更新方法
CN104486319A (zh) * 2014-12-09 2015-04-01 上海爱数软件有限公司 适用于高可用系统的配置文件实时同步方法及其系统
CN107154922A (zh) * 2016-03-04 2017-09-12 北京京东尚科信息技术有限公司 配置管理系统及配置管理方法
CN106557347A (zh) * 2016-11-24 2017-04-05 泰康保险集团股份有限公司 软件更新方法及装置
CN107045472A (zh) * 2017-05-04 2017-08-15 武汉轻工大学 移动设备信息采集系统

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109936618A (zh) * 2017-12-19 2019-06-25 阿瓦亚公司 用于集群应用负载均衡的长轮询
CN109936618B (zh) * 2017-12-19 2022-05-24 阿瓦亚公司 用于集群应用负载均衡的长轮询方法和系统
CN109120550B (zh) * 2018-07-18 2019-10-08 武汉绿色网络信息服务有限责任公司 一种无锁化处理方法和装置
CN109120550A (zh) * 2018-07-18 2019-01-01 武汉绿色网络信息服务有限责任公司 一种无锁化处理方法和装置
CN111045745A (zh) * 2018-10-10 2020-04-21 北京京东金融科技控股有限公司 管理配置信息的方法和系统
CN111245874A (zh) * 2018-11-28 2020-06-05 杭州海康威视数字技术股份有限公司 信息推送方法、装置、服务器及存储介质
CN111245874B (zh) * 2018-11-28 2023-12-05 杭州海康威视数字技术股份有限公司 信息推送方法、装置、服务器及存储介质
CN109801425A (zh) * 2018-12-27 2019-05-24 平安科技(深圳)有限公司 面签业务中队列轮询提示方法、装置、设备及存储介质
CN109801425B (zh) * 2018-12-27 2022-06-21 平安科技(深圳)有限公司 面签业务中队列轮询提示方法、装置、设备及存储介质
CN109547481A (zh) * 2018-12-28 2019-03-29 深圳竹云科技有限公司 一种基于Redis有序集合和令牌方式的网站用户会话管理方法
CN109947464A (zh) * 2019-03-22 2019-06-28 优信拍(北京)信息科技有限公司 一种配置更新方法及装置
CN110262902A (zh) * 2019-05-16 2019-09-20 杭州朗和科技有限公司 信息处理方法及系统、介质和计算设备
CN110262902B (zh) * 2019-05-16 2021-08-31 杭州朗和科技有限公司 信息处理方法及系统、介质和计算设备
WO2020237797A1 (zh) * 2019-05-31 2020-12-03 烽火通信科技股份有限公司 一种微服务框架下动态配置管理方法及系统
CN112019369A (zh) * 2019-05-31 2020-12-01 烽火通信科技股份有限公司 一种微服务框架下动态配置管理方法及系统
CN110597739A (zh) * 2019-06-03 2019-12-20 上海云盾信息技术有限公司 一种配置的管理方法、系统及设备
CN111538602B (zh) * 2020-04-17 2022-12-02 上海万物新生环保科技集团有限公司 一种消息队列的消息转发方法及设备
CN111538602A (zh) * 2020-04-17 2020-08-14 上海悦易网络信息技术有限公司 一种消息队列的消息转发方法及设备
CN111638870A (zh) * 2020-05-14 2020-09-08 民生科技有限责任公司 一种基于react和redux的前端开发基础平台
CN111711621A (zh) * 2020-06-05 2020-09-25 平安科技(深圳)有限公司 基于集群环境的电话会话管理方法、装置及计算机设备
CN112035226A (zh) * 2020-08-12 2020-12-04 上海擎感智能科技有限公司 数据传输方法、电子设备及计算机可读存储介质
CN111988186A (zh) * 2020-09-02 2020-11-24 深圳壹账通智能科技有限公司 一种配置同步方法及相关装置
CN111988186B (zh) * 2020-09-02 2023-04-11 深圳壹账通智能科技有限公司 一种配置同步方法及相关装置
CN113239061A (zh) * 2021-05-31 2021-08-10 浙江环玛信息科技有限公司 智慧法院数据更新方法及系统
CN114721740A (zh) * 2022-04-06 2022-07-08 平安国际融资租赁有限公司 消息触发方法、装置、设备及存储介质
CN114928645A (zh) * 2022-04-26 2022-08-19 青岛海尔科技有限公司 资源包处理方法和装置、存储介质及电子装置
CN114928645B (zh) * 2022-04-26 2024-04-19 青岛海尔科技有限公司 资源包处理方法和装置、存储介质及电子装置
CN115333940A (zh) * 2022-08-11 2022-11-11 以萨技术股份有限公司 基于etcd实现配置监听的方法和系统

Also Published As

Publication number Publication date
CN107947960B (zh) 2021-01-15

Similar Documents

Publication Publication Date Title
CN107947960A (zh) 配置信息的推送方法及系统、配置信息的接收方法及系统
CN103581276B (zh) 集群管理装置、系统、业务客户端及相应方法
US20120297059A1 (en) Automated creation of monitoring configuration templates for cloud server images
CN102739775B (zh) 物联网数据采集服务器集群的监控和管理方法
US6571277B1 (en) Method and apparatus for scaling universal plug and play networks using atomic proxy replication
US10547693B2 (en) Security device capability discovery and device selection
US7296061B2 (en) Distributed web services network architecture
US6665705B1 (en) Method and apparatus for proxy replication
US8892737B2 (en) Network sniffer for performing service level management
CN105099761B (zh) 一种集中管理客户端的配置信息的方法和系统
US20070112944A1 (en) Method and system for establishing a service-application execution environment in a hetergoneous, distributed computing system and a user-friendly data-transfer service application executing within the service-application execution environment
CN106411629B (zh) 一种用于监控cdn节点的状态的方法和设备
CN106209943A (zh) 通讯节点的选择方法及装置
CN106681861A (zh) 一种新环境隔离的配置数据管理方法及系统
CN107979498B (zh) 一种mesh网络集群及基于所述集群的大文件传输方法
CN111510325A (zh) 报警信息推送方法、服务器、客户端及系统
CN106797330A (zh) 用于监测内容递送网络(cdn)的方法、业务监测器(tm)、请求路由器(rr)和系统
US8489727B2 (en) Active storage area network discovery system and method
US8775484B2 (en) Data management apparatus and method
CN114553867A (zh) 一种云原生的跨云网络监控方法、装置及存储介质
CN112543150B (zh) 基于服务端控制的动态负载均衡方法
CN111193778B (zh) 一种web服务负载均衡的方法及装置
CN106230939B (zh) 一种应用运行监控方法及系统
JP3346312B2 (ja) ネットワーク管理システム
WO2017054734A1 (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