CN111092934A - 更新客户端路由的方法、存储介质 - Google Patents
更新客户端路由的方法、存储介质 Download PDFInfo
- Publication number
- CN111092934A CN111092934A CN201911172388.2A CN201911172388A CN111092934A CN 111092934 A CN111092934 A CN 111092934A CN 201911172388 A CN201911172388 A CN 201911172388A CN 111092934 A CN111092934 A CN 111092934A
- Authority
- CN
- China
- Prior art keywords
- client
- address list
- version number
- routing
- routing address
- 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
Links
Images
Classifications
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
-
- 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/50—Network services
- H04L67/55—Push-based network services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种更新客户端路由的方法、存储介质,方法包括:客户端首次请求接入之前,通过访问路由集群获取路由地址列表及其版本号存储至本地;客户端依据所述路由地址列表请求与一接入服务建立长链接时,上送自身版本号至服务端;服务端从redis缓存集群中获取当前路由地址列表对应的版本号,并判断其与客户端上送的版本号是否一致;若不一致,则返回当前路由地址列表至客户端。本发明能够保证客户端本地路由地址列表更新的及时性,大大减少重试次数,提高连接效率;同时,基本上不对正在建立的长链接的带来任何影响。
Description
技术领域
本发明涉及消息推送领域,具体涉及更新客户端路由的方法、存储介质。
背景技术
移动互联网蓬勃发展的今天,大部分手机APP都提供了消息推送功能,如新闻客户端的热点新闻推荐、IM工具的聊天消息提醒、电商产品促销信息、企业应用的通知和审批流程等等。推送对于提高产品活跃度、提高功能模块使用率、提升用户粘性、提升用户留存率起到了重要作用。
推送应用中大多存在一个路由集群,客户端预先访问路由集群的接口来获取路由列表;之后,选择其中的一个路由地址,连接到接入集群中的某一台接入服务进行长链接的建立;长链接建立后,服务端与客户端会保持有一个长链接,所有的消息收发都是通过这个长链接来进行的。这是一个通用的推送系统所进行流程。而实际场景中,由于客户端的网络不稳定,会出现时断时续的网络场景,或者其他异常场景等,导致推送的长链接会经常性地执行断开重连等操作。而客户端建立长链接的路由地址都是从本地路由地址列表中获取到的,一般现在的推送系统都是系统启动后,获取一次路由地址列表;之后缓存在客户端本地中。需要间隔2小时或者半天或者1天后再次进行路由地址列表的定时获取并更新,期间不会因为网络不稳定造成网络重连而再次请求路由地址。这样,以客户端定时刷新路由列表的方式来获取服务端最新路由地址列表,会存在不够及时的问题。也有客户端进行一些特殊处理方式,当本地缓存中的路由地址均访问失败或者无法访问时,才会重新获取最新路由,这样,又导致建立长链接耗时很久。
因此,有必要解决上述客户端的路由列表更新不及时的问题。
发明内容
本发明所要解决的技术问题是:提供一种更新客户端路由的方法、存储介质,确保客户端路由地址及时地更新,从而提高客户端接入推送服务的成功率。
为了解决上述技术问题,本发明采用的技术方案为:
一种更新客户端路由的方法,包括:
客户端通过访问路由集群获取路由地址列表及其版本号存储至本地;
客户端依据所述路由地址列表请求与一接入服务建立长链接时,上送自身版本号至服务端;
服务端从redis缓存集群中获取当前路由地址列表对应的版本号,并判断其与客户端上送的版本号是否一致;
若不一致,则返回当前路由地址列表至客户端。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述一种更新客户端路由的方法所包含的步骤。
本发明的有益效果在于:通过分别对客户端和服务端的路由地址列表设置本版号,以标识不同的版本;在客户端与服务端交互时能够依据版本号及时地对客户端本地的路由地址列表进行更新。从而确保客户端本地的所有路由地址始终具备有效性,进而显著减少下一次长链接建立时重试的次数,大大提高连接效率。
附图说明
图1为本发明一实施例一种更新客户端路由的方法的流程示意图;
图2为本发明一实施例一种更新客户端路由的方法对应的交互示意图;
图3为本发明实施例一一种更新客户端路由的方法的流程示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:分别对客户端和服务端的路由地址列表设置本版号;在客户端与服务端交互时能够依据版本号及时地对客户端本地的路由地址列表进行更新。
本发明涉及的技术术语解释:
请参照图1以及图2,本发明提供一种更新客户端路由的方法,包括:
客户端通过访问路由集群获取路由地址列表及其版本号存储至本地;
客户端依据所述路由地址列表请求与一接入服务建立长链接时,上送自身版本号至服务端;
服务端从redis缓存集群中获取当前路由地址列表对应的版本号,并判断其与客户端上送的版本号是否一致;
若不一致,则返回当前路由地址列表至客户端。
从上述描述可知,本发明的有益效果在于:当服务端的路由地址列表有变更时,在客户端与服务端交互时及时地对路由地址列表进行更新,以保证客户端下一次请求建立长链接时不会请求到有问题的路由地址,进而减少重试次数,提高连接效率。
进一步地,服务端在客户端与所述一接入服务建立长链接的业务逻辑处理完毕后,执行所述判断步骤。
进一步地,所述业务逻辑包括:在缓存中设置客户端的上线标志、设置长链接创建时间,以及创建客户端的唯一标识和通信通道关联信息。
由上述描述可知,在客户端成功与接入服务成功建立长链接后再判断是否需要更新客户端的路由地址列表,不对长链接的建立速度带来任何影响。
进一步地,还包括:
客户端依据接收到的所述当前路由地址列表对本地存储的路由地址列表及其版本号进行更新。
进一步地,还包括:
当一接入服务异常时,更新redis缓存集群中存储的路由地址列表对应的版本号。
由上述描述可知,能够保证服务端的路由地址列表得到及时地更新。
进一步地,所述当接入服务异常时,更新redis缓存集群中存储的路由地址列表对应的版本号,具体为:
通过一异步监控程序定时监控各个接入服务是否正常,若连续N次监控到一接入服务异常,则触发一通知至路由集群,所述N大于等于2;
路由集群将所述一接入服务从路由地址列表中移除,并更新redis缓存集群中存储的路由地址列表及其版本号。
由上述描述可知,后台监控方式能确保更新的及时性,且不对服务端正在进行中的业务产生影响;只有连续多次异常才从路由地址中移除,能保证监控结果的准确性。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述更新客户端路由的方法所包含的步骤;
步骤包括:
客户端通过访问路由集群获取路由地址列表及其版本号存储至本地;
客户端依据所述路由地址列表请求与一接入服务建立长链接时,上送自身版本号至服务端;
服务端从redis缓存集群中获取当前路由地址列表对应的版本号,并判断其与客户端上送的版本号是否一致;
若不一致,则返回当前路由地址列表至客户端。
进一步地,服务端在客户端与所述一接入服务建立长链接的业务逻辑处理完毕后,执行所述判断步骤。
进一步地,所述业务逻辑包括:在缓存中设置客户端的上线标志、设置长链接创建时间,以及创建客户端的唯一标识和通信通道关联信息。
进一步地,还包括:
客户端依据接收到的所述当前路由地址列表对本地存储的路由地址列表及其版本号进行更新。
进一步地,还包括:
当接入服务异常时,更新redis缓存集群中存储的路由地址列表对应的版本号。
进一步地,所述当接入服务异常时,更新redis缓存集群中存储的路由地址列表对应的版本号,具体为:
通过一异步监控程序定时监控各个接入服务是否正常,若连续N次监控到一接入服务异常,则触发一通知至路由集群,所述N大于等于2;
路由集群将所述一接入服务从路由地址列表中移除,并更新redis缓存集群中存储的路由地址列表及其版本号。
从上述描述可知,对应本领域普通技术人员可以理解实现上述技术方案中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来实现的,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时,可包括如上述各方法的流程。且所述流程执行后同样能够实现各方法对应的有益效果。
其中,所述的存储介质可以是磁盘、光碟、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
实施例一
请参照图2和图3,本实施例提供一种更新客户端路由的方法,包括:
S1:客户端应用首次启动时,会预先访问路由集群接口,获取路由地址列表及其对应的版本号,并将其缓存至本地缓存中;所述路由地址列表为客户端可以连接的路由地址的集合。
S2:服务端的路由地址列表及其版本号均缓存在与其连接的redis缓存集群中。
S3:客户端获取到路由地址列表和路由版本号后,在依据路由地址列表首次请求与其中一接入服务建立长链接时,将在请求中同时带上自身的版本号信息至服务端。
S4:服务端接收到上述请求,并走完相关业务逻辑后,新增一路由版本号校验功能。
其中,所述走完相关业务逻辑指的是客户端与所述一接入服务建立长链接的业务逻辑处理完毕后,表示客户端与所述一接入服务基本上已经成功建立长链接。
所述业务逻辑包括在缓存中设置设备的上线标志,设置长链接创建时间,创建设备唯一标识与通信通道关联信息等相关业务步骤。
S5:服务端依据新增的校验功能从redis缓存集群中获取当前路由地址列表对应的版本号,并判断其与客户端上送的版本号是否一致。
若一致,则不做额外处理,继续执行原有的其他流程;
若不一致,则返回所述当前路由地址列表至客户端。即在返回信息中增加redis缓存集群中的当前路由地址列表。
S6:客户端与所述一接入服务建立长链接后,将判断是否存在返回信息,若有,则根据返回信息对本地存储的路由地址连接及其版本号进行更新。
S7:服务端将实时监控路由地址列表是否需要更新,即实时监控是否存在异常的接入服务,并及时更新redis缓存集群中缓存的路由地址列表及其版本号。
具体而言,该步骤包括:
服务端的后台通过一异步监控程序全程定时监控各个接入服务是否正常,若连续N次监控到一接入服务异常,则触发一通知消息至路由集群,所述N大于等于2;然后,路由集群将所述一接入服务从路由地址列表中移除,并更新redis缓存集群中存储的路由地址列表及其版本号。
服务端路由地址列表更新某几台有问题或者异常的接入服务后,会同步更新redis中的路由版本号。此时,已连接到那几台有问题的接入服务上的客户端将会断开连接,寻找其他至少一台的可接入服务进行长链接的建立;而后发起长链接的客户端也将根据路由版本号及时地更新本地路由信息,方便下次快速建立长链接。
基于上述,服务端将及时地将异常的路由地址从redis缓存集群的路由地址列表中剔除,并及时更新版本号,以便在与客户端交互时对客户端本地的路由地址列表进行更新。这样,客户端之后再基于本地路由地址列表发起长链接请求时,便不会选中异常的接入服务,从而显著减少重试次数,快速建立长链接。
实施例二
本实施例针对实施例一提供一种具体运用场景:
客户端应用首次启动时,会预先访问路由集群接口,获取路由地址列表及其版本号,同时,缓存这些信息至本地缓存中。
服务端路由地址列表及其版本号信息均缓存在redis缓存集群中。
假设返回的路由地址列表有3个:A、B和C这3个路由地址,该地址包括域名与端口号。此时的路由版本号为1,服务端与客户端的版本号一致。
客户端获取到路由地址列表后,会随机获取其中的一个路由地址进行推送长链接的建立。一般在请求建立长链接的过程中,会在缓存中设置设备的上线标志,设置长链接创建时间,创建设备唯一标识与通信通道关联信息等相关业务步骤。在正常长链接建立的业务逻辑处理完毕后,对应实施例一进行改进:在请求建立的长链接参数中,新增加一个客户端路由版本号的字段。此时,服务端走完建立长链接业务后,会进行路由版本号的判断,如果客户端路由版本号比服务端的小,则在返回信息中增加服务端路由地址列表的信息,如果相等,则不返回相关信息。
客户端建立长链接后,如果存在路由地址列表信息返回,则更新本地路由地址列表信息以及路由版本号。
正常情况下,接入服务无宕机等异常情况时,服务端的路由版本号是不会变动的。这样,客户端本地的路由版本号与服务端的都一致,不会有特殊处理。当异常情况时,比如上述A、B和C 3台接入服务中,B这台接入服务宕机了。后台存在一个异步监控程序,每隔10秒钟(可预设)监控每个接入服务是否正常,当连续3个(可预设)监控期间内判断某台接入服务不正常时,将会触发一个消息通知,该消息通知会送达至路由集群中,则路由集群会自动剔除B接入服务,同时,更新redis缓存中的路由版本号+1。此时,服务端的路由版本号为2,并且路由接口将只会返回A和C两个路由地址。
当客户端网络变更或者断开网络又连上网络时,会触发建立长链接的操作。此时,会带上客户端的路由版本号“1”请求建立长链接。服务端比较版本号后,会返回最新的路由地址列表A和C给客户端,同时包括路由版本号2。客户端则会更新本地的路由列表以及路由版本号。
客户端更新后的路由地址列表已经剔除了有问题的B路由地址。则在下次再次建立长链接过程中,客户端就不会再次请求到有问题的B路由地址了。
采用此种方式,可以在一定程度之上,实时地更新客户端本地路由地址列表,减少重试次数,提高效率。
实施例三
本实施例对应实施例一或实施例二,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述实施例一或实施例二所述的一种更新客户端路由的方法所包含的步骤。具体步骤内容在此不进行复述,详情请参阅实施例一或实施例二的记载。
综上所述,本发明提供的一种更新客户端路由的方法、存储介质,客户端只需从路由集群获取一次路由地址列表,便可基于版本号在后续每一次请求建立长链接时及时地更新路由地址列表;从而大大减少重试次数,提高连接效率;进一步地,基本上不对正在建立的长链接的带来任何影响;最后,还具有实施简便,实用性高等特点。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种更新客户端路由的方法,其特征在于,包括:
客户端通过访问路由集群获取路由地址列表及其版本号存储至本地;
客户端依据所述路由地址列表请求与一接入服务建立长链接时,上送自身版本号至服务端;
服务端从redis缓存集群中获取当前路由地址列表对应的版本号,并判断其与客户端上送的版本号是否一致;
若不一致,则返回当前路由地址列表至客户端。
2.如权利要求1所述的一种更新客户端路由的方法,其特征在于,服务端在客户端与所述一接入服务建立长链接的业务逻辑处理完毕后,执行所述判断步骤。
3.如权利要求2所述的一种更新客户端路由的方法,其特征在于,所述业务逻辑包括:在缓存中设置客户端的上线标志、设置长链接创建时间,以及创建客户端的唯一标识和通信通道关联信息。
4.如权利要求1所述的一种更新客户端路由的方法,其特征在于,还包括:
客户端依据接收到的所述当前路由地址列表对本地存储的路由地址列表及其版本号进行更新。
5.如权利要求1所述的一种更新客户端路由的方法,其特征在于,还包括:
当接入服务异常时,更新redis缓存集群中存储的路由地址列表对应的版本号。
6.如权利要求5所述的一种更新客户端路由的方法,其特征在于,所述当接入服务异常时,更新redis缓存集群中存储的路由地址列表对应的版本号,具体为:
通过一异步监控程序定时监控各个接入服务是否正常,若连续N次监控到一接入服务异常,则触发一通知至路由集群,所述N大于等于2;
路由集群将所述一接入服务从路由地址列表中移除,并更新redis缓存集群中存储的路由地址列表及其版本号。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序在被处理器执行时,能够实现上述权利要求1-6任意一项所述的一种更新客户端路由的方法所包含的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911172388.2A CN111092934B (zh) | 2019-11-26 | 2019-11-26 | 更新客户端路由的方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911172388.2A CN111092934B (zh) | 2019-11-26 | 2019-11-26 | 更新客户端路由的方法、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111092934A true CN111092934A (zh) | 2020-05-01 |
CN111092934B CN111092934B (zh) | 2022-06-07 |
Family
ID=70394143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911172388.2A Active CN111092934B (zh) | 2019-11-26 | 2019-11-26 | 更新客户端路由的方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111092934B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111800457A (zh) * | 2020-05-21 | 2020-10-20 | 福建天泉教育科技有限公司 | 优化路由分配的方法、存储介质 |
CN112100004A (zh) * | 2020-08-12 | 2020-12-18 | 福建天泉教育科技有限公司 | Redis集群节点的管理方法、存储介质 |
CN113660168A (zh) * | 2021-10-19 | 2021-11-16 | 上海柯林布瑞信息技术有限公司 | 一种多中心研究数据的处理方法、装置和服务器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801740A (zh) * | 2004-12-13 | 2006-07-12 | 英特尔公司 | 资源动态再配置的方法、系统和设备 |
CN103092891A (zh) * | 2011-11-08 | 2013-05-08 | 中国移动通信集团四川有限公司 | 分布式文件存储系统及其实现方法 |
CN103685034A (zh) * | 2012-09-14 | 2014-03-26 | 华为技术有限公司 | 路由管理的方法和节点 |
CN106953795A (zh) * | 2016-01-07 | 2017-07-14 | 中兴通讯股份有限公司 | 配置多网卡的方法及装置 |
CN109617807A (zh) * | 2018-12-28 | 2019-04-12 | 深圳云天励飞技术有限公司 | 路由信息更新方法、装置、网关及存储介质 |
-
2019
- 2019-11-26 CN CN201911172388.2A patent/CN111092934B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801740A (zh) * | 2004-12-13 | 2006-07-12 | 英特尔公司 | 资源动态再配置的方法、系统和设备 |
CN103092891A (zh) * | 2011-11-08 | 2013-05-08 | 中国移动通信集团四川有限公司 | 分布式文件存储系统及其实现方法 |
CN103685034A (zh) * | 2012-09-14 | 2014-03-26 | 华为技术有限公司 | 路由管理的方法和节点 |
CN106953795A (zh) * | 2016-01-07 | 2017-07-14 | 中兴通讯股份有限公司 | 配置多网卡的方法及装置 |
CN109617807A (zh) * | 2018-12-28 | 2019-04-12 | 深圳云天励飞技术有限公司 | 路由信息更新方法、装置、网关及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111800457A (zh) * | 2020-05-21 | 2020-10-20 | 福建天泉教育科技有限公司 | 优化路由分配的方法、存储介质 |
CN112100004A (zh) * | 2020-08-12 | 2020-12-18 | 福建天泉教育科技有限公司 | Redis集群节点的管理方法、存储介质 |
CN113660168A (zh) * | 2021-10-19 | 2021-11-16 | 上海柯林布瑞信息技术有限公司 | 一种多中心研究数据的处理方法、装置和服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN111092934B (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111092934B (zh) | 更新客户端路由的方法、存储介质 | |
US9794365B2 (en) | Re-establishing push notification channels via user identifiers | |
US10313452B2 (en) | Migrating a chat message service provided by a chat server to a new chat server | |
US7693999B2 (en) | System and method for session reestablishment between client terminal and server | |
CN111970315A (zh) | 推送消息的方法、装置及系统 | |
CN115004673A (zh) | 消息推送方法、装置、电子设备及计算机可读介质 | |
CN107566270A (zh) | 一种资源访问的处理方法及装置 | |
CN112689017B (zh) | 重定向处理方法、装置、电子设备及存储介质 | |
CN106973106B (zh) | 一种获取会话信息的方法、装置及系统 | |
CN111245939B (zh) | 数据同步方法、装置和系统 | |
CN110555040A (zh) | 一种数据缓存方法、装置及服务器 | |
CN115361279A (zh) | 配置数据的更新方法、装置、电子设备及计算机可读介质 | |
CN106790176B (zh) | 一种访问网络的方法及系统 | |
US10108588B2 (en) | Method and system for communicating between client pages | |
CN113364830B (zh) | 一种长链接的缓存优化方法及系统 | |
US9596198B2 (en) | Enabling and supporting a presence server cache | |
CN113783826A (zh) | 一种微服务异常处理方法和装置 | |
CN113157615B (zh) | 一种服务总线通信方法、电子设备以及计算机存储介质 | |
CN112351072B (zh) | 一种消息推送方法及终端 | |
CN116955874B (zh) | 页面处理方法、装置、电子设备和计算机可读存储介质 | |
CN110855785B (zh) | 一种数据处理的方法及装置 | |
CN109873875B (zh) | 一种对应关系建立方法及服务器 | |
CN115065757A (zh) | 一种话务处理方法、系统、装置、电子设备及存储介质 | |
CN114051022A (zh) | Http请求处理方法及装置 | |
CN115766885A (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 |