CN111600794A - 服务器切换方法、终端、服务器及存储介质 - Google Patents
服务器切换方法、终端、服务器及存储介质 Download PDFInfo
- Publication number
- CN111600794A CN111600794A CN202010721078.8A CN202010721078A CN111600794A CN 111600794 A CN111600794 A CN 111600794A CN 202010721078 A CN202010721078 A CN 202010721078A CN 111600794 A CN111600794 A CN 111600794A
- Authority
- CN
- China
- Prior art keywords
- server
- target
- client
- working state
- routing table
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- 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/745—Address table lookup; Address filtering
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例提供了一种服务器切换方法、终端、服务器及存储介质;所述方法包括:获取服务器集群中至少一个服务器的工作状态,得到工作状态集合;将工作状态集合中满足预设条件的目标工作状态,反馈至客户端集群中心,以使客户端集群中心更新路由表;将与具有目标工作状态的服务器存在关联关系的客户端,确定为目标客户端;根据客户端集群中心反馈的更新的路由表,在服务器集群中,确定能够与目标客户端进行通信的目标服务器;将目标客户端当前连接的服务器切换为目标服务器;这样,能够及时更新路由表,减化运维操作成本,提高了数据的一致性。
Description
技术领域
本申请涉及网络技术领域,尤其涉及服务器切换方法、终端、服务器及存储介质。
背景技术
在网络游戏中,基于性能的考虑,特定功能的游戏服务器会根据业务特点在本机进行数据缓存,如公会服务器或排行服务器等。但在出现服务器宕机或需要进行扩缩容时,会出现当前服务器维护的数据迁移到其他服务器的情况,会比较复杂,或者是运维操作成本比较高。
发明内容
本申请实施例提供一种服务器切换方法、终端、服务器及存储介质,采用监控终端监控服务器集群的工作状态,能够及时上报目标工作状态,以及时更新路由表,减化了运维操作成本,而且自动化触发目标客户端需要连接的服务器的切换过程,提高了数据的一致性。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种服务器切换方法,包括:
获取服务器集群中至少一个服务器的工作状态,得到工作状态集合;
将所述工作状态集合中满足预设条件的目标工作状态,反馈至客户端集群中心,以使所述客户端集群中心更新路由表;其中,所述路由表用于存储客户端与服务器之间的连接关系;
将与具有所述目标工作状态的服务器存在关联关系的客户端,确定为目标客户端;
根据所述客户端集群中心反馈的更新的路由表,在所述服务器集群中,确定能够与所述目标客户端进行通信的目标服务器;
将所述目标客户端当前连接的服务器切换为所述目标服务器。
第二方面,本申请实施例提供一种服务器切换方法,包括:
确定用于存储客户端与服务器集群中的服务器之间的连接关系的路由表;
根据监控终端上报的服务器的目标工作状态,对所述路由表进行更新,得到更新的路由表;其中,所述目标工作状态为所述服务器集群的工作状态集合中满足预设条件的工作状态;
将所述更新的路由表反馈至所述监控终端,以使所述监控终端根据所述更新的路由表对目标客户端当前连接的服务器进行切换;其中,所述目标客户端与具有所述目标工作状态的服务器存在关联关系。
第三方面,本申请实施例提供一种服务器切换方法,包括:
向监控终端上报当前工作状态,以使所述监控终端检测到满足预设条件的目标工作状态;
在自身的标识信息包含于所述监控终端存储的标识信息库的情况下,确定所述自身的标识信息与所述标识信息库相匹配;
获取目标客户端反馈的数据请求;
响应于所述数据请求,在所述本地缓存中不包括所述服务数据的情况下,从数据库中加载所述服务数据;
将所述服务数据,反馈至所述目标客户端。
第四方面,本申请实施例提供一种监控终端,包括:
第一获取模块,用于获取服务器集群中至少一个服务器的工作状态,得到工作状态集合;
第一反馈模块,用于将所述工作状态集合中满足预设条件的目标工作状态,反馈至客户端集群中心,以使所述客户端集群中心更新路由表;其中,所述路由表用于存储客户端与服务器之间的连接关系;
第一确定模块,用于将与具有所述目标工作状态的服务器存在关联关系的客户端,确定为目标客户端;
第二确定模块,用于根据所述客户端集群中心反馈的更新的路由表,在所述服务器集群中,确定能够与所述目标客户端进行通信的目标服务器;
第一切换模块,用于将所述目标客户端当前连接的服务器切换为所述目标服务器。
第五方面,本申请实施例提供一种客户端,包括:
第三确定模块,用于确定用于存储客户端与服务器集群中的服务器之间的连接关系的路由表;
第一更新模块,用于根据监控终端上报的服务器的目标工作状态,对所述路由表进行更新,得到更新的路由表;其中,所述目标工作状态为所述服务器集群的工作状态集合中满足预设条件的工作状态;
第二反馈模块,用于将所述更新的路由表反馈至所述监控终端,以使所述监控终端根据所述更新的路由表对目标客户端当前连接的服务器进行切换;其中,所述目标客户端与具有所述目标工作状态的服务器存在关联关系。
第六方面,本申请实施例提供一种服务器,包括:
第一上报模块,用于向监控终端上报当前工作状态,以使所述监控终端检测到满足预设条件的目标工作状态;
第四确定模块,用于在自身的标识信息包含于所述监控终端存储的标识信息库的情况下,确定所述自身的标识信息与所述标识信息库相匹配;
第二获取模块,用于获取目标客户端反馈的数据请求;
第一响应模块,用于响应于所述数据请求,在所述本地缓存中不包括所述服务数据的情况下,从数据库中加载所述服务数据;
第三反馈模块,用于将所述服务数据,反馈至所述目标客户端。
第七方面,本申请实施例提供一种服务器切换的设备,包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现上述服务器切换方法。
第八方面,本申请实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的服务器切换方法。
本申请实施例具有以下有益效果:首先,监控终端监控到的服务器集群中多个工作状态中满足预设条件的目标工作状态时,将该目标工作状态反馈给客户端集群中心;客户端集群中心自动更新存储客户端与服务器之间的连接关系的路由表;这样,采用监控终端监控服务器集群的工作状态,能够及时上报目标工作状态,以及时更新路由表,减化了运维操作成本;最后,依据更新的路由表,确定出目标客户端应该进行连接的目标服务器,并且将目标客户端当前连接的服务器切换为该目标服务器;这样,自动化的触发将目标客户端当前连接的服务器切换为目标服务器,提高了数据的一致性。
附图说明
图1是本申请实施例提供的服务器切换系统的另一个可选的架构示意图;
图2是本申请实施例提供的服务器切换系统的结构示意图;
图3A是本申请实施例提供的服务器切换方法的实现流程示意图;
图3B是本申请实施例提供的服务器切换系统的网络架构示意图;
图4是本申请实施例提供的服务器切换方法的交互示意图;
图5是本申请实施例提供的有状态服务器集群的网络架构图;
图6是本申请实施例提供的服务器切换系统的又一架构示意图;
图7是本申请实施例公会服务器出现故障时的自动踢除流程示意图;
图8是本申请实施例公会服务器故障恢复时流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)有状态服务器:指两个来自相同发起者的请求在服务器端是否具备上下文关系,具有上下文关系则为有状态服务器。比如,在一个集群中,一组服务器承担相同的功能,但每一台服务器并不是等价关系,如仅服务于某一部分用户或有数据缓存,这种服务器即称为有状态服务器。
2)分布式应用程序协调服务(Zookeeper):是一个分布式的,开放源码的分布式应用程序协调服务,是一个开源的实现,是海杜普(Hadoop)的重要组件;Zookeeper是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步和组服务等。
3)客户端(Client):在本文中特指有状态服务器的访问者,可以是服务器集群中的一个独立进程,如游戏中的大区服务器,会访问有状态的公会服务器,大区服务器则被看作是客户端。
4)冗灾:兼容一些灾难发生,互联网里面叫冗灾,容错,是指发生一些错误,冗灾,比如,一些运营商出现了一些故障,比如。地震施工或者光缆挖断,导致到某一个服务器无法接通,解决这样出现故障的时候的问题,就是提高系统的冗灾。
5)一致性哈希:是指将整个哈希值空间组织成一个虚拟的圆环,如假设某哈希(hash)函数H的值为一个32位无符号整形,首先,将服务的关键值(key)按该hash算法计算得到在服务在一致性hash环上的位置;然后,将缓存的key,用同样的方法计算出hash环上的位置,按顺时针方向,找到第一个大于等于该hash环位置的服务key,从而得到该key需要分配的服务器。
6)区块链网络(Blockchain Network):通过共识的方式将新区块纳入区块链的一系列的节点的集合;其中,区块链由区块(Block)形成的加密的、链式的交易的存储结构。
7)云技术(Cloud Technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
8)云存储(Cloud Storage),是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
在网络游戏中,基于性能的考虑,特定功能的游戏服务器会根据业务特点在本机进行数据缓存,如公会服务器或游戏排行服务器等。这里在玩家进行高频操作时,不需要每次都从数据库读取数据,然后解包进行修改再打包回写数据库,而且直接操作本机缓存数据。对于缓存中非关键数据(如公会聊天数据等),可以定时进行回写,对于关键数据(如加入公会或退出的数据),进行实时回写。这样的设计有很多好处,但在出现服务器宕机或需要进行扩缩容时,会出现当前服务器维护的数据迁移到其他服务器的情况,会比较复杂,或者是运维操作成本比较高。
基于此,本申请实施例提供一种服务器切换方法、终端、服务器及存储介质,通过当集群中某一台有状态服务器发现故障时,由集群自动实现检测与踢除,并迁移原来这台机器的客户端自动切换到集群中其他可用服务器。而且当集群中某一台服务器故障恢复后,可自动完成状态清理及初始化,并加入集群进行服务,并迁移部分客户端到这台机器,对于切换到当前服务器的客户端,自动清理在原服务器上的状态。如此,在不增加设备资源的情况下,能够实现服务器的自动冗灾与扩缩容。
下面说明本申请实施例提供的终端(包括,客户端或监控终端)的示例性应用,本申请实施例提供的客户端可以实施为各种类型的用户设备,也可以实施为服务器。下面,将说明客户端实施为设备或服务器时示例性应用。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
参见图1,图1是本申请实施例提供的服务器切换系统的另一个可选的架构示意图,包括区块链网络20(示例性示出了作为原生节点的服务器200)、监测系统30(示例性示出归属于监测系统30的客户端300及其图形界面301),下面分别进行说明。
区块链网络20的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备例如用户设备和服务器,都可以在不需要授权的情况下接入区块链网络20;以联盟链为例,业务主体在获得授权后其下辖的电子设备(例如设备/服务器)可以接入区块链网络20,此时,成为区块链网络20中的一类特殊的节点即客户端节点。
需要指出地,客户端节点可以只提供支持业务主体发起交易(例如,用于上链存储数据或查询链上数据)功能,对于区块链网络20的原生节点的功能,例如下文所述的排序功能、共识服务和账本功能等,客户端节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实现。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络20中,通过区块链网络20实现数据和业务处理过程的可信和可追溯。
区块链网络20接收来自业务主体(例如图1中示出的监测系统30)的客户端节点(例如,图1中示出的归属于监测系统30的设备300)提交的交易,执行交易以更新账本或者查询账本,并在设备的用户界面(例如,设备300的图形界面301)显示执行交易的各种中间结果或最终结果。
下面以监测系统接入区块链网络以实现服务器切换的上链为例说明区块链网络的示例性应用。
监测系统30的设备300接入区块链网络20,成为区块链网络20的客户端节点。设备300通过传感器获取待处理任务;并且,将最终处理完成的指令反馈给区块链网络20中的服务器200或者保存在设备300中;在已对设备300部署上传逻辑或用户进行操作的情况下,设备300根据待处理任务/同步时间查询请求,生成对应更新操作/查询操作的交易,在交易中指定了实现更新操作/查询操作需要调用的智能合约、以及向智能合约传递的参数,交易还携带了监测系统30签署的数字签名(例如,使用监测系统30的数字证书中的私钥,对交易的摘要进行加密得到),并将交易广播到区块链网络20。其中,数字证书可由监测系统30向认证中心31进行登记注册得到。
区块链网络20中的原生节点,例如服务器200在接收到交易时,对交易携带的数字签名进行验证,数字签名验证成功后,根据交易中携带的监测系统30的身份,确认监测系统30是否是具有交易权限,数字签名和权限验证中的任何一个验证判断都将导致交易失败。验证成功后签署原生节点自己的数字签名(例如,使用原生节点的私钥对交易的摘要进行加密得到),并继续在区块链网络20中广播。
区块链网络20中具有排序功能的节点接收到验证成功的交易后,将交易填充到新的区块中,并广播到区块链网络中20提供共识服务的节点。
区块链网络20中的提供共识服务的节点对新区块进行共识过程以达成一致,提供账本功能的节点将新区块追加到区块链的尾部,并执行新区块中的交易:将目标工作状态反馈给客户端集群中心,以使新区块自动更新路由表;依据更新的路由表,将目标客户端当前连接的服务器切换为该目标服务器,对于目标服务器提供的服务数据可显示于设备300的图形界面301中。
区块链网络20中的原生节点可从区块链中读取待处理任务,并将待处理任务呈现于原生节点的监测页面,原生节点也可以利用在区块链存储的待处理任务,对该待处理任务进行处理。
在实际应用中,可为区块链网络20的不同原生节点设置不同的功能,例如设置服务器200具有服务器切换功能和记账功能。对于该情况,可在交易过程中,服务器200接收设备300发送的待服务器切换,采用服务器200在监控到目标工作状态时,通知客户端集群中心对路由表进行更新,这样,采用监控终端监控服务器集群的工作状态,能够同时解耦路由配置与客户端,从而大大减化了运维操作成本;然后,依据更新的路由表,自动化的触发将目标客户端当前连接的服务器切换为目标服务器,简化了设计,提高了数据的一致性。
参见图2,图2是本申请实施例提供的服务器切换系统的结构示意图,图2所示的设备400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。设备400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,在一些示例中键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(Read Only Memory,ROM),易失性存储器可以是随机存取存储器(Random Access Memory,RAM)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证、和通用串行总线(UniversalSerial Bus,USB)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器450中的服务器切换的监控终端455,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块4551、第一反馈模块4552、第一确定模块4553、第二确定模块4554和第一切换模块4555;以及存储在存储器450中的在线互动实体的客户端456,其可以是程序和插件等形式的软件,包括以下软件模块:第三确定模块4561、第一更新模块4562和第二反馈模块4563;以及存储在存储器450中的在线互动实体的服务器457,其可以是程序和插件等形式的软件,包括以下软件模块:第一上报模块4571、第四确定模块4572、第二获取模块4573、第一响应模块4574和第三反馈模块4575;这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的服务器切换方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(Application Specific Integrated Circuit,ASIC)、DSP、可编程逻辑器件(Programmable Logic Device,PLD)、复杂可编程逻辑器件(Complex ProgrammableLogic Device,CPLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或其他电子元件。
将结合本申请实施例提供的设备的示例性应用和实施,说明本申请实施例提供的服务器切换方法。
参见图3A,图3A是本申请实施例提供的服务器切换方法的实现流程示意图,结合图3A示出的步骤进行说明。
步骤S301,获取服务器集群中至少一个服务器的工作状态,得到工作状态集合。
在一些实施例中,服务器集群中的服务器为有状态服务器或无状态服务器,服务器的工作状态至少包括:故障状态、故障恢复状态、正常工作状态和扩容状态等。监控终端自动获取有状态服务器的工作状态,或者,有状态服务器自动向监控终端上报自身的工作状态。在一个具体例子中,监控终端可以是用于承担故障监测、服务发布与服务器信息存储的Zookeeper;在该Zookeeper中自动监测有状态服务器的工作状态,并且在Zookeeper中将能够连接客户端的服务器的标识信息记录在目标服务器中以进行存储。在一个具体例子中,在游戏场景下,服务器集群为有状态服务器,比如,公会服务器。
步骤S302,将工作状态集合中满足预设条件的目标工作状态,反馈至客户端集群中心,以使客户端集群中心更新路由表。
在一些实施例中,路由表用于存储客户端与服务器之间的连接关系。在一些可能的实现方式中,预设条件可以是服务器集群中服务器数量发生变化,工作状态集合中满足预设条件的目标工作状态,可以理解为是工作状态集合中表征所述服务器集群中服务器数量发生变化的工作状态,即当前的工作状态与前一时刻的工作状态相比发生了变化。也就是说,目标工作状态的发生会引起服务器集群中服务器处于正常工作状态的服务器数量发生变化。目标工作状态包括:故障状态、扩容状态和故障恢复状态。比如,前一时刻是处于正常工作状态(比如,服务器与客户端正常通信的工作状态),而当前时刻发生了故障,即处于故障状态;或者,是新增的服务器,即前一时刻并未与客户端连接,而当前时刻加入到服务器集群中并请求与客户端相连接。在一个具体例子中,当前时刻处于正常工作状态的服务器数量为10个,当有两个服务器发生目标工作状态时,如果目标工作状态为故障状态,那么处于正常工作状态的服务器数量变为8;如果目标工作状态为故障恢复状态,那么处于正常工作状态的服务器数量变为12;如果目标工作状态为扩容状态,那么处于正常工作状态的服务器数量变为12。在本申请实施例中,将这样的目标工作状态,反馈至客户端集群中心,以使该客户端集群中心根据目标工作状态更新路由表,从而使得客户端集群中心能够及时更新路由表。
步骤S303,将与具有目标工作状态的服务器存在关联关系的客户端,确定为目标客户端。
在一些实施例中,客户端与具有目标工作状态的服务器存在关联关系,并不一定该客户端与具有目标工作状态的服务器相连接。关联关系表示客户端与具有目标工作状态的服务器之间存在关联,可以是服务器发生切换之前该客户端与具有目标工作状态的服务器之间相连接,但是服务器切换之后,该客户端与具有目标工作状态的服务器之间断开连接;还可以是服务器发生切换之后该客户端即将与具有目标工作状态的服务器相连接。在一些可能的实现方式中,与具有目标工作状态的服务器具有关联关系的目标客户端,包括以下两种情况,一是如果目标工作状态为扩容状态或故障恢复状态,目标客户端可以是请求连接到目标工作状态所属的服务器的客户端,即服务器发生切换之后,目标客户端即将与该目标工作状态所属的服务器相连接;二是如果目标工作状态为故障状态,目标客户端可以是目标工作状态所属的服务器的客户端发生故障之前所连接的客户端,即服务器发生切换之前,目标客户端与该目标工作状态所属的服务器相连接,而服务器发生切换之后,目标客户端与该目标工作状态所属的服务器断开连接。
步骤S304,根据客户端集群中心反馈的更新的路由表,在所述服务器集群中,确定能够与目标客户端相连接的目标服务器。
在一些实施例中,所述能够与目标客户端相连接的目标服务器,可以理解为是具有与目标客户端相连接的功能的服务器,即为目标服务器。更新的路由表中存储了服务器集群中当前的服务器与客户端之间的连接关系。在该更新的路由表中,确定出能够与目标客户端相连接的目标服务器;比如,确定出具有与目标客户端进行连接功能的目标服务器,还可以理解为是确定出能够与目标客户端进行通信的目标服务器。目标服务器可以理解为是更新的路由表中指示的目标客户端在下一时刻应该连接的服务器。
步骤S305,将目标客户端当前连接的服务器切换为目标服务器。
在一些实施例中,自动确定出目标客户端应该连接的目标服务器之后,将目标客户端当前连接的服务器切换为该目标服务器。由于目标工作状态的不同,步骤S305包括三种情况:
一是,如果目标工作状态为故障状态,那么将与发生故障的服务器当前连接的目标客户端,切换为与其他处于正常工作状态的目标服务器相连接。
二是,如果目标工作状态为故障恢复状态,那么目标客户端为即将与具有故障恢复状态的服务器相连接的客户端(该客户端可以是具有故障恢复状态的服务器发生故障之前连接的客户端,还可以是该服务器未曾连接过的客户端);断开目标客户端与当前连接的服务器之间的连接关系,将该目标客户端从当前连接的服务器切换为具有故障恢复状态的目标服务器。
三是,如果目标工作状态为扩容状态,那么目标客户端为即将与具有扩容状态的服务器相连接的客户端;断开目标客户端与当前连接的服务器之间的连接关系,将该目标客户端从当前连接的服务器切换为具有扩容状态的目标服务器。
在本申请实施例中,采用监控终端监控服务器集群的工作状态,能够同时解耦路由配置与客户端,从而大大减化了运维操作成本,而且自动化的触发将目标客户端当前连接的服务器切换为目标服务器,提高了数据的一致性。
本申请实施例提供一种服务器切换系统的网络架构,参见图3B所示,图3B是本申请实施例提供的服务器切换系统的网络架构示意图,结合图3B进行以下说明:
服务器切换系统包括:客户端集群321、监控终端322和服务器集群323,其中:
客户端集群321,用于响应于接收到的监控终端反馈的目标工作状态,自动更新路由表,并通过网络324,将更新的路由表反馈至监控终端322。
监控终端322,用于监控服务器集群323的工作状态,当监测到工作状态集合中包括满足预设条件的目标工作状态时,并通过网络324,主动上报至客户端集群321,以使客户端集群321更新路由表。
服务器集群323,用于当将目标客户端当前连接的服务器切换为目标服务器之后,清除已断开连接的服务器中的缓存,并且从数据库中加载数据,以向自身连接的客户端提供数据服务。如此,通过依据更新的路由表,确定出目标客户端应该进行连接的目标服务器,并且将目标客户端当前连接的服务器切换为该目标服务器;这样,自动化的触发将目标客户端当前连接的服务器切换为目标服务器,提高了数据的一致性。
在一些实施例中,以游戏场景下的有状态服务器的扩容或冗灾为例进行说明,客户端集群321、监控终端322和服务器集群323中的服务器之间的信息交互过程可参见图4,图4是本申请实施例提供的服务器切换方法的交互示意图,结合图4示出的步骤进行说明。
步骤S401,服务器集群向监控终端上报当前工作状态,以使监控终端检测到目标工作状态。
在一些实施例中,在游戏场景下,服务器为有状态服务器(比如,公会服务器),监控终端可以是Zookeeper,客户端可以是与公会服务器相连接的大区服务器。步骤S401可以是服务器集群中每一个服务器向监控终端上报当前工作状态,然后,监控终端从工作状态集合中,确定出满足预设条件的目标工作状态。在一些可能的实现方式中,服务器集群中的服务器可以是仅上报发生变化的工作状态,比如,发生故障时,上报表征当前发生故障的提示信息;或者,作为新增的服务器(或故障恢复的服务器),上报已接入服务器集群的提示信息;这样,监控终端接收到的工作状态便均是目标工作状态,不需要再从工作状态集合中进行筛选。
步骤S402,监控终端获取服务器集群中至少一个服务器的工作状态,得到工作状态集合。
在一些实施例中,监控终端接收每一个服务器上报的工作状态,得到包括多种工作状态的工作状态集合。比如,服务器集群中有4个有状态服务器,接收这4个服务器的工作状态。
步骤S403,监控终端将工作状态集合中满足预设条件的目标工作状态,反馈至客户端集群中心,以使更新路由表。
在一些实施例中,将工作状态集合中,表征服务器集群中处于可连接状态的服务器数量发生变化的工作状态,确定为目标工作状态。所谓发生变化,是将接收到目标工作状态之前,与接收到该目标工作状态时的服务器数量相比较。比如,服务器上报的工作状态集合中的故障状态,说明该服务器发生故障不能进行正常工作,还可以理解为是该服务器当前处于不可连接状态,那么服务器集群中处于可连接状态的服务器数量将减少;如果服务器上报的工作状态为故障恢复状态或扩容状态,那么服务器集群中可连接状态的服务器与前一时刻相比,数量增加。如此,采用监控终端自动监控服务器集群的工作状态,能够及时将服务器中的发生变化的工作状态上报至客户端。
在其他的实现方式中,还可以是,服务器集群中处于能够连接客户端的服务器上报当前的工作状态;即处于故障状态的服务器不上报当前的工作状态,那么监控终端可以通过判断在预设时长(比如,5秒)内是否接收到服务器的工作状态,如果在该预设时长内监控终端未接收到某一服务器上报的工作状态,则确定该服务器发生故障,即该服务器即为工作状态满足预设条件的服务器。
步骤S404,客户端集群中心确定用于存储客户端与服务器集群中的服务器之间的连接关系的路由表。
在一些实施例中,在客户端集群中心,确定出当前的路由表。在该路由表中存储所有客户端与服务器集群中的服务器之间的连接关系。比如,客户端集群中心包括5个客户端,服务器集群中包括4个服务器,路由表中存储了这5个客户端与这4个服务器之间的连接关系;比如,客户端1和2与服务器1连接,客户端3与服务器2连接,客户端4与服务器3连接,客户端5与服务器4连接。
步骤S405,客户端集群中心根据监控终端上报的服务器的目标工作状态,对路由表进行更新,得到更新的路由表。
在一些实施例中,客户端集群中心根据目标工作状态,采用哈希一致性,对路由表进行更新,得到更新的路由表。比如,如果目标工作状态为故障状态,那么将发生故障的服务器所连接的客户端,按照哈希一致性,转移到与服务器集群中其他服务器相连接。如果目标工作状态为故障恢复或扩容状态,那么对故障恢复或扩容新增的服务器进行哈希一致性计算,确定出这些服务器可以连接的客户端,从而将这些客户端从当前连接的服务器中,转移到故障恢复或扩容新增的服务器。
在一些可能的实现方式中,路由表的更新过程包括两种情况:
情况一:首先,如果目标工作状态表征所述服务器集群中处于可连接状态的服务器数量减少,确定服务器集群中处于可连接状态的候选服务器集合。
这里,如果目标工作状态表征所述服务器集群中处于可连接状态的服务器数量减少,可以理解为目标工作状态为故障状态,即在服务器处于故障状态下,候选服务器即为服务器集群中除该发生故障的服务器之外的服务器;如果目标工作状态为扩容状态或故障恢复状态,那么候选服务器即为服务器集群中当前所有服务器以及该扩容状态或故障恢复状态。
其次,采用哈希函数确定每一候选服务器的标识信息的哈希值,得到第一哈希值集合。
这里,第一哈希值集合中包括每一候选服务器对应的第一哈希值。候选服务器的标识信息至少包括服务器的标识符、服务器的网络地址和服务器序列号等。对于候选服务器,采用哈希一致性,确定出这些服务器标识信息的第一哈希值,得到第一哈希值集合。比如,确定出这些候选服务器在哈希环上的位置,每一个位置表示一个候选服务器的第一哈希值;在一些可能的实现方式中,如果目标工作状态为故障状态,那么候选服务器的数量较接收到目标工作状态之前的服务器数量减少,那么其他服务器在哈希环上的位置不变,这种情况下,可以直接获取这些候选服务器在哈希环上的位置,以得到每一候选服务器的标识信息的第一哈希值。如果目标工作状态为故障恢复状态或扩容状态,那么候选服务器的数量较接收到目标工作状态之前的服务器数量增加,那么需要确定出新增的服务器在哈希环上的位置,这种情况下,对于在哈希环上位置未发生变化的服务器,可以直接获取这些服务器在哈希环上的位置,从而得到每一候选服务器的标识信息的第一哈希值。
再次,采用哈希函数确定目标客户端的标识信息的哈希值,得到第二哈希值。
这里,目标客户端的标识信息包括:目标客户端的序列号和名称等;通过确定出目标客户端在该哈希环上的位置,即得到第二哈希值。
再次,在第一哈希值集合中,确定与第二哈希值相匹配的目标哈希值。
这里,确定了候选服务器和目标客户端在哈希环上的位置之后,将多个第一哈希值与第二哈希值进行比较,将沿着哈希环,按顺时针方向,首个大于等于第二哈希值(即目标客户端在哈希环上位置)的第一哈希值,即为目标哈希值。
再次,在候选服务器集合中,确定目标哈希值对应的目标服务器。
这里,将候选服务器集合中,第一哈希值为目标哈希值的候选服务器,即为目标服务器。
最后,建立目标客户端与目标服务器之间的连接关系,将连接关系存储在路由表中以更新路由表,得到更新的路由表。
这里,将目标客户端与目标服务器建立新的连接关系,并将该连接关系存储在更新的路由表中。在一个具体例子中,如果目标工作状态为故障状态,将目标客户端与发生故障的服务器之间的连接关系断开,按照哈希一致性,从服务器集群中未发生故障的服务器中,确定出该目标客户端可以进行切换的目标服务器,建立目标服务器与目标客户端之间的连接关系。如果目标工作状态为故障恢复状态或扩容状态,那么目标服务器即是目标工作状态所属的服务器;按照哈希一致性,确定出故障恢复状态或扩容状态的服务器相匹配的目标客户端,断开该目标客户端与当前连接的服务器之间的连接关系,并通知当前连接的服务器清除关于目标客户端的缓存,建立目标客户端与故障恢复状态或扩容状态的服务器之间的连接关系。
在情况一中,在目标工作状态表征服务器数量减少的情况下,在建立目标客户端与所述目标服务器之间的连接关系之前,在路由表中,删除目标客户端与具有目标工作状态的服务器之间的连接关系。
这里,目标工作状态表征服务器数量减少,可以理解为目标工作状态为故障状态,那么在这样的情况下,首先客户端集群中心将路由表中目标客户端与故障服务器之间的连接关系删除,通过哈希一致性确定出能够与目标客户端相连接的目标服务器,并建立目标客户端与所述目标服务器之间的连接关系,存储在更新的路由表中。在一个具体例子中,假设服务器集群中包括4个服务器,客户端集群中包括4个客户端,路由表中原先存储的连接关系是客户端1与服务器1相连接,客户端2与服务器2相连接,客户端2与服务器3相连接,客户端4与服务器4相连接;在服务器4发生故障的情况下,首先采用哈希一致性算法,从服务器集群(即候选服务器集合,服务器1至3)中,确定与目标客户端4的哈希值相匹配的目标服务器(比如,服务器2);然后,建立目标客户端4与目标服务器2之间的连接关系,并将该连接关系存储在路由表中,得到更新的路由表。如此,采用哈希一致性进行更新路由表,能够减少更新的服务器的数量,简化了系统结构。
情况二:首先,如果目标工作状态表征所述服务器数量增加,获取客户端集群中每一客户端的标识信息。
其次,采用哈希函数,确定每一客户端的标识信息的哈希值,得到第三哈希值集合,第三哈希值集合中包括每一客户端对应的第三哈希值。
再次,采用所述哈希函数,确定具有目标工作状态的服务器的第四哈希值。
再次,在第三哈希值集合中,确定与第四哈希值相匹配的第二目标哈希值。
再次,在客户端集群中,确定第二目标哈希值对应的目标客户端。
最后,建立目标客户端与具有目标工作状态的服务器之间的连接关系,将连接关系存储在路由表中,得到更新的路由表。
在情况二中,如果目标工作状态表征服务器集群中处于可连接状态的服务器数量增加,即目标工作状态为扩容状态或故障恢复状态,那么首先,在路由表中,删除目标客户端与当前连接的服务器之间的连接关系;然后,建立目标客户端和具有目标工作状态的服务器之间的连接关系,以更新路由表,得到更新的路由表。在一个具体例子中,假设服务器集群中包括3个服务器,客户端集群中包括4个客户端,路由表中原先存储的连接关系是客户端1和2与服务器1相连接,客户端3与服务器2相连接,客户端4与服务器3相连接;在服务器4作为扩容或故障恢复服务器加入服务器集群的情况下,首先采用哈希一致性算法,从客户端集群中,确定与服务器4的哈希值相匹配的客户端(比如,客户端2),即目标客户端;然后,删除目标客户端2与服务器1的连接关系,建立目标客户端2与服务器4之间的连接关系,并将该连接关系存储在路由表中,得到更新的路由表。这样,在服务器集群扩容或者服务器集群中有服务器故障恢复的情况下,客户端集群中心通过删除目标客户端与当前连接服务器之间的连接关系,采用哈希一致性,确定出扩容状态或故障恢复状态服务器应该连接的目标客户端,建立目标客户端与具有扩容状态或故障恢复状态的服务器之间的连接关系,从而得到更新的路由表。
步骤S406,客户端集群中心将更新的路由表反馈至监控终端,以使监控终端根据更新的路由表对目标客户端当前连接的服务器进行切换。
在一些实施例中,由于目标工作状态的不同,更新的路由表中更新的内容不同,如果目标工作状态为故障状态,更新的内容为:将故障服务器连接的目标客户端切换到服务器集群中的其他服务器上。如果目标工作状态为故障恢复状态或扩容状态,更新的内容为:将与该状态下的服务器相匹的目标客户端,从当前连接的服务器集群中的其他服务器切换为该状态下的服务器。
步骤S407,监控终端将与具有目标工作状态的服务器存在关联关系的客户端,确定为目标客户端。
在一些实施中,关联关系是根据目标工作状态确定的。比如,如果目标工作状态为故障状态,那么关联关系可以理解为是与故障服务器具有连接关系,即,目标客户端为故障服务器发生故障前所连接的客户端。
如果目标工作状态为故障恢复状态或扩容状态,那么关联关系可以理解为是与故障恢复或扩容新增服务器具有待连接关系,即目标客户端为,采用哈希一致性,确定出的故障恢复或扩容新增服务器的第一哈希值相匹配的第二哈希值所属的客户端,还可以理解为是故障恢复或扩容新增服务器即将连接的客户端。
在一些可能的实现方式中,目标客户端的确定方式包括以下两种情况:
情况一:如果目标工作状态表征服务器数量减少,确定所述目标工作状态为故障状态;然后,将当前时刻与具有故障状态的服务器相连接的客户端,确定为目标客户端。
这里,如果目标工作状态表征服务器数量减少,说明目标工作状态为故障状态,即服务器集群中有服务器发生故障,所以处于可连接状态的服务器数量减少,这种情况下,将当前时刻该故障服务器相连接的客户端确定为目标客户端,这些目标客户端为需要转移到服务器集群中其他服务器。
在这种情况下,将目标客户端当前连接的服务器切换为目标服务器,可以是将目标客户端当前连接的具有故障状态的故障服务器,切换为目标服务器。即,将目标客户端所连接的故障服务器,切换为通过哈希一致性确定的目标服务器。
情况二:如果目标工作状态表征服务器数量增加,确定所述目标工作状态为所述扩容状态或故障恢复状态;并将请求连接具有扩容状态或故障恢复状态的服务器的客户端,确定为目标客户端。
这里,如果目标工作状态表征服务器数量增加,说明目标工作状态为故障恢复状态或扩容状态,即服务器集群中有服务器故障恢复或者新增了服务器,所以处于可连接状态的服务器数量增加。这种情况下,将故障恢复或扩容新增服务器发送连接请求的客户端,确定为目标客户端,这些目标客户端需要从当前连接的服务器切换到该故障恢复或扩容新增服务器。
步骤S408,监控终端根据客户端集群中心反馈的更新的路由表,在服务器集群中,确定能够与目标客户端相连接的目标服务器。
在一些实施例中,监控终端根据更新的路由表中存储客户端与服务器之间应有的连接的关系,在服务器集群中,确定该更新的路由表中指示的能够与目标客户端相连接的目标服务器。在一些可能的实现方式中,如果目标工作状态为故障恢复状态或扩容状态,那么目标服务器即为故障恢复或扩容新增服务器;如果目标工作状态为故障状态,那么目标服务器即为通过哈希一致性确定与目标客户端的哈希值相匹配的目标服务器。
步骤S409,监控终端将目标客户端当前连接的服务器切换为目标服务器。
在一些实施例中,服务器的切换过程包括以下两种情况:
情况一:如果目标工作状态为故障状态,将目标客户端当前连接的服务器切换为目标服务器,可以是目标客户端当前连接的服务器,切换为目标工作状态所属的服务器。即,将目标客户端在服务器集群中当前连接的服务器,切换为故障恢复或扩容新增服务器。
情况二:如果目标工作状态为故障恢复状态或扩容状态,将目标客户端当前连接的服务器切换为目标服务器,可以是将目标客户端当前连接的服务器,切换为目标工作状态所属的服务器。即,将目标客户端从当前连接的服务器集群中的服务器切换为该故障恢复或扩容新增服务器。
步骤S410,客户端集群中心向目标服务器,发送数据请求,以使目标服务器获取用于响应数据请求的数据。
这里,步骤S410可以是客户端集群中心实现的,可以是目标客户端向目标服务器发送数据请求不经过客户端集群中心。当目标客户端需要获取数据时,以游戏为例进行说明,大区服务器即为目标客户端,如果大区服务器需要获取公会数据,那么向该大区服务器连接的公会服务器(即目标服务器)发送数据请求,以使公会服务器对该数据请求进行反馈。
步骤S411,目标服务器在自身的标识信息包含于监控终端存储的标识信息库的情况下,确定自身的标识信息与标识信息库相匹配。
在一些实施例中,服务器提供数据服务之前,会判断自身的标识信息是否包含于监控终端存储的标识信息库中,如果自身的标识信息未包含于监控终端存储的标识信息库中,清空当前的缓存数据,为向客户端提供数据服务做准备;而且如果自身的标识信息未包含于监控终端存储的标识信息库中,说明该服务器为故障恢复或者新增服务器。这时,服务器向监控终端反馈的当前工作状态中,携带表征该服务器为新增或故障恢复的职提示信息,以使监控终端能够及时的更新服务器目录。
步骤S412,目标服务器获取目标客户端反馈的数据请求。
这里,步骤S412与步骤S411之间在执行顺序上可以不分先后。
步骤S413,响应于数据请求,在本地缓存中不包括服务数据的情况下,从数据库中加载服务数据。
这里,目标服务器接收到目标客户端反馈的数据请求,对该数据请求进行响应,首先,看本地缓存中是否包括能够响应该数据请求的服务数据,如果本地缓存中没有,从数据库中加载服务数据。对于服务器集群中的服务器,会定时将客户端的数据回写数据库,并且进行关键数据的更新,也可以支持实时的将客户端是数据回写数据库。当一个服务器启动时,也需要从数据库中加载数据到本机缓存,然后再向客户端提供服务。
步骤S414,目标服务器将服务数据,反馈至目标客户端。
在一些其他的实现方式中,如果服务器自身的标识信息未包含于监控终端存储的标识信息库中,即服务器为故障恢复或者新增服务器的情况下,该服务器为客户端提供服务数据之前,还包括以下过程:
首先,目标服务器在自身的标识信息包未含于标识信息库的情况下,清空当前的缓存数据。
这里,目标服务器自身的标识信息包未含于标识信息库,说明该目标服务器为新增的服务器;比如,故障恢复服务器或者扩容服务器,这时,该目标服务器将当前缓存的数据进行清空,为接下来的向目标客户端提供服务数据做准备。
然后,如果目标客户端当前与在其他服务器相连接,目标服务器向其他服务器发送提示信息,以提示其他服务器断开与目标客户端的连接。
这里,服务器首先判断即将与自身连接的目标客户端当前是否登陆在其他服务器,即目标客户端当前是否与在其他服务器相连接,如果目标客户端当前与在其他服务器相连接,那么该服务器向其他服务器发送提示信息,以使该其他服务器对当前的数据进行存档,并且断开与目标客户端的连接。
然后,响应于接收到的所述其他服务器反馈的断开成功信息,目标服务器从数据库中加载所述服务数据。
这里,该服务器接收到其他服务器反馈的已与目标客户端断开连接的信息时,从数据库中加载用于响应数据请求的服务器数据,并且将该服务数据反馈至目标客户端。如此,在服务器故障恢复或扩容的情况下,对扩容流程进行优化,可以自动化的触发其他服务器上的缓存存档与清理,保证了数据的一致性。
在其他实现方式中,如果服务器自身的标识信息包含于监控终端存储的标识信息库中,即服务器为服务器集群中一直处于正常运行状态的服务器,该服务器为客户端提供服务数据时,首先判断本地缓存中是否包括服务数据,如果本地缓存中没有,再从数据库中加载响应该数据请求的服务数据。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用,以在全球同服游戏中,针对有状态服务器冗灾或扩缩容为例,进行说明。
参见图5,图5是本申请实施例提供的有状态服务器集群的网络架构图,结合图5所示进行以下说明:
大区服务器集群501,用于作为访问者,保存公会服务的路由配置文件。
这里,大区服务器集群501与公会服务器集群502进行通信。大区服务器集群501,包括:大区服务器511、大区服务器512、大区服务器513和大区服务器514。
公会服务器集群502,用于作为一组“有状态服务器”,通过从公会数据库503中加载数据为大区服务器集群501提供数据服务。
这里,公会服务器集群502,包括:公会服务器521、公会服务器522、公会服务器523和公会服务器524。公会服务器启动后,即可以提供服务,当有请求到达后,判断本地是否有对应请求的缓存,如果无缓存,则从公会数据库中进行加载,保存在本机缓存,再进行逻辑处理,并正常响应返回给大区服务器。
公会数据库503,用于为大区服务器提供数据。
这里,公会服务器会定时将缓存中数据保存到公会数据库中,对于一些非常关键的操作,提供实时存档的机制,这样,如果公会服务器出现故障时,关键操作不会丢失,丢失的是未保存的非关键数据。
在图5所示的架构中采用路由配置文件方式进行管理,当出现服务器故障时,需要人力操作更新配置,并同步到大区服务器上。当然这里也可以在大区服务器和公会服务器上加入心跳检测机制,当故障后自动踢除,但这个方案会引入新的风险,即如果大区服务器检测结果不一致时,会导致各大区服务器上路由配置文件不一到,从而出现同一个公会的请求,会落到不同公会服务器的情况,出现竞争写的问题。而且当公会服务器集群扩容时,新加入的公会服务器会承担一部分请求,这时一部分老的公会服务器上可能有一些缓存数据暂时未存档,因此新加入的公会服务器就不能很理想的获取到正确的数据。
在本申请实施例中,从自动化冗灾与自动化扩缩容两个方面进行优化,同时在扩容时简化设计,达到自动化数据存档并保持数据一致性,如图6所示,图6是本申请实施例提供的服务器切换系统的又一架构示意图,结合图6进行以下说明:
大区服务器集群601,用于作为访问者,接收Zookeeper集群604反馈的公会服务器集群602的状态。
这里,大区服务器集群601与公会服务器集群602进行通信。大区服务器集群601,包括:大区服务器611、大区服务器612、大区服务器613和大区服务器614。大区服务器在该架构中代表“有状态服务器的请求方”,通过传输控制协议(Transmission ControlProtocol,TCP)或者消息队列(Message Queue)进行访问,路由规则上可以选用一致性哈希的方式,也可以简化为按访问关键值取模的方式。
公会服务器集群602,用于作为一组“有状态服务器”,通过从公会数据库603中加载数据为大区服务器集群601提供数据服务。
这里,公会服务器集群602,包括:公会服务器621(在图6中用ZK1表示)、公会服务器622(在图6中用ZK2表示)、公会服务器623(在图6中用ZK3表示)和公会服务器624。公会服务器在该架构中代表“有状态服务器”,最终的数据落地在公会数据库603,但公会服务器中有缓存数据,并且会定时回写数据库,并且关键数据更新,也支持立即回写数据库。当一个公会服务器启动时,也需要从公会数据库中加载数据到本机缓存,再提供服务。
公会数据库603,用于公会数据的落地存储,当一个公会服务器启动时,也需要从公会数据库中加载数据到本机缓存,再提供服务。
Zookeeper集群604,用于在该架构中承担故障监测、服务发布与节点信息存储的功能,在Zookeeper集群中保存了一个公会(Guild)的目录,该目录下面保存着所有正常存活的公会服务器,比如,ZK1至ZK3。比如,没有服务器发生故障时,Zookeeper集群保存公会服务器状态可以表示为:/Guild/ -GuildSvr1;-GuildSvr2;-GuildSvr3;-GuildSvr4;其中,GuildSvr1表示公会服务器621,GuildSvr2表示公会服务器622,GuildSvr3表示公会服务器623,GuildSvr4表示公会服务器624。当其中一个公会服务器发生故障时,比如,公会服务器624发生故障,那么Zookeeper集群保存公会服务器状态可以表示为(即在该目录中删除了-GuildSvr4):/Guild/ -GuildSvr1;-GuildSvr2;-GuildSvr3。
图7是本申请实施例公会服务器出现故障时的自动踢除流程示意图,在图7中设定公会服务器724为故障(或下线)服务器,结合图7所示的步骤进行以下说明:
第一步,公会服务器724发生故障。
这里,公会服务器724发生故障之后,可以向Zookeeper集群704反馈故障信息,也可以是不反馈故障信息。
第二步,Zookeeper集群704在预设时长内收不到公会服务器724上报的消息,更新公会服务器集群的节点信息,并进入第三步。
这里,公会服务器724发生故障,那么Zookeeper集群保存公会服务器状态为:/Guild/ -GuildSvr1;-GuildSvr2;-GuildSvr3。
第三步,Zookeeper集群704监测到故障信息,更新公会服务器集群的状态,并将更新的状态的通知发送给大区服务器集群701。
第四步,大区服务器集群701接收到通知后,刷新本地路由表。
这里,本地路由表中用于存储大区服务器711至714与公会服务器721至723的连接关系,当接收到故障通知之后,大区服务器集群701重新建立大区服务器与公会服务器的连接关系,即刷新路由表。
第五步,将原有公会服务器724服务的大区服务器迁移到公会服务器721至公会服务器723中的任一个。
这里,可以是按照哈希一致性算法对原有公会服务器724服务的大区服务器的网络地址进行处理,确定出这些大区服务器在哈希圆环上的位置,并按照顺时针的方式,将第一个大于等于该哈希圆环位置的服务关键值,从而得到该关键值需要分配的公会服务器。
第六步,公会服务器721至公会服务器723接收到大区服务器发送的数据请求时,从公会数据库703中加载数据。
图8是本申请实施例公会服务器故障恢复时流程示意图,在图8中设定公会服务器824为故障恢复(或新扩容)服务器,结合图8所示的步骤进行以下说明:
第一步,公会服务器824故障恢复。
这里,公会服务器824故障恢复之后,向Zookeeper集群804反馈故障恢复信息。
第二步,公会服务器824检测到自身为新加入节点,则清空缓存数据,并向大区服务器提供服务。
这里,公会服务器824可以通过判断Zookeeper集群804的公会目录中是否包括自身的标识信息,来确定自身是否为新加入节点。比如,公会服务器824检测到Zookeeper集群804的公会目录中不包括自身的标识信息,则确定自身为新加入节点。
第三步,Zookeeper集群804收到公会服务器824上报的消息,更新公会服务器集群的节点信息,并进入第四步。
第四步,Zookeeper集群804监测到故障恢复信息,更新公会服务器集群的状态,并将更新的状态的通知发送给大区服务器集群801。
第五步,大区服务器集群801接收到通知后,刷新本地路由表,并且按照刷新的路由表,向公会服务器824分配满足哈希一致性的大区服务器。
这里,本地路由表中用于存储大区服务器811至814与公会服务器821至824的连接关系,当接收到故障通知之后,大区服务器集群801重新建立大区服务器与公会服务器的连接关系,即刷新路由表。
第六步,公会服务器821至公会服务器823接收到大区服务器发送的数据请求时,从公会数据库803中加载数据。
第七步,公会服务器824接收到新分配的大区服务器的数据请求后,从公会数据库加载数据,并判断该大区服务器是否登陆在其他公会服务器中。
这里,公会服务器824该大区服务器请求的数据是否已经在其他公会服务器中进行缓存。
第八步,如果判断得到该大区服务器登陆在其他公会服务器,公会服务器824通知其他公会服务器对当前数据进行存档,并且清除当前缓存的关于该大区服务器的数据,其他公会服务器清除成功后返回已完成信息到公会服务器824。
第九步,公会服务器824在公会数据库803中加载数据,并采用加载的数据为与之连接的大区服务器提供服务。
在本申请实施例中,引入开源组件,实现故障踢除与服务发现,同时解耦路由配置与大区服务器,在大区上不再管理配置文件,而托管到Zookeeper中,从而大大减化了运维操作成本,同时也解决了客户端与服务器间心跳检测机制在网络出现局部抖动时,带来客户端检测不一致的问题。在公会服务器宕机恢复的过程或扩容的过程中,可以自动化的触发其他公会服务器上的缓存存档与清理,保证了数据的一致性,简化了服务器的设计。
下面继续说明本申请实施例提供的服务器切换的监控终端455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的服务器切换的监控终端455中的软件模块可以包括:第一获取模块4551,用于获取服务器集群中至少一个服务器的工作状态,得到工作状态集合;第一反馈模块4552,用于将所述工作状态集合中满足预设条件的目标工作状态,反馈至客户端集群中心,以使所述客户端集群中心更新路由表;其中,所述路由表用于存储客户端与服务器之间的连接关系;第一确定模块4553,用于将与具有所述目标工作状态的服务器存在关联关系的客户端,确定为目标客户端;第二确定模块4554,用于根据所述客户端集群中心反馈的更新的路由表,在所述服务器集群中,确定能够与所述目标客户端进行通信的目标服务器;第一切换模块4555,用于将所述目标客户端当前连接的服务器切换为所述目标服务器。
在一些实施例中,所述第一获取模块4551,还用于:在所述工作状态集合中,确定表征所述服务器集群中处于可连接状态的服务器数量发生变化的工作状态;将所述服务器数量发生变化的工作状态,确定为所述目标工作状态。
在一些实施例中,所述第一确定模块4553,还用于:如果所述目标工作状态表征所述服务器数量减少,确定所述目标工作状态为所述故障状态;将与具有所述故障状态的服务器相连接的客户端,确定为所述目标客户端;将所述目标客户端当前连接的具有所述故障状态的故障服务器,切换为所述目标服务器。
在一些实施例中,所述第一确定模块4553,还用于:如果所述目标工作状态表征所述服务器数量增加,确定所述目标工作状态为所述扩容状态或故障恢复状态;将请求连接具有所述扩容状态或故障恢复状态的服务器的客户端,确定为所述目标客户端;所述将所述目标客户端当前连接的服务器切换为所述目标服务器,包括:将所述目标客户端当前连接的服务器,切换为具有所述扩容状态或故障恢复状态的服务器。
在一些实施例中,存储在存储器450的服务器切换的客户端456中的软件模块可以包括:第三确定模块4561,用于确定用于存储客户端与服务器集群中的服务器之间的连接关系的路由表;第一更新模块4562,用于根据监控终端上报的服务器的目标工作状态,对所述路由表进行更新,得到更新的路由表;其中,所述目标工作状态为所述服务器集群的工作状态集合中满足预设条件的工作状态;第二反馈模块4563,用于将所述更新的路由表反馈至所述监控终端,以使所述监控终端根据所述更新的路由表对目标客户端当前连接的服务器进行切换;其中,所述目标客户端与具有所述目标工作状态的服务器存在关联关系。
在一些实施例中,所述第一更新模块4562,还用于:如果所述目标工作状态表征所述服务器集群中处于可连接状态的服务器数量减少,确定所述服务器集群中处于可连接状态的候选服务器集合;采用哈希函数确定每一候选服务器的标识信息的哈希值,得到第一哈希值集合,所述第一哈希值集合中包括每一候选服务器对应的第一哈希值;采用所述哈希函数确定所述目标客户端的标识信息的哈希值,得到第二哈希值;在所述第一哈希值集合中,确定与所述第二哈希值相匹配的第一目标哈希值;在所述候选服务器集合中,确定所述第一目标哈希值对应的目标服务器;建立所述目标客户端与所述目标服务器之间的连接关系,将所述连接关系存储在所述路由表中,得到所述更新的路由表。
在一些实施例中,所述第一更新模块4562,还用于:在所述目标工作状态表征所述服务器数量减少的情况下,在建立所述目标客户端与所述目标服务器之间的连接关系之前,在所述路由表中,删除所述目标客户端与具有所述目标工作状态的服务器之间的连接关系。
在一些实施例中,所述第一更新模块4562,还用于:如果所述目标工作状态表征所述服务器数量增加,获取客户端集群中每一客户端的标识信息;采用所述哈希函数,确定每一所述客户端的标识信息的哈希值,得到第三哈希值集合,所述第三哈希值集合中包括每一客户端对应的第三哈希值;采用所述哈希函数,确定具有所述目标工作状态的服务器的第四哈希值;在所述第三哈希值集合中,确定与所述第四哈希值相匹配的第二目标哈希值;在所述客户端集群中,确定所述第二目标哈希值对应的所述目标客户端;建立所述目标客户端与所述具有所述目标工作状态的服务器之间的连接关系,将所述连接关系存储在所述路由表中,得到所述更新的路由表。
在一些实施例中,所述第一更新模块4562,还用于:在所述路由表中,删除所述目标客户端与当前连接的服务器之间的连接关系;建立所述目标客户端和具有所述目标工作状态的服务器之间的连接关系,将所述连接关系存储在所述路由表中,得到所述更新的路由表。
在一些实施例中,存储在存储器450的服务器切换的服务器457中的软件模块可以包括:第一上报模块4571,用于向监控终端上报当前工作状态,以使所述监控终端检测到满足预设条件的目标工作状态;第四确定模块4572,用于在自身的标识信息包含于所述监控终端存储的标识信息库的情况下,确定所述自身的标识信息与所述标识信息库相匹配;第二获取模块4573,用于获取目标客户端反馈的数据请求;第一响应模块4574,用于响应于所述数据请求,在所述本地缓存中不包括所述服务数据的情况下,从数据库中加载所述服务数据;第三反馈模块4575,用于将所述服务数据,反馈至所述目标客户端。
在一些实施例中,第一上报模块4571,还用于:在所述自身的标识信息包未含于所述标识信息库的情况下,清空当前的缓存数据;在所述目标客户端当前与在其他服务器相连接的情况下,向所述其他服务器发送提示信息,以提示所述其他服务器断开与所述目标客户端的连接;响应于接收到的所述其他服务器反馈的断开成功信息,从所述数据库中加载所述服务数据。
本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法。在一些实施例中,存储介质可以是闪存、磁表面存储器、光盘、或光盘存储器等存储器;也可以是包括上述存储器之一或任意组合的各种设备。在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(Hyper Text Markup Language,HTML)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个车载计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备执行。综上所述,本申请实施例,首先,监控终端监控到的服务器集群中多个工作状态中满足预设条件的目标工作状态时,将该目标工作状态反馈给客户端集群中心;客户端集群中心自动更新存储客户端与服务器之间的连接关系的路由表;这样,采用监控终端监控服务器集群的工作状态,能够同时解耦路由配置与客户端,从而大大减化了运维操作成本;最后,依据更新的路由表,确定出目标客户端应该进行连接的目标服务器,并且将目标客户端当前连接的服务器切换为该目标服务器;这样,自动化的触发将目标客户端当前连接的服务器切换为目标服务器,简化了设计,提高了数据的一致性。以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (10)
1.一种服务器切换方法,其特征在于,所述方法包括:
获取服务器集群中至少一个服务器的工作状态,得到工作状态集合;
将所述工作状态集合中满足预设条件的目标工作状态,反馈至客户端集群中心,以使所述客户端集群中心更新路由表;其中,所述路由表用于存储客户端与服务器之间的连接关系;
将与具有所述目标工作状态的服务器存在关联关系的客户端,确定为目标客户端;
根据所述客户端集群中心反馈的更新的路由表,在所述服务器集群中,确定能够与所述目标客户端进行通信的目标服务器;
将所述目标客户端当前连接的服务器切换为所述目标服务器。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述工作状态集合中,确定表征所述服务器集群中处于可连接状态的服务器数量发生变化的工作状态;
将所述服务器数量发生变化的工作状态,确定为所述目标工作状态。
3.根据权利要求2所述的方法,其特征在于,所述将与具有所述目标工作状态的服务器存在关联关系的客户端,确定为目标客户端,包括:
如果所述目标工作状态表征所述服务器数量减少,确定所述目标工作状态为故障状态;
将与具有所述故障状态的服务器相连接的客户端,确定为所述目标客户端;
所述将所述目标客户端当前连接的服务器切换为所述目标服务器,包括:将所述目标客户端当前连接的具有所述故障状态的故障服务器,切换为所述目标服务器。
4.根据权利要求2所述的方法,其特征在于,所述将与具有所述目标工作状态的服务器存在关联关系的客户端,确定为目标客户端,包括:
如果所述目标工作状态表征所述服务器数量增加,确定所述目标工作状态为扩容状态或故障恢复状态;
将请求连接具有所述扩容状态或故障恢复状态的服务器的客户端,确定为所述目标客户端;
所述将所述目标客户端当前连接的服务器切换为所述目标服务器,包括:将所述目标客户端当前连接的服务器,切换为具有所述扩容状态或故障恢复状态的服务器。
5.一种服务器切换方法,其特征在于,所述方法包括:
确定用于存储客户端与服务器集群中的服务器之间的连接关系的路由表;
根据监控终端上报的服务器的目标工作状态,对所述路由表进行更新,得到更新的路由表;其中,所述目标工作状态为所述服务器集群的工作状态集合中满足预设条件的工作状态;
将所述更新的路由表反馈至所述监控终端,以使所述监控终端根据所述更新的路由表对目标客户端当前连接的服务器进行切换;其中,所述目标客户端与具有所述目标工作状态的服务器存在关联关系。
6.一种服务器切换方法,其特征在于,所述方法包括:
向监控终端上报当前工作状态,以使所述监控终端检测到满足预设条件的目标工作状态;
在自身的标识信息包含于所述监控终端存储的标识信息库的情况下,确定所述自身的标识信息与所述标识信息库相匹配;
获取目标客户端反馈的数据请求;
响应于所述数据请求,在本地缓存中不包括服务数据的情况下,从数据库中加载所述服务数据;
将所述服务数据,反馈至所述目标客户端。
7.一种监控终端,其特征在于,包括:
第一获取模块,用于获取服务器集群中至少一个服务器的工作状态,得到工作状态集合;
第一反馈模块,用于将所述工作状态集合中满足预设条件的目标工作状态,反馈至客户端集群中心,以使所述客户端集群中心更新路由表;其中,所述路由表用于存储客户端与服务器之间的连接关系;
第一确定模块,用于将与具有所述目标工作状态的服务器存在关联关系的客户端,确定为目标客户端;
第二确定模块,用于根据所述客户端集群中心反馈的更新的路由表,在所述服务器集群中,确定能够与所述目标客户端进行通信的目标服务器;
第一切换模块,用于将所述目标客户端当前连接的服务器切换为所述目标服务器。
8.一种客户端,其特征在于,包括:
第三确定模块,用于确定用于存储客户端与服务器集群中的服务器之间的连接关系的路由表;
第一更新模块,用于根据接收到的监控终端上报的服务器的目标工作状态,对所述路由表进行更新,得到更新的路由表;其中,所述目标工作状态为所述服务器集群的工作状态集合中满足预设条件的工作状态;
第二反馈模块,用于将所述更新的路由表反馈至所述监控终端,以使所述监控终端根据所述更新的路由表对目标客户端当前连接的服务器进行切换;其中,所述目标客户端与具有所述目标工作状态的服务器存在关联关系。
9.一种服务器,其特征在于,包括:
第一上报模块,用于向监控终端上报当前工作状态,以使所述监控终端检测到满足预设条件的目标工作状态;
第四确定模块,用于在自身的标识信息包含于所述监控终端存储的标识信息库的情况下,确定所述自身的标识信息与所述标识信息库相匹配;
第二获取模块,用于获取目标客户端反馈的数据请求;
第一响应模块,用于响应于所述数据请求,在本地缓存中不包括服务数据的情况下,从数据库中加载所述服务数据;
第三反馈模块,用于将所述服务数据,反馈至所述目标客户端。
10.一种存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至4任一项所述的方法,或者,存储有可执行指令,用于引起处理器执行时,实现权利要求5所述的方法,或者,存储有可执行指令,用于引起处理器执行时,实现权利要求6所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010721078.8A CN111600794B (zh) | 2020-07-24 | 2020-07-24 | 服务器切换方法、终端、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010721078.8A CN111600794B (zh) | 2020-07-24 | 2020-07-24 | 服务器切换方法、终端、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111600794A true CN111600794A (zh) | 2020-08-28 |
CN111600794B CN111600794B (zh) | 2020-12-18 |
Family
ID=72184568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010721078.8A Active CN111600794B (zh) | 2020-07-24 | 2020-07-24 | 服务器切换方法、终端、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111600794B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282391A (zh) * | 2021-05-21 | 2021-08-20 | 北京京东振世信息技术有限公司 | 集群切换方法、集群切换装置、电子设备及可读存储介质 |
CN113382061A (zh) * | 2021-06-08 | 2021-09-10 | 中国工商银行股份有限公司 | 基于云环境的服务处理方法、装置及系统 |
CN115086333A (zh) * | 2022-04-25 | 2022-09-20 | 北京达佳互联信息技术有限公司 | 服务请求分配方法、装置及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244685A (zh) * | 2011-08-11 | 2011-11-16 | 中国科学院软件研究所 | 一种支持负载均衡的分布式缓存动态伸缩方法及系统 |
US20140204940A1 (en) * | 2013-01-23 | 2014-07-24 | Nexenta Systems, Inc. | Scalable transport method for multicast replication |
CN104050249A (zh) * | 2011-12-31 | 2014-09-17 | 北京奇虎科技有限公司 | 分布式查询引擎系统和方法及元数据服务器 |
CN104348842A (zh) * | 2013-07-23 | 2015-02-11 | 腾讯科技(深圳)有限公司 | 分布式存储系统路由方法、路由管理服务器及系统 |
CN104954321A (zh) * | 2014-03-25 | 2015-09-30 | 北京奇虎科技有限公司 | 一种连接切换方法、装置及系统 |
CN104954444A (zh) * | 2015-05-27 | 2015-09-30 | 华为技术有限公司 | 一种迁移缓存数据的方法及设备 |
CN106060088A (zh) * | 2016-07-26 | 2016-10-26 | 杭州华三通信技术有限公司 | 一种服务管理方法及装置 |
CN106254240A (zh) * | 2016-09-18 | 2016-12-21 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和路由层设备以及系统 |
US20170351702A1 (en) * | 2016-06-03 | 2017-12-07 | Electronic Arts Inc. | Live migration of distributed databases |
CN110471629A (zh) * | 2019-08-22 | 2019-11-19 | 中国工商银行股份有限公司 | 一种动态扩容的方法、装置、存储介质、设备及系统 |
CN110740155A (zh) * | 2018-07-18 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 分布式系统中的请求处理方法及装置 |
CN111225059A (zh) * | 2020-01-10 | 2020-06-02 | 中移(杭州)信息技术有限公司 | 网络请求资源调度方法、装置、电子设备及存储介质 |
-
2020
- 2020-07-24 CN CN202010721078.8A patent/CN111600794B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244685A (zh) * | 2011-08-11 | 2011-11-16 | 中国科学院软件研究所 | 一种支持负载均衡的分布式缓存动态伸缩方法及系统 |
CN104050249A (zh) * | 2011-12-31 | 2014-09-17 | 北京奇虎科技有限公司 | 分布式查询引擎系统和方法及元数据服务器 |
US20140204940A1 (en) * | 2013-01-23 | 2014-07-24 | Nexenta Systems, Inc. | Scalable transport method for multicast replication |
CN104348842A (zh) * | 2013-07-23 | 2015-02-11 | 腾讯科技(深圳)有限公司 | 分布式存储系统路由方法、路由管理服务器及系统 |
CN104954321A (zh) * | 2014-03-25 | 2015-09-30 | 北京奇虎科技有限公司 | 一种连接切换方法、装置及系统 |
CN104954444A (zh) * | 2015-05-27 | 2015-09-30 | 华为技术有限公司 | 一种迁移缓存数据的方法及设备 |
US20170351702A1 (en) * | 2016-06-03 | 2017-12-07 | Electronic Arts Inc. | Live migration of distributed databases |
CN106060088A (zh) * | 2016-07-26 | 2016-10-26 | 杭州华三通信技术有限公司 | 一种服务管理方法及装置 |
CN106254240A (zh) * | 2016-09-18 | 2016-12-21 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和路由层设备以及系统 |
CN110740155A (zh) * | 2018-07-18 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 分布式系统中的请求处理方法及装置 |
CN110471629A (zh) * | 2019-08-22 | 2019-11-19 | 中国工商银行股份有限公司 | 一种动态扩容的方法、装置、存储介质、设备及系统 |
CN111225059A (zh) * | 2020-01-10 | 2020-06-02 | 中移(杭州)信息技术有限公司 | 网络请求资源调度方法、装置、电子设备及存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282391A (zh) * | 2021-05-21 | 2021-08-20 | 北京京东振世信息技术有限公司 | 集群切换方法、集群切换装置、电子设备及可读存储介质 |
CN113282391B (zh) * | 2021-05-21 | 2023-09-26 | 北京京东振世信息技术有限公司 | 集群切换方法、集群切换装置、电子设备及可读存储介质 |
CN113382061A (zh) * | 2021-06-08 | 2021-09-10 | 中国工商银行股份有限公司 | 基于云环境的服务处理方法、装置及系统 |
CN113382061B (zh) * | 2021-06-08 | 2023-02-03 | 中国工商银行股份有限公司 | 基于云环境的服务处理方法、装置及系统 |
CN115086333A (zh) * | 2022-04-25 | 2022-09-20 | 北京达佳互联信息技术有限公司 | 服务请求分配方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111600794B (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111600794B (zh) | 服务器切换方法、终端、服务器及存储介质 | |
US11445019B2 (en) | Methods, systems, and media for providing distributed database access during a network split | |
CN112099918B (zh) | 容器化环境中的集群的实时迁移 | |
US9262323B1 (en) | Replication in distributed caching cluster | |
EP2923272B1 (en) | Distributed caching cluster management | |
CN109842651B (zh) | 一种业务不间断的负载均衡方法和系统 | |
US10462250B2 (en) | Distributed caching cluster client configuration | |
US20060123121A1 (en) | System and method for service session management | |
CN111200532A (zh) | 数据库集群节点主从切换的方法、装置、设备和介质 | |
US9529772B1 (en) | Distributed caching cluster configuration | |
US20230385244A1 (en) | Facilitating immediate performance of volume resynchronization with the use of passive cache entries | |
WO2017107984A1 (zh) | 一种数据恢复方法及装置 | |
CN108881379B (zh) | 一种服务器集群间数据同步的方法和装置 | |
CN111147312B (zh) | 资源配置的管理方法及装置、资源配置缓存的管理方法及装置、配置管理系统 | |
CN112883119A (zh) | 数据同步方法、装置、计算机设备及计算机可读存储介质 | |
CN112492022A (zh) | 提高数据库可用性的集群、方法、系统及存储介质 | |
CN113259476B (zh) | 消息推送方法及系统 | |
CN107818027B (zh) | 名字节点主备切换的方法、装置和分布式系统 | |
CN117061535A (zh) | 多活构架数据同步方法、装置、计算机设备和存储介质 | |
KR102367262B1 (ko) | 미들웨어를 이용한 모니터링 방법, 장치 및 시스템 | |
CN112685486B (zh) | 数据库集群的数据管理方法、装置、电子设备及存储介质 | |
CN111106966B (zh) | 一种信息处理方法及装置、设备、存储介质 | |
JP5956364B2 (ja) | クラスタシステム | |
JPH07114495A (ja) | 多重化ファイル管理方式 | |
JP6093320B2 (ja) | 分散処理システム |
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 |