CN109618000B - 负载均衡服务的主从切换方法、装置、系统及服务器 - Google Patents
负载均衡服务的主从切换方法、装置、系统及服务器 Download PDFInfo
- Publication number
- CN109618000B CN109618000B CN201910019095.4A CN201910019095A CN109618000B CN 109618000 B CN109618000 B CN 109618000B CN 201910019095 A CN201910019095 A CN 201910019095A CN 109618000 B CN109618000 B CN 109618000B
- Authority
- CN
- China
- Prior art keywords
- information
- master
- server
- load balancing
- socket
- 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
- 238000000034 method Methods 0.000 title claims abstract description 171
- 230000008569 process Effects 0.000 claims abstract description 106
- 238000012986 modification Methods 0.000 claims description 35
- 230000004048 modification Effects 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 29
- 230000005540 biological transmission Effects 0.000 claims description 15
- 230000002159 abnormal effect Effects 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 15
- 238000012423 maintenance Methods 0.000 description 15
- 238000013515 script Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000035876 healing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及负载均衡服务的主从切换方法、装置、系统及服务器,属于网络技术领域。所述方法包括:当接收到主从切换指令时,获取第一服务器的第一插口信息以及第二服务器的第二插口信息;所述主从切换指令为从第一服务器切换至第二服务器的指令;根据所述第一插口信息确定对应的负载均衡服务;获取所述负载均衡服务的配置信息;根据所述第一插口信息和所述第二插口信息修改所述配置信息;其中,修改后的配置信息用于触发所述负载均衡服务将来自客户端的信息转发至所述第二服务器。上述技术方案,解决了负载均衡服务的主从切换过程耗时长的问题。在哨兵集群对Redis集群做自动主从切换后,能快速地实现负载均衡服务的主从切换。
Description
技术领域
本发明涉及网络技术领域,特别是涉及负载均衡服务的主从切换方法、装置、系统、服务器及存储介质。
背景技术
Redis主从集群模式采用双机主从架构,能够在主服务器出现故障时自动进行主从切换,将从服务器提升为服务器以继续提供服务。把某个从服务器提升为主服务器的过程相对复杂且需要人工参与。为解决这个问题,Redis社区推出了Redis主从集群加哨兵集群的高可用方案。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:当发生故障时,哨兵集群会对Redis集群做自动主从切换。而负载均衡服务的配置未发生改变,仍旧会将客户端的请求转发到旧的主服务器上,导致无法为客户端提供相应的服务。这时就需要运维人员登录服务器、查看Redis服务的主从状态、手动修改转发规则等操作来对负载均衡服务的主从切换进行配置。这就使得负载均衡服务的主从切换过程耗时长。
发明内容
基于此,本发明实施例提供了负载均衡服务的主从切换方法、装置、系统、服务器及存储介质,能在Redis主从集群发生主从切换时快速实现负载均衡服务的主从切换。
本发明实施例的内容如下:
一种负载均衡服务的主从切换方法,包括以下步骤:当接收到主从切换指令时,获取第一服务器的第一插口信息以及第二服务器的第二插口信息;所述主从切换指令为从第一服务器切换至第二服务器的指令;根据所述第一插口信息确定对应的负载均衡服务;获取所述负载均衡服务的配置信息;根据所述第一插口信息和所述第二插口信息修改所述配置信息;其中,修改后的配置信息用于触发所述负载均衡服务将来自客户端的信息转发至所述第二服务器。
在其中一个实施例中,所述第一插口信息包括第一端口信息,所述第二插口信息包括第二端口信息;所述根据所述第一插口信息和所述第二插口信息修改所述配置信息的步骤,包括:根据所述第一插口信息和所述第二插口信息将所述配置信息中的第一端口信息修改为第二端口信息。
在其中一个实施例中,所述第一插口信息包括第一IP地址,所述第二插口信息包括第二IP地址;所述根据所述第一插口信息和所述第二插口信息修改所述配置信息的步骤,包括:分别根据所述第一IP地址和所述第二IP地址确定对应的第一实例ID和第二实例ID;将所述配置信息中的第一实例ID替换为所述第二实例ID;所述第二实例ID使得所述负载均衡服务将来自客户端的信息转发至所述第二端口信息对应的端口上。
在其中一个实施例中,所述将所述配置信息中的第一实例ID替换为第二实例ID的步骤之后,还包括:修改所述配置信息中所述第二服务器的权重。
在其中一个实施例中,所述获取所述负载均衡服务的配置信息的步骤,包括:确定所述负载均衡服务的虚拟组信息;根据所述虚拟组信息确定所述负载均衡服务的配置信息。
在其中一个实施例中,当所述负载均衡服务的主从切换方法的任意步骤出现执行故障时,向特定终端发送故障告警信息。
在其中一个实施例中,所述根据所述第一插口信息和所述第二插口信息修改所述配置信息的步骤之后,还包括:当完成负载均衡服务的主从切换时,向所述特定终端发送主从切换完成信息。
在其中一个实施例中,所述主从切换指令由哨兵进程发送;所述主从切换指令中包含有对应哨兵进程的进程角色标识;所述获取第一服务器的第一插口信息以及第二服务器的第二插口信息的步骤,包括:根据主从切换指令中的进程角色标识确定对应哨兵进程的角色是否为主哨兵;当是时,获取所述第一插口信息以及所述第二插口信息。
在其中一个实施例中,所述第一服务器为主服务器;所述主从切换指令为多个哨兵进程均判定第一服务器的状态为异常,从从服务器中选举出第二服务器作为新的主服务器,并发起主从切换时发送的。
相应的,本发明实施例提供一种负载均衡服务的主从切换装置,包括:插口信息获取模块,用于当接收到主从切换指令时,获取第一服务器的第一插口信息以及第二服务器的第二插口信息;所述主从切换指令为从第一服务器切换至第二服务器的指令;配置信息确定模块,用于根据所述第一插口信息确定对应的负载均衡服务;获取所述负载均衡服务的配置信息;以及,信息修改模块,用于根据所述第一插口信息和所述第二插口信息修改所述配置信息;其中,修改后的配置信息用于触发所述负载均衡服务将来自客户端的信息转发至所述第二服务器。
在其中一个实施例中,所述第一插口信息包括第一端口信息,所述第二插口信息包括第二端口信息;所述信息修改模块,还用于根据所述第一插口信息和所述第二插口信息将所述配置信息中的第一端口信息修改为第二端口信息。
在其中一个实施例中,所述第一插口信息包括第一IP地址,所述第二插口信息包括第二IP地址;所述信息修改模块,包括:主机实例确定子模块,用于分别根据所述第一IP地址和所述第二IP地址确定对应的第一实例ID和第二实例ID;主机实例替换子模块,用于将所述配置信息中的第一实例ID替换为所述第二实例ID;所述第二实例ID使得所述负载均衡服务将来自客户端的信息转发至所述第二端口信息对应的端口上。
本发明实施例还提供一种负载均衡服务的主从切换系统,包括:信息获取单元、信息修改单元和信息传递接口,所述信息获取单元、所述信息修改单元以及信息传递接口通信连接;所述信息获取单元,用于当接收到主从切换指令时,获取第一服务器的第一插口信息以及第二服务器的第二插口信息;所述主从切换指令为从第一服务器切换至第二服务器的指令;将所述第一插口信息和第二插口所述通过所述信息传递接口发送给所述信息修改单元;所述信息修改单元,用于根据所述第一插口信息确定对应的负载均衡服务;获取所述负载均衡服务的配置信息;根据所述第一插口信息和所述第二插口信息修改所述配置信息;其中,修改后的配置信息用于触发所述负载均衡服务将来自客户端的信息转发至所述第二服务器。
在其中一个实施例中,所述第一插口信息包括第一端口信息,所述第二插口信息包括第二端口信息;所述信息修改单元,还用于根据所述第一插口信息和所述第二插口信息将所述配置信息中的第一端口信息修改为第二端口信息。
在其中一个实施例中,所述第一插口信息包括第一IP地址,所述第二插口信息包括第二IP地址;所述信息修改单元,包括:主机实例确定子单元,用于分别根据所述第一IP地址和所述第二IP地址确定对应的第一实例ID和第二实例ID;主机实例替换子单元,用于将所述配置信息中的第一实例ID替换为所述第二实例ID;所述第二实例ID使得所述负载均衡服务将来自客户端的信息转发至所述第二端口信息对应的端口上。
在其中一个实施例中,所述信息修改单元,还用于根据所述第一插口信息对应的端口信息确定所述负载均衡服务的虚拟组信息;根据所述虚拟组信息确定所述负载均衡服务的配置信息。
在其中一个实施例中,所述信息修改单元,还用于当所述负载均衡服务的主从切换方法的任意步骤出现执行故障时,向特定终端发送故障告警信息。
在其中一个实施例中,所述主从切换指令由哨兵进程发送;所述主从切换指令中包含有对应哨兵进程的进程角色标识;所述信息获取单元,还用于根据主从切换指令中的进程角色标识确定对应哨兵进程的角色是否为主哨兵;当是时,获取所述第一插口信息以及所述第二插口信息。
在其中一个实施例中,所述信息获取单元,还用于向所述信息传递接口发送调用指令;所述调用指令中包含有调用参数;所述调用指令,用于使信息传递接口在调用参数校验通过之后,将所述第一插口信息和第二插口信息发送给所述信息修改单元。
在其中一个实施例中,所述信息获取单元,还用于判断所述调用指令是否发送成功;当发送不成功时,向特定终端发送调用告警信息。
一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:当接收到主从切换指令时,获取第一服务器的第一插口信息以及第二服务器的第二插口信息;所述主从切换指令为从第一服务器切换至第二服务器的指令;根据所述第一插口信息确定对应的负载均衡服务;获取所述负载均衡服务的配置信息;根据所述第一插口信息和所述第二插口信息修改所述配置信息;其中,修改后的配置信息用于触发所述负载均衡服务将来自客户端的信息转发至所述第二服务器。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:当接收到主从切换指令时,获取第一服务器的第一插口信息以及第二服务器的第二插口信息;所述主从切换指令为从第一服务器切换至第二服务器的指令;根据所述第一插口信息确定对应的负载均衡服务;获取所述负载均衡服务的配置信息;根据所述第一插口信息和所述第二插口信息修改所述配置信息;其中,修改后的配置信息用于触发所述负载均衡服务将来自客户端的信息转发至所述第二服务器。
上述负载均衡服务的主从切换方法、装置、系统、服务器及计算机可读存储介质,在接收到主从切换指令时,分别获取第一服务器的第一插口信息以及第二服务器的第二插口信息,根据第一插口信息和第二插口信息自动地对负载均衡服务的配置信息进行修改,以使负载均衡服务将来自客户端的信息转发至第二服务器。在哨兵集群对Redis集群做自动主从切换后,能快速地实现负载均衡服务的主从切换。
附图说明
图1为一个实施例中负载均衡服务的主从切换方法的应用环境图;
图2为一个实施例中负载均衡服务的主从切换方法的流程示意图;
图3为一个实施例中主从集群模式的结构示意图;
图4为一个实施例中包含哨兵集群的主从集群模式的结构示意图;
图5为一个实施例中确定新的主服务器的示意图;
图6为一个实施例中负载均衡服务的主从切换装置的结构框图;
图7为一个实施例中负载均衡服务的主从切换系统的结构框图;
图8为另一个实施例中负载均衡服务的主从切换系统的结构框图;
图9为一个实施例中服务器的内部结构。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请提供的负载均衡服务的主从切换方法可以应用于如图1所示的应用环境中。该应用环境中包括客户端101、负载均衡服务102、第一服务器103、第二服务器104以及控制服务器105。该应用环境中的这些设备可以进行网络通信。在接收到将第一服务器103切换至第二服务器104的主从切换指令后,控制服务器105获取第一服务器103的第一插口信息以及第二服务器104的第二插口信息。根据第一插口信息确定对应负载均衡服务的配置信息,并根据第一插口信息和第一插口信息修改该配置信息,以使负载均衡服务不再将客户端的信息发送至第一服务器而是发送给第二服务器,实现流量的切换。其中,客户端101包括但不限于交互智能平板、智能电视机、个人计算机、笔记本电脑、智能手机、平板电脑、电子白板。负载均衡服务102可以通过VIP/DNS、阿里云SLB(load-balancing server)等实现。第一服务器103、第二服务器104以及控制服务器105均可以通过独立的服务器或者是多个服务器组成的服务器集群来实现。负载均衡服务102和控制服务器105可以是两个独立的设备,也可以是同一个设备(即负载均衡服务102自动加载相应的程序或软件,实现自身的主从切换)。
本发明实施例提供一种负载均衡服务的主从切换方法、装置、系统、服务器及存储介质。以下分别进行详细说明。
在一个实施例中,如图2所示,提供了一种负载均衡服务的主从切换方法。以该方法应用于图1中的控制服务器105端为例进行说明,包括以下步骤:
S201、当接收到主从切换指令时,获取第一服务器的第一插口信息以及第二服务器的第二插口信息;所述主从切换指令为从第一服务器切换至第二服务器的指令。
其中,主从切换指令指的是控制负载均衡服务将客户端的信息由之前的发送至第一服务器转换为发送至第二服务器的指令。主从切换指令可以认为是触发控制服务器进行负载均衡服务的主从切换的指令。
本发明实施例中的第一服务器和第二服务器指的是Redis服务器。Redis是完全开源免费的,遵守BSD(Berkeley Software Distribution,伯克利软件套件)协议,是一个高性能的key-value数据库。由于其高效的读写性能,Redis常作为key-value类型的数据缓存使用。在实际的生产环境中,Redis的使用方案主要有两种:1、主从集群模式,2、分布式模式。前者侧重数据的读写分离,后者侧重分布式存储数据、负载均衡等方面。其中,在主从集群模式中,Redis主库(主服务器)被称为Master,其他从库(从服务器)被称为Slave。在一个主从集群中,可以有多个Slave,但Master是唯一的;如图3所示的主从集群模式中,包括一个Master和两个Slave(Slave_1和Slave_2)。
另外,第一服务器和第二服务器均可以为主服务器(Master)或从服务器;当第一服务器和第二服务器为主服务器时,可以认为第一服务器为旧的主服务器,第二服务器为新的主服务器,在进行负载均衡服务的主从切换之前负载均衡服务是将客户端的信息(例如:请求指令等)发送给第一服务器的,而进行了主从切换以后,负载均衡服务就会把客户端的信息发送给第二服务器,实现流量的切换。
控制服务器要想修改负载均衡服务中的配置信息,就需要知道第一服务器和第二服务器的插口信息。因此,本步骤中,控制服务器在接收到主从切换指令之后,获取第一服务器的第一插口信息以及第二服务器的第二插口信息。其中,插口信息也可以称为socket(socket由IP地址和端口信息组成),是识别服务的入口。进一步地,第一插口信息包括第一端口信息和第一IP地址,第二插口信息包括第二端口信息和第二IP地址。
S202、根据所述第一插口信息确定对应的负载均衡服务;获取所述负载均衡服务的配置信息。
其中,负载均衡服务的配置信息可以指:该负载均衡服务所控制服务器的类型、数量、IP地址、端口信息、负载均衡服务与服务器的对应关系等。
客户端与负载均衡服务连接(这里的连接指的是进行网络通信),根据负载均衡服务的配置信息就能获知连接的是哪个服务器(即:将请求信息发送给哪个服务器)。因此,要实现负载均衡服务的主从切换,需要先确定负载均衡服务的配置信息,以修改该配置信息。确定负载均衡服务的配置信息的实现过程可以是:通过第一插口信息对应的端口信息确定对应的负载均衡服务,进而确定该负载均衡服务所对应的配置信息。
S203、根据所述第一插口信息和所述第二插口信息修改所述配置信息;其中,修改后的配置信息用于触发所述负载均衡服务将来自客户端的信息转发至所述第二服务器。
本实施例提供的负载均衡服务的主从切换方法,不需要人工的参与,能实现无人值守以及故障的自愈。另外,能极大地缩减负载均衡服务的主从切换时间,快速实现流量的切换。
在一个实施例中,根据所述第一插口信息和所述第二插口信息修改所述配置信息的步骤,包括:根据所述第一插口信息和所述第二插口信息将所述配置信息中的第一端口信息修改为第二端口信息。
进一步地,根据所述第一插口信息和所述第二插口信息修改所述配置信息的步骤,包括:分别根据所述第一IP地址和所述第二IP地址确定对应的第一实例ID和第二实例ID;将所述配置信息中的第一实例ID替换为所述第二实例ID;所述第二实例ID使得所述负载均衡服务将来自客户端的信息转发至所述第二端口信息对应的端口上。
其中,实例ID可以指云服务实例ID(ECS实例ID)。云服务实例是一个虚拟的计算环境,包含CPU、内存、操作系统、带宽、磁盘等计算组件。
进一步地,该负载均衡服务指阿里云SLB;该阿里云SLB中包含有多个ECS实例ID;所述根据所述第一插口信息和所述第二插口信息修改所述配置信息的步骤,包括:分别根据所述第一IP地址和第二IP地址确定对应的第一ECS实例ID和第二ECS实例ID;将所述配置信息中的第一ECS实例ID替换为所述第二ECS实例ID。
本实施例将负载均衡服务配置信息中第一服务器的端口、实例ID等信息修改为第二服务器的信息,能使得负载均衡服务将来自客户端的信息转发至第二服务器,即实现负载均衡服务转发策略的修改。
在一个实施例中,所述将所述配置信息中的第一实例ID替换为第二实例ID的步骤之后,还包括:修改所述配置信息中所述第二服务器的权重。
权重的概念是相对的,主要是用于确定流量的转发比。以负载均衡服务对应的后端服务器虚拟组有两台后端服务器(相对于负载均衡服务而言,服务器处于后端,因此可以将服务器称为后端服务器)为例,假设这两台后端服务器的权重分别为100和200,这时流量转发比就是1:2(即,在客户端发送请求信息时,将1/3的请求信息转发给权重为100的后端服务器)。若后端服务器只有一台,权重的数值大小就不是很有意义了,但是需要配置相关的权重概念,可以将该后端服务器的权重设置为100,此时由于只有一台后端服务器,负载均衡服务会将所有的流量转发给该后端服务器。
另外,修改配置信息中服务器权重的过程还可以在修改端口信息和实例ID之前或者同时进行。
本实施例对配置信息中服务器的权重进行设置,能实现对服务器流量的控制,更好地实现多个服务器的负载均衡。
在一个实施例中,所述获取所述负载均衡服务的配置信息的步骤,包括:确定所述负载均衡服务的虚拟组信息;根据所述虚拟组信息确定所述负载均衡服务的配置信息。
其中,虚拟组指的是由后端服务器组成的组,提供给上层配置一个统一的入口。虚拟组信息中包含具体的服务器列表。根据该虚拟组信息就能确定负载均衡服务的配置信息。
本实施例根据负载均衡服务的虚拟组信息确定对应的配置信息,为配置信息的修改做好准备。
在一个实施例中,当所述负载均衡服务的主从切换方法的任意步骤出现执行故障时,向特定终端发送故障告警信息。
其中,特定终端指的是运维人员所使用的终端,可以是智能手机、智能平板、电子白板等设备。另外,可以通过微信企业号、短信、邮件等方式向特定终端发送故障告警信息。其中,通过微信企业号进行故障告警的样例如下:
【Error】:CheckSLBSettings
【REGION】:cn-hangzhou
【SLB】:lb-bp1ajqxvhrcwpihfhlw4
【OLD】:[{“10.111.90.181”:30}]
【NEW】:[{“10.111.90.181”:40}]
其中,【Error】指的是出错的步骤,【REGION】指的是发生故障对应的设备所在的区域,【SLB】指的是负载均衡服务的信息,【OLD】指的是旧Master的IP地址和端口号,【NEW】指的是新Master的IP地址和端口号。
当某个流程执行出错时则跳出,不会继续执行。运维人员可根据微信企业号来排查错误信息。实际使用中还未发现流程执行失败的情况。
所述根据所述第一插口信息和所述第二插口信息修改所述配置信息的步骤之后,还包括:当完成负载均衡服务的主从切换时,向所述特定终端发送主从切换完成信息。
在完成负载均衡服务的主从切换(即负载均衡服务的主从切换所有流程执行无误)时,通过微信企业号进行切换完成信息的通知样例如下:
【Success】:Redis Master/Slave Exchanged
【REGION】:cn-hangzhou
【SLB】:lb-bp19kyo6w2mwqbtne0pv9
【OLD】:[{“10.26.91.21”:6380}]
【NEW】:[{“10.26.113.102”:6380}]
其中,【Success】指的是主从切换完成的提示信息。
本实施例在任意步骤出现故障以及完成负载均衡服务的主从切换时都通过特定终端通知运维人员,能使运维人员实时获取到负载均衡服务的主从切换过程,在出现故障时及时解决故障,保证整个系统的正常运行。
Redis主从集群模式有如下优点:1.采用双机主从架构,能够在主库出现故障时自动进行主从切换,将从库提升为主库继续提供服务;2.开启数据持久化功能和配置合理的备份策略,可有效解决数据误操作和数据异常丢失的问题。3.从库可以扩展主库的读数据能力,有效应对大并发量的读操作。但是Redis主从集群模式也存在一定的缺点:在主库故障时,把某个从库提升为主库的过程相对复杂,且需要人工参与。为解决这个问题,Redis社区推出了Redis主备集群加Sentinel(哨兵)集群的高可用方案,增加哨兵集群(由多个哨兵进程构成)的主从集群模式如图4所示。Sentinel集群的任务有三个:1.监控:Sentinel进程会不断地监测Master和Slave,判断两者是否运行正常。2.故障迁移:若Master一定时间内未响应,且多个Sentinel进程均判定其状态为Down(异常:未响应);则Sentinel进程启用选举投票的策略,从Slave中选举出新的Master,然后执行主从切换动作。3.提醒:当监控发现异常时,Sentinel进程通过API通知管理员或向其他程序发出通知。
在一个实施例中,所述主从切换指令由哨兵进程发送;所述主从切换指令中包含有对应哨兵进程的进程角色标识;所述获取第一服务器的第一插口信息以及第二服务器的第二插口信息的步骤,包括:根据主从切换指令中的进程角色标识确定对应哨兵进程的角色是否为主哨兵(Sentinel Master);当是时,获取所述第一插口信息以及所述第二插口信息;当否时,忽略所述主从切换指令。
其中,第一服务器为主服务器;主从切换指令为多个哨兵进程均判定第一服务器的状态为异常,从从服务器中选举出第二服务器作为新的主服务器,并发起主从切换时发送的。哨兵进程从从服务器中选择新的主服务器的过程可以如图5所示,其中哨兵进程选择Slave_2作为新的主服务器(即第二服务器)。
主哨兵指的是在Sentinel集群中主的概念,它在Sentinel集群中充当leader的作用。如图4所示,包括3个哨兵进程(Sentinel_Node_1、Sentinel_Node_2以及Sentinel_Node_3)。这些哨兵进程都会在发起主从切换时发送主从切换指令,但是只有其中一个为主哨兵。如果不判断哨兵进程的角色的话,控制服务器就有可能对所有哨兵进程都会执行主从切换操作,这样就有重复的概念。所以为了避免重复执行,对主从切换指令进行响应之前先做一个判断,角色为leader的才会执行主从切换操作。
另外,哨兵进程在判定第一服务器的状态为异常时,可以向特定终端或程序发出报警通知。
哨兵进程发出主从切换指令时也可以通过调用脚本的方式实现,即调用控制服务器中的某一个脚本(该脚本可以是Python脚本等),启动负载均衡服务的主从切换。而哨兵进程进行脚本调用时可以由Sentinel API实现调用。
本实施例中哨兵进程在确定当前的主服务器出现异常时,从从服务器中选择新的服务器并发送主从切换。控制服务器在接收到主从切换指令时判断对应的哨兵进程是否为主哨兵进程,能保证对主哨兵进程响应而对其他的哨兵进程不响应。能有效提高主从切换指令的响应效率,进而提高负载均衡服务的主从切换效率。
需要说明的是,对于前述的各方法实施例,为了简便描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。
基于与上述实施例中的负载均衡服务的主从切换方法相同的思想,本发明还提供负载均衡服务的主从切换装置和系统,该装置和系统可用于执行上述负载均衡服务的主从切换方法。为了便于说明,负载均衡服务的主从切换装置和系统实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置和系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图6所述,负载均衡服务的主从切换装置包括插口信息获取模块601、配置信息确定模块602和信息修改模块603,详细说明如下:插口信息获取模块601,用于当接收到主从切换指令时,获取第一服务器的第一插口信息以及第二服务器的第二插口信息;所述主从切换指令为从第一服务器切换至第二服务器的指令。配置信息确定模块602,用于根据所述第一插口信息确定对应的负载均衡服务;获取所述负载均衡服务的配置信息。以及,信息修改模块603,用于根据所述第一插口信息和所述第二插口信息修改所述配置信息;其中,修改后的配置信息用于触发所述负载均衡服务将来自客户端的信息转发至所述第二服务器。本实施例提供的负载均衡服务的主从切换方法,不需要人工的参与,能极大地缩减负载均衡服务的主从切换时间。
在其中一个实施例中,所述第一插口信息包括第一端口信息,所述第二插口信息包括第二端口信息;所述信息修改模块603,还用于根据所述第一插口信息和所述第二插口信息将所述配置信息中的第一端口信息修改为第二端口信息。
在其中一个实施例中,所述第一插口信息包括第一IP地址,所述第二插口信息包括第二IP地址;所述信息修改模块603,包括:主机实例确定子模块,用于分别根据所述第一IP地址和所述第二IP地址确定对应的第一实例ID和第二实例ID;主机实例替换子模块,用于将所述配置信息中的第一实例ID替换为所述第二实例ID;所述第二实例ID使得所述负载均衡服务将来自客户端的信息转发至所述第二端口信息对应的端口上。
在其中一个实施例中,所述信息修改模块603,还包括:权重修改子模块,用于修改所述配置信息中所述第二服务器的权重。
在其中一个实施例中,配置信息确定模块602,包括:虚拟组确定子模块,用于确定所述负载均衡服务的虚拟组信息;配置信息确定子模块,用于根据所述虚拟组信息确定所述负载均衡服务的配置信息。
在其中一个实施例中,还包括:故障告警模块,用于当所述负载均衡服务的主从切换方法的任意步骤出现执行故障时,向特定终端发送故障告警信息。
在其中一个实施例中,还包括:切换完成通知模块,用于当完成负载均衡服务的主从切换时,向所述特定终端发送主从切换完成信息。
在其中一个实施例中,插口信息获取模块601,包括:角色判断子模块,用于根据主从切换指令中的进程角色标识确定对应哨兵进程的角色是否为主哨兵;插口信息获取子模块,用于当是时,获取所述第一插口信息以及所述第二插口信息。
如图7所示,在一个实施例中,提供一种负载均衡服务的主从切换系统,该负载均衡服务的主从切换系统可以指前述实施例中的控制服务器105,该控制服务器105与负载均衡服务102通信连接。该负载均衡服务的主从切换系统包括:信息获取单元701、信息修改单元703和信息传递接口702,所述信息获取单元、所述信息修改单元以及信息传递接口通信连接;所述信息获取单元,用于当接收到主从切换指令时,获取第一服务器的第一插口信息以及第二服务器的第二插口信息;所述主从切换指令为从第一服务器切换至第二服务器的指令;将所述第一插口信息和第二插口所述通过所述信息传递接口发送给所述信息修改单元;所述信息修改单元,用于根据所述第一插口信息确定对应的负载均衡服务;获取所述负载均衡服务的配置信息;根据所述第一插口信息和所述第二插口信息修改所述配置信息;其中,修改后的配置信息用于触发所述负载均衡服务将来自客户端的信息转发至所述第二服务器。
其中,该负载均衡服务的主从切换系统可以通过StackStorm这个软件中的某些功能模块来解决传统负载均衡服务主从切换速度慢的问题。StackStorm中包括Python脚本、St2API以及St2_WorkFlow这几个功能模块。这个软件进行流程编排,遵循Apache LicenseVersion 2.0,对商业使用友好。如图8所示,信息获取单元701通过Python脚本等来实现。信息传递接口702通过St2_API实现。信息修改单元703通过St2_WorkFlow实现。
其中,St2_API指的是封装了StackStorm的部分API,它暴露API给St2SDK使用。Python脚本通过调用St2SDK提供的方法,就能访问St2_API。St2_WorkFlow是StackStorm系统中编排好的一个流程,用来做阿里云SLB转发规则中虚拟组后端服务器的切换。Sentinel进程完成主从切换后,新旧Master的IP地址和端口信息会被传递给St2_WorkFlow。
本实施例引入StackStorm进行流程编排,把对SLB的操作步骤通过不同的流程节点来完成,而StackStorm中的流程节点,是可以复用的,能大大提高代码的重用性。另外,提供St2SDK,将复杂的调用关系简单化,方便其他运维人员调用,内部调用St2API实现统一鉴权,保证负载均衡服务主从切换的有序进行。
在其中一个实施例中,所述第一插口信息包括第一端口信息,所述第二插口信息包括第二端口信息;所述信息修改单元,还用于根据所述第一插口信息和所述第二插口信息将所述配置信息中的第一端口信息修改为第二端口信息。
进一步地,所述第一插口信息包括第一IP地址,所述第二插口信息包括第二IP地址;所述信息修改单元,包括:主机实例确定子单元,用于分别根据所述第一IP地址和所述第二IP地址确定对应的第一实例ID和第二实例ID;主机实例替换子单元,用于将所述配置信息中的第一实例ID替换为所述第二实例ID;所述第二实例ID使得所述负载均衡服务将来自客户端的信息转发至所述第二端口信息对应的端口上。
本实施例将负载均衡服务配置信息中第一服务器的端口、实例ID等信息修改为第二服务器的信息,能使得负载均衡服务将来自客户端的信息转发至第二服务器,即实现负载均衡服务转发策略的修改。
在其中一个实施例中,所述信息修改单元,还用于根据所述第一插口信息对应的端口信息确定所述负载均衡服务的虚拟组信息;根据所述虚拟组信息确定所述负载均衡服务的配置信息。本实施例根据负载均衡服务的虚拟组信息确定对应的配置信息,为配置信息的修改做好准备。
在其中一个实施例中,所述信息修改单元,还用于当所述负载均衡服务的主从切换方法的任意步骤出现执行故障时,向特定终端发送故障告警信息。进一步地,根据所述第一插口信息和所述第二插口信息修改所述配置信息的步骤之后,还包括:当完成负载均衡服务的主从切换时,向所述特定终端发送主从切换完成信息。本实施例在任意步骤出现故障以及完成负载均衡服务的主从切换时都通过特定终端通知运维人员,能使运维人员实时获取到负载均衡服务的主从切换过程,在出现故障时及时解决故障,保证整个系统的正常运行。
在其中一个实施例中,所述主从切换指令由哨兵进程发送;所述主从切换指令中包含有对应哨兵进程的进程角色标识;所述信息获取单元,还用于根据主从切换指令中的进程角色标识确定对应哨兵进程的角色是否为主哨兵;当是时,获取所述第一插口信息以及所述第二插口信息。本实施例中哨兵进程在确定当前的主服务器出现异常时,从从服务器中选择新的服务器并发送主从切换。控制服务器在接收到主从切换指令时判断对应的哨兵进程是否为主哨兵进程,能保证对主哨兵进程响应而对其他的哨兵进程不响应,有效提高主从切换指令的响应效率,进而提高负载均衡服务的主从切换效率。
在其中一个实施例中,所述信息获取单元,还用于向所述信息传递接口发送调用指令;所述调用指令中包含有调用参数;所述调用指令,用于使信息传递接口在调用参数校验通过之后,将所述第一插口信息和第二插口信息发送给所述信息修改单元。
其中,调用参数中可以包含第一插口信息和第二插口信息。以负载均衡服务为阿里云SLB为例,调用参数所包含的内容可以为:
workflow:流程名字;
region_id:阿里云的区域id;
app_key:阿里云SLB的操作认证key;
slb_id:识别哪台slb;
old_ip_port:旧的redis ip和端口组合;
new_ip_port:新的redis ip和端口组合。
信息传递接口除了将第一插口信息和第二插口信息发送给信息修改单元,还可以发送其他的信息。继续以上例为例,信息传递接口可以直接将调用参数发送给信息修改单元,即,将调用参数校验后传递给StackStorm系统。
进一步地,所述信息获取单元,还用于判断所述调用指令是否发送成功;当发送不成功时,向特定终端发送调用告警信息。
本实施例的信息传递接口能够在接收到调用指令时对调用参数进行校验,并在校验通过后将第一插口信息和第二插口信息发送给信息修改单元。能保证负载服务的主从切换安全有序地进行。
为了更好地理解上述方法,以下详细阐述一个本发明负载均衡服务的主从切换方法的应用实例。该应用实例中包括客户端、阿里云SLB(负载均衡服务)、一个Master(主服务器)、两个Slave(从服务器)、三个Sentinel进程(哨兵进程)以及控制服务器。其中,该控制服务器中包括:Python脚本(信息获取单元)、St2_API(信息传递接口)以及St2_WorkFlow(信息修改单元)。实现过程如下:
1、三个Sentinel进程实时监测Master和Slave是否运行正常。若Master一定时间内未响应,且多个Sentinel进程均判定其状态为Down;则Sentinel集群启用选举投票的策略,从两个Slave中选举出新Master(之前的Master称为旧Master),然后执行主从切换动作。
2、三个Sentinel进程分别通过Sentinel API向Python脚本发送主从切换指令。该主从切换指令中包含有Sentinel进程的进程角色标识。
3、Python脚本根据该进程角色标识判断对应的Sentinel进程是否为主哨兵;当是时,响应该主哨兵的主从切换指令,分别获取旧Master的第一插口信息(第一端口信息和第一IP地址)和新Master的第二插口信息(第二端口信息和第二IP地址)。
4、Python脚本通过向St2_API发送调用指令以访问St2_API,并判断St2_API是否调用成功,调用失败则发送微信企业号给电子白板以通知运维人员。
5、当Python脚本调用成功时,St2_API对调用指令中所包含的调用参数进行校验,并在调用参数校验通过时将新旧Master的IP地址和端口信息上报给St2_WorkFlow。即,将新旧Master的IP地址和端口信息传递给StackStorm系统。
6、St2_WorkFlow通过旧Master对应的第一端口信息查找到对应SLB实例的虚拟组信息,通过该虚拟组信息查找到对应的SLB实例的配置信息;另外根据新旧Master的主机IP地址反查到其阿里云实例ID(第一实例ID和第二实例ID)。
7、将阿里云SLB对应的虚拟组后端服务器的配置信息进行修改。即,将旧Master的IP地址和端口信息修改为新Master的IP地址和端口信息。
8、上述任何一个步骤执行失败,该步骤的主体都通过微信企业号发送告警信息给电子白板以通知运维人员;若全部流程执行无误,同样发送微信企业号信息给运维人员以通知执行结果。
9、当阿里云SLB的配置信息修改成功时,Python脚本主动断开客户端对RedisMaster的所有连接,促使客户端重新建立连接。这样建立连接后,就会连接到新的Master上。阿里云SLB也会据此把客户端的请求信息转发至新Master。
当在使用的主服务器发生故障时,需要将负载均衡服务的配置信息进行修改并进行故障恢复。传统的故障恢复过程可以为:1.运维人员收到业务反馈,服务不可用;2.运维人员登录服务器,根据其他监控信息排查故障原因;最终判定为Redis服务不可用;3.运维人员登录Redis服务集群,查看Redis服务的主从状态,判断是否发生主从切换;4.若发生主从切换,运维人员记录新的Mater主机,登录到负载均衡服务的页面,手动修改对应的转发规则:删除旧的转发地址,添加新的转发地址;5.SLB转发规则生效,故障恢复。从步骤1到步骤5之间需要几分钟到几十分钟不等,且需要人工参与;而在夜晚发生故障的话,恢复耗时会更加长。本实施例,每当由于故障引起Redis主从自动切换后,Sentinel集群都会自动调用Python脚本,将Redis主从切换前后新旧Master的IP地址和端口信息发送给St2_API,该St2_API内部做鉴权,鉴权通过则调用执行后端的SLB操作流程,并将新旧Master的IP地址和端口信息传递给St2_WorkFlow。整体过程全部自动化完成,从Sentinel的主从切换到SLB转发策略修改后生效的过程,所需时间可以达到秒级(具体时间依赖网络环境,但从上线观察发现,最长不会超过10秒),能实现秒级故障治愈。
需要说明的是,本发明的负载均衡服务的主从切换装置与本发明的负载均衡服务的主从切换方法一一对应,在上述负载均衡服务的主从切换方法的实施例阐述的技术特征及其有益效果均适用于负载均衡服务的主从切换装置的实施例中,具体内容可参见本发明方法实施例中的叙述,此处不再赘述,特此声明。
此外,上述示例的负载均衡服务的主从切换装置的实施方式中,各程序模块的逻辑划分仅是举例说明,实际应用中可以根据需要,例如出于相应硬件的配置要求或者软件的实现的便利考虑,将上述功能分配由不同的程序模块完成,即将所述负载均衡服务的主从切换装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分功能。
在一个实施例中,提供了一种服务器,其内部结构图可以如图9所示。该服务器包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该服务器的处理器用于提供计算和控制能力。该服务器的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该服务器的数据库用于存储第一插口信息、第二插口信息、配置信息等数据。该服务器的网络接口用于与外部的客户端、负载均衡服务等通过网络连接通信。该计算机程序被处理器执行时以实现一种负载均衡服务的主从切换方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:当接收到主从切换指令时,获取第一服务器的第一插口信息以及第二服务器的第二插口信息;所述主从切换指令为从第一服务器切换至第二服务器的指令;根据所述第一插口信息确定对应的负载均衡服务;获取所述负载均衡服务的配置信息;根据所述第一插口信息和所述第二插口信息修改所述配置信息;其中,修改后的配置信息用于触发所述负载均衡服务将来自客户端的信息转发至所述第二服务器。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述第一插口信息包括第一端口信息,所述第二插口信息包括第二端口信息;所述根据所述第一插口信息和所述第二插口信息修改所述配置信息的步骤,包括:根据所述第一插口信息和所述第二插口信息将所述配置信息中的第一端口信息修改为第二端口信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述第一插口信息包括第一IP地址,所述第二插口信息包括第二IP地址;所述根据所述第一插口信息和所述第二插口信息修改所述配置信息的步骤,包括:分别根据所述第一IP地址和所述第二IP地址确定对应的第一实例ID和第二实例ID;将所述配置信息中的第一实例ID替换为所述第二实例ID;所述第二实例ID使得所述负载均衡服务将来自客户端的信息转发至所述第二端口信息对应的端口上。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述将所述配置信息中的第一实例ID替换为第二实例ID的步骤之后,还包括:修改所述配置信息中所述第二服务器的权重。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述获取所述负载均衡服务的配置信息的步骤,包括:确定所述负载均衡服务的虚拟组信息;根据所述虚拟组信息确定所述负载均衡服务的配置信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当所述负载均衡服务的主从切换方法的任意步骤出现执行故障时,向特定终端发送故障告警信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述根据所述第一插口信息和所述第二插口信息修改所述配置信息的步骤之后,还包括:当完成负载均衡服务的主从切换时,向所述特定终端发送主从切换完成信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述主从切换指令由哨兵进程发送;所述主从切换指令中包含有对应哨兵进程的进程角色标识;所述获取第一服务器的第一插口信息以及第二服务器的第二插口信息的步骤,包括:根据主从切换指令中的进程角色标识确定对应哨兵进程的角色是否为主哨兵;当是时,获取所述第一插口信息以及所述第二插口信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述第一服务器为主服务器;所述主从切换指令为多个哨兵进程均判定第一服务器的状态为异常,从从服务器中选举出第二服务器作为新的主服务器,并发起主从切换时发送的。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:当接收到主从切换指令时,获取第一服务器的第一插口信息以及第二服务器的第二插口信息;所述主从切换指令为从第一服务器切换至第二服务器的指令;根据所述第一插口信息确定对应的负载均衡服务;获取所述负载均衡服务的配置信息;根据所述第一插口信息和所述第二插口信息修改所述配置信息;其中,修改后的配置信息用于触发所述负载均衡服务将来自客户端的信息转发至所述第二服务器。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述第一插口信息包括第一端口信息,所述第二插口信息包括第二端口信息;所述根据所述第一插口信息和所述第二插口信息修改所述配置信息的步骤,包括:根据所述第一插口信息和所述第二插口信息将所述配置信息中的第一端口信息修改为第二端口信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述第一插口信息包括第一IP地址,所述第二插口信息包括第二IP地址;所述根据所述第一插口信息和所述第二插口信息修改所述配置信息的步骤,包括:分别根据所述第一IP地址和所述第二IP地址确定对应的第一实例ID和第二实例ID;将所述配置信息中的第一实例ID替换为所述第二实例ID;所述第二实例ID使得所述负载均衡服务将来自客户端的信息转发至所述第二端口信息对应的端口上。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述将所述配置信息中的第一实例ID替换为第二实例ID的步骤之后,还包括:修改所述配置信息中所述第二服务器的权重。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述获取所述负载均衡服务的配置信息的步骤,包括:确定所述负载均衡服务的虚拟组信息;根据所述虚拟组信息确定所述负载均衡服务的配置信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当所述负载均衡服务的主从切换方法的任意步骤出现执行故障时,向特定终端发送故障告警信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述根据所述第一插口信息和所述第二插口信息修改所述配置信息的步骤之后,还包括:当完成负载均衡服务的主从切换时,向所述特定终端发送主从切换完成信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述主从切换指令由哨兵进程发送;所述主从切换指令中包含有对应哨兵进程的进程角色标识;所述获取第一服务器的第一插口信息以及第二服务器的第二插口信息的步骤,包括:根据主从切换指令中的进程角色标识确定对应哨兵进程的角色是否为主哨兵;当是时,获取所述第一插口信息以及所述第二插口信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述第一服务器为主服务器;所述主从切换指令为多个哨兵进程均判定第一服务器的状态为异常,从从服务器中选举出第二服务器作为新的主服务器,并发起主从切换时发送的。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,作为独立的产品销售或使用。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本发明实施例的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或(模块)单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,不能理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (21)
1.一种负载均衡服务的主从切换方法,其特征在于,应用于控制服务器;包括以下步骤:
当接收到主从切换指令并确定主从切换指令为主哨兵进程发送的指令时,获取第一服务器的第一插口信息以及第二服务器的第二插口信息;所述主从切换指令为从第一服务器切换至第二服务器的指令;第一服务器为主服务器,主从切换指令为多个哨兵进程均判定第一服务器的状态为异常,从从服务器中选举出第二服务器作为新的主服务器,并发起主从切换时发送的;
根据所述第一插口信息确定对应的负载均衡服务;获取所述负载均衡服务的配置信息;
根据所述第一插口信息和所述第二插口信息修改所述配置信息,修改所述配置信息中所述第二服务器的权重,以修改转发到所述第二服务器的流量的转发比;其中,修改后的配置信息用于触发所述负载均衡服务将来自客户端的信息转发至所述第二服务器。
2.根据权利要求1所述的负载均衡服务的主从切换方法,其特征在于,所述第一插口信息包括第一端口信息,所述第二插口信息包括第二端口信息;
所述根据所述第一插口信息和所述第二插口信息修改所述配置信息的步骤,包括:
根据所述第一插口信息和所述第二插口信息将所述配置信息中的第一端口信息修改为第二端口信息。
3.根据权利要求2所述的负载均衡服务的主从切换方法,其特征在于,所述第一插口信息包括第一IP地址,所述第二插口信息包括第二IP地址;
所述根据所述第一插口信息和所述第二插口信息修改所述配置信息的步骤,包括:
分别根据所述第一IP地址和所述第二IP地址确定对应的第一实例ID和第二实例ID;
将所述配置信息中的第一实例ID替换为所述第二实例ID;所述第二实例ID使得所述负载均衡服务将来自客户端的信息转发至所述第二端口信息对应的端口上。
4.根据权利要求1所述的负载均衡服务的主从切换方法,其特征在于,所述获取所述负载均衡服务的配置信息的步骤,包括:
确定所述负载均衡服务的虚拟组信息;
根据所述虚拟组信息确定所述负载均衡服务的配置信息。
5.根据权利要求1所述的负载均衡服务的主从切换方法,其特征在于,当所述负载均衡服务的主从切换方法的任意步骤出现执行故障时,向特定终端发送故障告警信息。
6.根据权利要求5所述的负载均衡服务的主从切换方法,其特征在于,所述根据所述第一插口信息和所述第二插口信息修改所述配置信息的步骤之后,还包括:
当完成负载均衡服务的主从切换时,向所述特定终端发送主从切换完成信息。
7.根据权利要求1所述的负载均衡服务的主从切换方法,其特征在于,所述主从切换指令由哨兵进程发送;所述主从切换指令中包含有对应哨兵进程的进程角色标识;
所述获取第一服务器的第一插口信息以及第二服务器的第二插口信息的步骤,包括:
根据主从切换指令中的进程角色标识确定对应哨兵进程的角色是否为主哨兵;
当是时,获取所述第一插口信息以及所述第二插口信息。
8.根据权利要求7所述的负载均衡服务的主从切换方法,其特征在于,所述第一服务器为主服务器;
所述主从切换指令为多个哨兵进程均判定第一服务器的状态为异常,从从服务器中选举出第二服务器作为新的主服务器,并发起主从切换时发送的。
9.一种负载均衡服务的主从切换装置,其特征在于,应用于控制服务器;包括:
插口信息获取模块,用于当接收到主从切换指令并确定主从切换指令为主哨兵进程发送的指令时,获取第一服务器的第一插口信息以及第二服务器的第二插口信息;所述主从切换指令为从第一服务器切换至第二服务器的指令;第一服务器为主服务器,主从切换指令为多个哨兵进程均判定第一服务器的状态为异常,从从服务器中选举出第二服务器作为新的主服务器,并发起主从切换时发送的;
配置信息确定模块,用于根据所述第一插口信息确定对应的负载均衡服务;获取所述负载均衡服务的配置信息;
以及,信息修改模块,用于根据所述第一插口信息和所述第二插口信息修改所述配置信息,修改所述配置信息中所述第二服务器的权重,以修改转发到所述第二服务器的流量的转发比;其中,修改后的配置信息用于触发所述负载均衡服务将来自客户端的信息转发至所述第二服务器。
10.根据权利要求9所述的负载均衡服务的主从切换装置,其特征在于,所述第一插口信息包括第一端口信息,所述第二插口信息包括第二端口信息;
所述信息修改模块,还用于根据所述第一插口信息和所述第二插口信息将所述配置信息中的第一端口信息修改为第二端口信息。
11.根据权利要求10所述的负载均衡服务的主从切换装置,其特征在于,所述第一插口信息包括第一IP地址,所述第二插口信息包括第二IP地址;
所述信息修改模块,包括:
主机实例确定子模块,用于分别根据所述第一IP地址和所述第二IP地址确定对应的第一实例ID和第二实例ID;
主机实例替换子模块,用于将所述配置信息中的第一实例ID替换为所述第二实例ID;所述第二实例ID使得所述负载均衡服务将来自客户端的信息转发至所述第二端口信息对应的端口上。
12.一种负载均衡服务的主从切换系统,其特征在于,包括:信息获取单元、信息修改单元和信息传递接口,所述信息获取单元、所述信息修改单元以及信息传递接口通信连接;
所述信息获取单元,用于当接收到主从切换指令并确定主从切换指令为主哨兵进程发送的指令时,获取第一服务器的第一插口信息以及第二服务器的第二插口信息;所述主从切换指令为从第一服务器切换至第二服务器的指令;第一服务器为主服务器,主从切换指令为多个哨兵进程均判定第一服务器的状态为异常,从从服务器中选举出第二服务器作为新的主服务器,并发起主从切换时发送的;将所述第一插口信息和所述 第二插口信息 通过所述信息传递接口发送给所述信息修改单元;
所述信息修改单元,用于根据所述第一插口信息确定对应的负载均衡服务;获取所述负载均衡服务的配置信息;根据所述第一插口信息和所述第二插口信息修改所述配置信息,修改所述配置信息中所述第二服务器的权重,以修改转发到所述第二服务器的流量的转发比;其中,修改后的配置信息用于触发所述负载均衡服务将来自客户端的信息转发至所述第二服务器。
13.根据权利要求12所述的负载均衡服务的主从切换系统,其特征在于,所述第一插口信息包括第一端口信息,所述第二插口信息包括第二端口信息;
所述信息修改单元,还用于根据所述第一插口信息和所述第二插口信息将所述配置信息中的第一端口信息修改为第二端口信息。
14.根据权利要求13所述的负载均衡服务的主从切换系统,其特征在于,所述第一插口信息包括第一IP地址,所述第二插口信息包括第二IP地址;
所述信息修改单元,包括:
主机实例确定子单元,用于分别根据所述第一IP地址和所述第二IP地址确定对应的第一实例ID和第二实例ID;
主机实例替换子单元,用于将所述配置信息中的第一实例ID替换为所述第二实例ID;所述第二实例ID使得所述负载均衡服务将来自客户端的信息转发至所述第二端口信息对应的端口上。
15.根据权利要求12所述的负载均衡服务的主从切换系统,其特征在于,所述信息修改单元,还用于根据所述第一插口信息对应的端口信息确定所述负载均衡服务的虚拟组信息;根据所述虚拟组信息确定所述负载均衡服务的配置信息。
16.根据权利要求12所述的负载均衡服务的主从切换系统,其特征在于,所述信息修改单元,还用于当所述负载均衡服务的主从切换方法的任意步骤出现执行故障时,向特定终端发送故障告警信息。
17.根据权利要求12所述的负载均衡服务的主从切换系统,其特征在于,所述主从切换指令由哨兵进程发送;所述主从切换指令中包含有对应哨兵进程的进程角色标识;
所述信息获取单元,还用于根据主从切换指令中的进程角色标识确定对应哨兵进程的角色是否为主哨兵;当是时,获取所述第一插口信息以及所述第二插口信息。
18.根据权利要求12所述的负载均衡服务的主从切换系统,其特征在于,所述信息获取单元,还用于向所述信息传递接口发送调用指令;所述调用指令中包含有调用参数;所述调用指令,用于使信息传递接口在调用参数校验通过之后,将所述第一插口信息和第二插口信息发送给所述信息修改单元。
19.根据权利要求18所述的负载均衡服务的主从切换系统,其特征在于,所述信息获取单元,还用于判断所述调用指令是否发送成功;当发送不成功时,向特定终端发送调用告警信息。
20.一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述的方法的步骤。
21.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910019095.4A CN109618000B (zh) | 2019-01-09 | 2019-01-09 | 负载均衡服务的主从切换方法、装置、系统及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910019095.4A CN109618000B (zh) | 2019-01-09 | 2019-01-09 | 负载均衡服务的主从切换方法、装置、系统及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109618000A CN109618000A (zh) | 2019-04-12 |
CN109618000B true CN109618000B (zh) | 2021-08-31 |
Family
ID=66016482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910019095.4A Active CN109618000B (zh) | 2019-01-09 | 2019-01-09 | 负载均衡服务的主从切换方法、装置、系统及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109618000B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110389831B (zh) * | 2019-06-14 | 2021-11-02 | 网宿科技股份有限公司 | 维护负载均衡配置的方法和服务器监管设备 |
CN110415042A (zh) * | 2019-08-01 | 2019-11-05 | 威富通科技有限公司 | 一种优惠券生成系统、方法及优惠券服务器 |
CN110532094B (zh) * | 2019-08-23 | 2023-03-31 | 四川汇安融信息技术股份有限公司 | 一种负载均衡权重值修改方法及处理系统 |
CN110659262A (zh) * | 2019-09-20 | 2020-01-07 | 聚好看科技股份有限公司 | 一种redis节点主从切换方法及装置 |
CN110674192A (zh) * | 2019-10-09 | 2020-01-10 | 浪潮云信息技术有限公司 | 一种Redis高可用VIP漂移方法、终端及存储介质 |
CN110971660B (zh) * | 2019-10-16 | 2022-10-11 | 平安普惠企业管理有限公司 | 多服务器控制方法及装置 |
CN111414247A (zh) * | 2020-04-24 | 2020-07-14 | 北京金山云网络技术有限公司 | 一种服务器切换方法、装置、管理节点及存储介质 |
CN111884847B (zh) * | 2020-07-20 | 2022-06-28 | 北京百度网讯科技有限公司 | 用于处理故障的方法和装置 |
CN112559028A (zh) * | 2020-12-25 | 2021-03-26 | 北京环球国广媒体科技有限公司 | 一种应用发版方法、系统及计算机可读存储介质 |
CN112866035A (zh) * | 2021-02-24 | 2021-05-28 | 紫光云技术有限公司 | 一种云平台上redis服务可指定从节点切换为主节点的方法 |
CN113961397A (zh) * | 2021-10-28 | 2022-01-21 | 航天壹进制(南京)数据科技有限公司 | 一种基于备份容灾系统的高可用集群容灾方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8982902B1 (en) * | 2012-06-28 | 2015-03-17 | Shoretel, Inc. | Backup server architecture in a VoIP system |
CN105187230A (zh) * | 2015-06-25 | 2015-12-23 | 走遍世界(北京)信息技术有限公司 | 服务器的切换方法及装置 |
CN105871588A (zh) * | 2015-12-11 | 2016-08-17 | 乐视云计算有限公司 | 负载均衡配置方法、设备及系统 |
CN107438012A (zh) * | 2016-05-27 | 2017-12-05 | 北京金山云网络技术有限公司 | 一种负载均衡服务转发方法、系统、均衡装置和宿主机 |
CN107465556A (zh) * | 2017-09-07 | 2017-12-12 | 郑州云海信息技术有限公司 | 一种主备服务器的切换方法、装置及系统 |
CN108667576A (zh) * | 2018-08-06 | 2018-10-16 | 百度在线网络技术(北京)有限公司 | 消息服务器的主备切换方法、装置和消息服务系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9697095B2 (en) * | 2014-12-18 | 2017-07-04 | Dell Products L.P. | Switch failure recovery system |
-
2019
- 2019-01-09 CN CN201910019095.4A patent/CN109618000B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8982902B1 (en) * | 2012-06-28 | 2015-03-17 | Shoretel, Inc. | Backup server architecture in a VoIP system |
CN105187230A (zh) * | 2015-06-25 | 2015-12-23 | 走遍世界(北京)信息技术有限公司 | 服务器的切换方法及装置 |
CN105871588A (zh) * | 2015-12-11 | 2016-08-17 | 乐视云计算有限公司 | 负载均衡配置方法、设备及系统 |
CN107438012A (zh) * | 2016-05-27 | 2017-12-05 | 北京金山云网络技术有限公司 | 一种负载均衡服务转发方法、系统、均衡装置和宿主机 |
CN107465556A (zh) * | 2017-09-07 | 2017-12-12 | 郑州云海信息技术有限公司 | 一种主备服务器的切换方法、装置及系统 |
CN108667576A (zh) * | 2018-08-06 | 2018-10-16 | 百度在线网络技术(北京)有限公司 | 消息服务器的主备切换方法、装置和消息服务系统 |
Non-Patent Citations (1)
Title |
---|
"基于请求策略和状态切换的服务器推送技术研究";周巍;《中国优秀硕士学位论文全文数据库》;20091130;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109618000A (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109618000B (zh) | 负载均衡服务的主从切换方法、装置、系统及服务器 | |
CN109495312B (zh) | 基于仲裁盘和双链路的高可用集群的实现方法和系统 | |
CN109344014B (zh) | 一种主备切换方法、装置及通信设备 | |
CN109960634B (zh) | 一种应用程序监控方法、装置及系统 | |
CN107276839B (zh) | 一种云平台的自监控方法和系统 | |
CN112612769B (zh) | 文件处理方法、装置及存储介质 | |
CN104717077B (zh) | 一种管理数据中心的方法、装置及系统 | |
CN114553900B (zh) | 一种分布式块存储管理系统、方法及电子设备 | |
WO2022267688A1 (zh) | 备用smf发现方法、装置、电子设备和介质 | |
CN116126457A (zh) | 容器迁移方法和服务器集群 | |
CN111342986B (zh) | 分布式节点管理方法及装置、分布式系统、存储介质 | |
CN112994918B (zh) | 一种设备管理方法及装置 | |
CN105245361A (zh) | 用于Linux系统的数据高可用系统、方法和装置 | |
CN103034545A (zh) | 基于ace的通信框架和方法、及功能模块间的通信方法 | |
US10536346B2 (en) | Data processing method and device | |
CN116467116A (zh) | 计算机设备、数据处理器、处理系统及切换方法 | |
US9015518B1 (en) | Method for hierarchical cluster voting in a cluster spreading more than one site | |
CN110620684A (zh) | 一种存储双控防脑裂方法、系统、终端及存储介质 | |
US11432172B2 (en) | Channel establishment method and base station | |
CN113805788B (zh) | 一种分布式存储系统及其异常处理方法和相关装置 | |
CN114745809A (zh) | 一种网络连接方法、装置、终端设备和存储介质 | |
CN113596195A (zh) | 公共ip地址管理方法、装置、主节点及存储介质 | |
CN113301086A (zh) | Dns数据管理系统和管理方法 | |
CN113765690B (zh) | 集群切换方法、系统、装置、终端、服务器及存储介质 | |
US20240187904A1 (en) | Load Query Processing Method and Apparatus, Storage Medium and Electronic Apparatus |
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 |