CN110290163B - 一种数据处理方法及装置 - Google Patents

一种数据处理方法及装置 Download PDF

Info

Publication number
CN110290163B
CN110290163B CN201810987315.8A CN201810987315A CN110290163B CN 110290163 B CN110290163 B CN 110290163B CN 201810987315 A CN201810987315 A CN 201810987315A CN 110290163 B CN110290163 B CN 110290163B
Authority
CN
China
Prior art keywords
cluster node
redis
target cluster
node information
client
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
Application number
CN201810987315.8A
Other languages
English (en)
Other versions
CN110290163A (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.)
New H3C Technologies Co Ltd
Original Assignee
New H3C Technologies 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 New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Priority to CN201810987315.8A priority Critical patent/CN110290163B/zh
Publication of CN110290163A publication Critical patent/CN110290163A/zh
Application granted granted Critical
Publication of CN110290163B publication Critical patent/CN110290163B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • 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
    • 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
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • 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
    • H04L67/141Setup of application sessions
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Abstract

本发明提供一种数据处理方法及装置,该方法包括:向DNS服务器发送集群节点信息获取请求,所述集群节点信息获取请求中携带有所述客户端的域名,以使所述DNS服务器根据所述客户端的域名确定匹配的目标集群节点信息;接收所述DNS服务器发送的所述目标集群节点信息;根据所述目标集群节点信息与所述目标集群节点的主实例进行连接,并进行数据处理。应用本发明实施例可以提高数据处理的效率。

Description

一种数据处理方法及装置
技术领域
本发明涉及网络通信技术领域,尤其涉及一种数据处理方法及装置。
背景技术
使用Redis(Remote dictionary server,远程字典服务器)服务器作为N:1备份项目的数据库时,工作设备作为Redis客户端,向Redis服务器备份数据。当工作设备故障时,备份设备从Redis服务器读取故障设备的备份数据代替故障设备继续工作。然而,在实际应用中,当工作设备较多且备份数据较多时,单个Redis服务进程处理性能会达到瓶颈,工作设备数据不能及时写入到Redis服务器,导致备份设备恢复的数据不完整。
由于Redis服务器的处理机制为单线程(即单服务实例)处理客户端数据,在多客户端并发操作的情况下,Redis服务器处理Redis客户端数据的能力将达到饱和,从而影响Redis客户端的数据处理。所以在Redis服务器单服务实例的基础上提出了多个Redis服务实例共同服务不同Redis客户端的Redis服务器部署方案,以此来提升Redis服务器的整体处理能力。
然而实践发现,在上述多Redis服务实例实现方案中,由于存在多个集群节点,使得Redis客户端配置变得复杂。在为客户端配置连接的集群节点时,首先需要获知Redis服务器端的全部集群节点信息,并从中选择一个集群节点来进行连接,选择时需确保Redis客户端连接的集群节点与上一次所连接的集群节点相同。此外,在建立连接时,还需在Redis客户端中配置集群节点中主实例的IP地址和端口号,导致数据处理效率较低。
发明内容
本发明提供一种数据处理方法及装置,以解决现有多Redis服务实例部署组网中数据处理效率较低的问题。
根据本发明实施例的第一方面,提供一种数据处理方法,应用于多Redis服务实例部署组网中的Redis客户端,所述方法包括:
向DNS服务器发送集群节点信息获取请求,所述集群节点信息获取请求中携带有所述Redis客户端的域名,以使所述DNS服务器根据所述Redis客户端的域名确定匹配的目标集群节点信息;
接收所述DNS服务器发送的所述目标集群节点信息;
根据所述目标集群节点信息与所述目标集群节点的主实例进行连接,并进行数据处理。
根据本发明实施例的第二方面,提供一种数据处理装置,应用于多Redis服务实例部署组网中的Redis客户端,其特征在于,所述装置包括:
发送单元,用于向DNS服务器发送集群节点信息获取请求,所述集群节点信息获取请求中携带有所述Redis客户端的域名,以使所述DNS服务器根据所述Redis客户端的域名确定匹配的目标集群节点信息;
接收单元,用于接收所述DNS服务器发送的所述目标集群节点信息;
处理单元,用于根据所述目标集群节点信息与所述目标集群节点的主实例进行连接,并进行数据处理。
根据本发明实施例的第三方面,提供数据处理系统,应用于多Redis服务实例部署组网,所述系统包括:Redis客户端和域名系统DNS服务器;其中:
所述Redis客户端用于执行上述数据处理方法;
所述DNS服务器用于当接收到所述集群节点信息获取请求时,根据所述Redis客户端的域名确定匹配的目标集群节点信息,并将所述目标集群节点信息发送给所述Redis客户端。
应用本发明实施例,当客户端需要连接数据库时,可以向DNS服务器发送集群节点信息获取请求,由DNS服务器根据集群节点信息获取请求中携带的客户端的域名确定匹配的目标集群节点信息;客户端接收到DNS服务器发送的目标集群节点信息时,可以根据目标集群节点信息与目标集群节点的主实例进行连接,并进行数据处理,与现有多Redis服务实例部署组网中,需要分别为各Redis客户端配置集群节点中主实例的IP地址和端口号的实现方案相比,提高了数据处理的效率。
附图说明
图1是一种典型的多Redis服务实例部署组网的架构示意图;
图2是本发明实施例提供的一种多Redis服务实例部署组网的架构示意图;
图3是本发明实施例提供的一种数据处理方法的流程示意图;
图4是本发明实施例提供的一种具体应用场景的架构示意图;
图5是本发明实施例提供的一种数据处理装置的结构示意图;
图6是本发明实施例提供的另一种数据处理装置的结构示意图;
图7是本发明实施例提供的一种数据处理装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,下面先对本发明实施例适用的网络架构进行简单说明。
以图1所示的多Redis服务实例部署组网为例。其中,多个Redis服务实例端口不同,客户端通过连接不同的Redis服务实例进行数据处理。
当多台Redis服务器均运行Redis多服务实例时,可以构建这些Redis服务器中各Redis实例的主从关系。
以图1所示的多Redis服务实例部署组网为例,假设Redis服务器A、Redis服务器B和Redis服务器C上各运行着10个Redis服务实例(假设均为Redis1~10),则可以构建Redis服务器A、Redis服务器B和Redis服务器C上的运行的各Redis服务实例的主从关系。例如,对于Redis1,服务器A中的Redis1作为主实例,服务器B和服务器C中的Redis1作为从实例。这样,可以将Redis服务器中的所有Redis服务实例以及Redis sentinel(哨兵)称为Redis服务器多实例集群,将构成主从关系的几个Redis服务实例和对应的Redis sentinel称为集群的一个节点(即集群节点)。Redis客户端通过连接不同的集群节点的主实例来进行数据处理。
请参见图2,为本发明实施例提供的一种多Redis服务实例部署组网的架构示意图,如图2所示,该多Redis服务实例部署组网除了包括多台运行多Redis服务实例的Redis服务器以及Redis客户端之外,还部署有DNS(Domain Name System,域名系统)服务器。
在图2所示的多Redis服务实例部署组网中,DNS服务器可以根据Redis客户端的域名确定Reids客户端连接的集群节点信息,因此,当Redis客户端需要与集群节点建立连接时,可以向DNS服务器发送携带Redis客户端的域名的集群节点信息获取请求,以使DNS服务器根据Redis客户端的域名确定匹配的集群节点信息(本文中称为目标集群节点信息),进而,Redis客户端可以根据目标集群节点信息与目标集群节点的主实例进行连接,并进行数据处理。
其中,该数据处理可以包括但不限于数据读取、数据写入、数据修改或数据删除等。
可见,在图2所示多Redis服务实例部署组网中,通过部署DNS服务器,由DNS服务器确定各Redis客户端对应的集群节点,在不需要分别为每个Redis客户端均配置集群节点信息的情况下,实现了多Redis服务实例部署组网中Redis客户端与集群节点的连接,提高了多Redis服务实例部署组网中数据处理的效率。
为了使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
请参见图3,为本发明实施例提供的一种数据处理方法的流程示意图,其中,该数据处理方法可以应用于客户端,例如,图2所示多Redis服务实例部署组网中的任一Redis客户端,如图3所示,该数据处理方法可以包括以下步骤:
为便于理解,下文中以步骤301~步骤303的执行主体为多Redis服务实例部署组网中的任一Redis客户端(下文中称为目标Redis客户端)为例进行说明。
步骤301、向DNS服务器发送集群节点信息获取请求,该集群节点信息获取请求中携带有客户端的域名,以使DNS服务器根据客户端的域名确定匹配的目标集群节点信息。
本发明实施例中,为了使多Redis服务实例部署组网中Redis客户端能够自动获取到所需连接的集群节点的信息,提高Redis客户端获取集群节点信息的效率,可以在多Redis服务实例部署组网中部署DNS服务器,由DNS服务器确定Redis客户端所需连接的集群节点的信息。
相应地,在本发明实施例中,当目标Redis客户端需要进行数据处理时,目标Redis客户端可以向DNS服务器发送携带目标Redis客户端的域名的集群节点信息获取请求。
在本发明实施例中,Redis客户端的域名可以直接配置在Redis客户端上,也可以由Redis客户端根据所配置的设备标识,按照预设规则生成。
相应地,在本发明其中一个实施例中,上述向DNS服务器发送集群节点信息获取请求之前,还可以包括:
根据预先配置的设备标识生成域名。
在该实施例中,可以预先为各Redis客户端配置设备标识,其中,同一多Redis服务实例部署组网中各Redis客户端的设备标识互不相同。
目标Redis客户端可以在向DNS服务器发送集群节点信息获取请求之前,目标Redis客户端可以根据预先配置的设备标识,利用预设规则生成域名,从而可以不需要为各Redis客户端分别配置域名,各Redis客户端均可自动确定自身的域名,提高了域名配置的效率。
本发明实施例中,DNS服务器接收到目标Redis客户端发送的集群节点信息获取请求时,可以获取该集群节点信息获取请求中携带的目标Redis客户端的域名,并根据该目标Redis客户端的域名确定匹配的目标集群节点信息。
其中,集群节点信息可以包括但不限于集群节点中的Redis sentinel的IP地址和端口号,和/或,集群节点中的主实例的IP地址和端口号等。
在本发明其中一个实施例中,DNS服务器可以预先配置域名与集群节点信息的对应关系,例如,通过Zone文件的形式配置域名与集群节点中的Redis sentinel的IP地址和端口号的对应关系。
其中,DNS服务器可以通过Zone文件记录域名与集群节点中的Redis sentinel的IP地址和端口号的对应关系。当客户端需要与集群节点建立连接时,客户端可以向DNS服务器发送SRV(服务定位)的服务解析请求,该服务解析请求中携带有客户端的域名。DNS服务器接收到该SRV服务解析请求时,可以根据其中携带的客户端的域名查询Zone文件,以确定与该客户端的域名匹配的Redis sentinel的IP地址和端口号。
相应地,当DNS服务器接收到集群节点信息获取请求时,可以根据该集群节点信息获取请求中携带的目标Redis客户端的域名查询预先配置的域名与集群节点信息的对应关系,以确定目标Redis客户端的域名匹配的目标集群节点信息。
应该认识到,在本发明实施例中,上述实施例中描述的DNS服务器确定Redis客户端的域名匹配的集群节点信息的实现方式(通过预先在DNS服务器中配置域名与集群节点信息的对应关系的方式)仅仅是本发明实施例的一种具体示例,而并不是对本发明保护范围的限定,即本发明实施例中DNS服务器也可以通过其它方式确定Redis客户端的域名匹配的集群节点信息,例如,可以预先对各集群节点进行编号,DNS服务器可以利用Hash(散列)算法确定Redis客户端的域名匹配的集群节点信息,其具体实现在此不做赘述。
步骤302、接收DNS服务器发送的目标集群节点信息。
本发明实施例中,DNS服务器确定了目标Redis客户端的域名匹配的目标集群节点信息时,可以将目标集群节点信息发送给目标Redis客户端。
其中,目标集群节点信息可以包括目标集群节点中的Redis sentinel的IP地址和端口号,或/和,目标集群节点中的主实例的IP地址和端口号。
步骤303、根据目标集群节点信息与目标集群节点的主实例进行连接,并进行数据处理。
本发明实施例中,目标Redis客户端接收到目标集群节点信息时,可以根据该目标集群节点信息与目标集群节点的主实例进行连接,并进行数据处理,如数据写入或数据读取等。
在本发明其中一个实施例中,当上述目标集群节点信息包括目标集群节点中的监控进程的IP地址和端口号时,
上述根据目标集群节点信息与目标集群节点的主实例进行连接,可以包括:
根据目标集群节点中的监控进程的IP地址和端口号与目标集群节点中监控进程建立第一连接;
通过第一连接获取目标集群节点的主实例的IP地址和端口号;
根据目标集群节点的主实例的IP地址和端口号,与目标集群节点的主实例建立第二连接。
在该实施例中,集群节点中会存在多个监控进程(通常监控进程与服务实例一一对应),监控进程可以对服务实例进行监控并获取服务实例的信息(如IP地址和端口号),当发现服务实例不可达时,会对服务实例做下线标识。
其中,当不可达的服务实例为主实例时,各监控进程会重新选举新的主实例。
为便于理解,下文中以集群节点中的监控进程为Redis sentinel为例进行说明。
在该实施例中,目标Redis客户端获取到目标集群节点中的Redis sentinel的IP地址和端口号时,可以根据该Redis sentinel的IP地址和端口号与该Redis sentinel建立连接(本文中称为第一连接)。
需要说明的是,在本发明实施例中,由于多Redis服务实例部署组网中,通过一个集群节点中会存在多个Redis sentinel(通常为一个Redis服务实例对应一个Redissentinel,各Redis sentinel均能监测主实例的状态,且能获取主实例的信息),因此,DNS服务器可以将目标集群节点中的任一Redis sentinel的IP地址和端口号发送给目标Redis客户端,由目标Redis客户端与该Redis sentinel建立第一连接;或者,DNS服务器可以将目标集群节点中的全部Redis sentinel的IP地址和端口号发送给目标Redis客户端,由目标Redis客户端按照一定的策略选择一个Redis sentinel,并与所选择的Redis sentinel建立第一连接。
在该实施例中,目标Redis客户端与Redis sentinel建立第一连接后,可以通过该第一连接向Redis sentinel发送主实例的IP地址和端口号获取请求,Redis sentinel接收到该请求时,可以向目标Redis客户端发送主实例(目标集群节点中的主实例)的IP地址和端口号。
目标Redis客户端获取到目标集群节点中的主实例的IP地址和端口号时,可以根据该主实例的IP地址和端口号与该主实例建立连接(本文中称为第二连接),进而,目标Redis客户端可以通过该第二连接进行数据处理。
进一步地,在本发明实施例中,当集群节点中主实例失效时,该集群节点中的Redis sentinel可以启动失效转移,即选举一个从实例(有效的从实例)升级为主实例(新的主实例),并将该新的主实例的IP地址和端口号通知给与该集群节点的原主实例建立连接的Redis客户端。
相应地,在该实施例的一种实施方式中,当目标集群节点信息包括目标集群节点的主实例的IP地址和端口号时,上述数据处理方法还可以包括:
当接收到目标集群节点中的监控进程发送的主实例切换通知消息时,根据主实例通知消息中携带的目标集群节点中切换后的主实例的IP地址和端口号,与目标集群节点中切换后的主实例建立第三连接,并进行数据处理。
在该实施方式中,当Redis sentinel选举出新的主实例时,Redis sentinel可以向目标Redis客户端发送主实例切换通知消息,该主实例切换通知消息中携带有切换后的主实例(即新的主实例)的IP地址和端口号,用于通知目标Redis客户端主实例发生了更新。
目标Redis客户端接收到主实例切换通知消息时,可以获取该主实例切换通知消息中携带的切换后的主实例的IP地址和端口号,并根据该切换后的主实例的IP地址和端口号与切换后的主实例建立连接(本文中称为第三连接),并通过该第三连接进行数据处理。
需要说明的是,在本发明实施例中,当DNS服务器发送给目标Redis客户端的目标集群节点信息为目标集群节点中主实例的IP地址和端口号时,Redis sentinel选举出新的主实例之后,可以先将新的主实例的IP地址和端口号通知给DNS服务器,由DNS服务器更新自身记录的该集群节点中的主实例的IP地址和端口号,并将更新后的主实例的IP地址和端口号通知给目标Redis客户端,由Redis客户端进行主实例切换,其具体实现在此不再赘述。
为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体应用场景对本发明实施例提供的技术方案进行说明。
请参见图4,为本发明实施例提供的一种具体应用场景的架构示意图,如图4所示,该应用场景包括30个Redis客户端(假设分别为C1~C30)、3个Redis服务器(假设分别为服务器A、服务器B和服务器C)以及DNS服务器。
在该应用场景中,各Redis服务器均配置了10个Redis服务实例(假设分别为Redis1~Redis10)和10个Redis sentinel(假设分别为sentinel1~sentinel10);各Redis服务器上编号相同的Redis服务实例构成主从关系(假设服务器A上的Redis服务实例为主实例,服务器B和服务器C上的Redis服务实例为从实例),构成主从关系的多个Redis服务实例及对应的Redis sentinel称为一个集群节点(假设分别为集群节点1~10)。
例如,服务器A、服务器B和服务器C上的Redis1和sentinel1称为一个集群节点(集群节点1)。
基于图4所示应用场景,本发明实施例提供的数据处理方案实现如下:
分别为各Redis客户端分配唯一的设备标识,如C1的设备标识为“1”,C2的设备标识为“2”,…,C30的设备标识为“30”。
Redis客户端可以根据设备标识按照预设规则生成域名,如C1的域名为“redis-client-1.com”,C2的域名为“redis-client-2.com”,…,C30的域名为“redis-client-30.com”。
DNS服务器上配置针对各Redis客户端的Zone文件,该Zone文件中记录了Redis客户端的域名对应的集群节点中的Redis sentinel的IP地址和端口号。
其中,在配置DNS服务器前可以收集Redis客户端的信息以及集群节点的信息,并根据集群节点的配置以及Redis客户端的使用情况,确认Redis客户端与集群节点信息的对应关系。
例如,在图4所示应用场景中,假设C1~C5中数据量较少且数据并发量较小,则可以将这5个Redis客户端分配给同一个集群节点;C6中数据量较大且并发数量也大,则该Redis客户端可以独占一个集群节点,该集群节点仅为C6提供服务。以此类推,可以得到各Redis客户端与集群节点的对应关系。
其中,对于C1,其对应的Zone文件(假设为redis-client-1.com.zone)中记录了C1的域名对应的集群节点中的Redis sentinel的IP地址和端口号。
假设C1分配给了集群节点1(服务器A、服务器B和服务器C上的Redis1和sentinel1构成的集群节点),服务器A、服务器B和服务器C上的sentinel1的IP地址分别IP A12、IPB12、IP C12和Port A12、Port B12和Port C12,则redis-client-1.com.zone中记录的Redis客户端的域名与集群节点中的Redis sentinel的IP地址和端口号的对应关系可以为:
IP A12,Port A12
redis-client-1.com.zone IP B12,Port B12
IP C12,Port C12
当Redis客户端需要进行数据处理时,Redis客户端可以向DNS服务器发送携带域名的SRV服务解析请求。
DNS服务器接收到SRV访问解析请求时,可以获取其中携带的Redis客户端的域名,并根据该Redis客户端的域名查询该Redis客户端的Zone文件,确定该Redis客户端对应的目标集群节点中的Redis sentinel的IP地址和端口号。
以C1进行数据处理为例,C1可以向DNS服务器发送SRV服务解析请求,该SRV服务解析请求中携带有C1的域名(redis-client-1.com)。
DNS服务器接收到SRV服务解析请求时,可以根据C1的域名从redis-client-1.com.zone中获取目标集群节点中的Redis sentinel的IP地址和端口号,即(IP A12,PortA12)、(IP B12,Port B12)和(IP C12,Port C12)。
DNS服务器可以向C1发送目标集群节点中的Redis sentinel的IP地址和端口号。
C1接收到DNS服务器发送的Redis sentinel的IP地址和端口号时,选择其中一个Redis sentinel(假设选择了服务器A上的sentinel1),并根据所选择的Redis sentinel的IP地址和端口号(即IP A12和Port A12)与该Redis sentinel建立第一连接。
C1通过第一连接向Redis sentinel(服务器A上的sentinel1)发送主实例的IP地址和端口号获取请求。
服务器A上的sentinel1接收到该请求时,将集群节点1的主实例(即服务器A上的Redis1)的IP地址(假设为IP A11)和端口号(假设为Port A11)发送给C1。
C1接收到集群节点1的主实例的IP地址和端口号(即IP A11和Port A11)时,根据该主实例的IP地址和端口号与该主实例建立第二连接,并进行数据处理。
其中,Redis客户端与集群节点中的主实例建立连接之后,进行数据处理的具体实现流程可以参见现有多Redis服务实例部署组网中的相关描述,本发明实施例在此不做赘述。
可见,在该实施例中,Redis客户端除了在开始连接集群节点时需要向DNS服务器发送SRV服务解析请求外,与集群节点的主实例进行数据处理时不经过额外中间设备,减少了性能上的损失。
此外,对于DNS服务器而言,主要使用了DNS服务器的SRV记录功能,无需对DNS服务器进行二次开发,即可提供高效稳定的服务。
在该实施例中,当集群节点1的主实例失效,即服务器A上的Redis1失效时,集群节点1中的Redis sentinel(即服务器A、服务器B和服务器C上的sentinel1)可以发起选举,选择一个从实例作为新的主实例(假设为服务器B上的Redis1)。
服务器A上的sentinel1可以通过第一连接向C1发送主实例切换通知消息,该主实例切换通知消息中携带有切换后的主实例的IP地址和端口号,即服务器B上的Redis1的IP地址(假设为IP B11)和端口号(假设为Port B11)。
C1接收到该主实例切换通知消息时,可以获取其中携带的切换后的主实例的IP地址和端口号,并根据该切换后的主实例的IP地址和端口号,与集群节点1中切换后的主实例建立第三连接,并通过该第三连接进行数据处理。
可见,在该实施例中,当集群节点中发生主实例切换时,Redis客户端可以自动切换到新的主实例。
需要说明的是,在本发明实施例中,当集群节点的数量发生变化时,只需修改zone文件中域名对应的IP地址和端口号即可。
同理,当Redis客户端的数量增加时,也只需在DNS服务器上增加zone文件即可。
当DNS服务器发生故障时,Redis客户端与集群节点之间已建立的连接并不会受到影响,仍然能够正常工作。
通过以上描述可以看出,在本发明实施例提供的技术方案中,当客户端需要连接数据库时,可以向DNS服务器发送集群节点信息获取请求,由DNS服务器根据集群节点信息获取请求中携带的客户端的域名确定匹配的目标集群节点信息;客户端接收到DNS服务器发送的目标集群节点信息时,可以根据目标集群节点信息与目标集群节点的主实例进行连接,并进行数据处理,与现有多Redis服务实例部署组网中,需要分别为各Redis客户端配置集群节点中主实例的IP地址和端口号的实现方案相比,提高了数据处理的效率。
请参见图5,为本发明实施例提供的一种数据处理装置的结构示意图,其中,该装置可以应用于上述方法实施例中的客户端,如图5所示,该数据处理装置可以包括:
发送单元510,用于向DNS服务器发送集群节点信息获取请求,所述集群节点信息获取请求中携带有所述客户端的域名,以使所述DNS服务器根据所述客户端的域名确定匹配的目标集群节点信息;
接收单元520,用于接收所述DNS服务器发送的所述目标集群节点信息;
处理单元530,用于根据所述目标集群节点信息与所述目标集群节点的主实例进行连接,并进行数据处理。
请一并参见图6,为本发明实施例提供的另一种数据处理装置的结构示意图,如图6所示,在图5所示的数据处理装置的基础上,图6所示数据处理装置还可以包括:
生成单元540,用于根据预先配置的设备标识生成域名。
在可选实施例中,所述目标集群节点信息包括所述目标集群节点中的监控进程的IP地址和端口号;
所述处理单元530,具体用于根据所述目标集群节点中的监控进程的IP地址和端口号与所述目标集群节点中的监控进程建立第一连接;通过所述第一连接获取所述目标集群节点的主实例的IP地址和端口号;根据所述目标集群节点的主实例的IP地址和端口号,与所述目标集群节点的主实例建立第二连接。
在可选实施例中,所述目标集群节点信息包括所述目标集群节点的主实例的IP地址和端口号;
所述处理单元530,还用于当所述接收单元520接收到所述目标集群节点中的监控进程发送的主实例切换通知消息时,根据所述主实例通知消息中携带的所述目标集群节点中切换后的主实例的IP地址和端口号,与所述目标集群节点中切换后的主实例建立第三连接,并进行数据处理。
请参见图7,为本发明实施例提供的一种数据处理装置的结构示意图,其中,该数据处理装置可以应用于上述方法实施例中的DNS服务器,如图7所示,该数据处理装置可以包括:
接收单元710,用于接收客户端发送的集群节点信息获取请求,其中,所述集群节点信息获取请求中携带有所述客户端的域名;
确定单元720,用于根据所述客户端的域名确定匹配的目标集群节点信息;
发送单元730,用于向所述客户端发送所述目标集群节点信息,以使所述客户端根据所述目标集群节点信息与所述目标集群节点的主实例进行连接,并进行数据处理。
在可选实施例中,所述确定单元720,具体用于根据所述Redis客户端的域名查询预先配置的域名与集群节点信息的对应关系,以确定与所述Redis客户端的域名匹配的目标集群节点信息。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,当客户端需要连接数据库时,可以向DNS服务器发送集群节点信息获取请求,由DNS服务器根据集群节点信息获取请求中携带的客户端的域名确定匹配的目标集群节点信息;客户端接收到DNS服务器发送的目标集群节点信息时,可以根据目标集群节点信息与目标集群节点的主实例进行连接,并进行数据处理,与现有多Redis服务实例部署组网中,需要分别为各Redis客户端配置集群节点中主实例的IP地址和端口号的实现方案相比,提高了数据处理的效率。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种数据处理方法,应用于Redis客户端,其特征在于,所述方法包括:
向域名系统DNS服务器发送Redis服务实例的集群节点信息获取请求,所述集群节点信息获取请求中携带有所述客户端的域名,以使所述DNS服务器根据所述客户端的域名确定匹配的目标集群节点信息;所述DNS服务器预先配置域名与Redis服务实例的集群节点信息的对应关系;
接收所述DNS服务器发送的所述目标集群节点信息;
根据所述目标集群节点信息与所述目标集群节点的Redis主实例进行连接,并进行数据处理。
2.根据权利要求1所述的方法,其特征在于,所述向DNS服务器发送Redis服务实例的集群节点信息获取请求之前,所述方法还包括:
根据预先配置的设备标识生成域名。
3.根据权利要求1所述的方法,其特征在于,所述目标集群节点信息包括所述目标集群节点中的监控进程的IP地址和端口号;
所述根据所述目标集群节点信息与所述目标集群节点的Redis主实例进行连接,包括:
根据所述目标集群节点中的监控进程的IP地址和端口号与所述目标集群节点中的监控进程建立第一连接;
通过所述第一连接获取所述目标集群节点的Redis主实例的IP地址和端口号;
根据所述目标集群节点的主实例的IP地址和端口号,与所述目标集群节点的主实例建立第二连接。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述目标集群节点信息包括所述目标集群节点的主实例的IP地址和端口号,所述方法还包括:
当接收到所述目标集群节点中的监控进程发送的主实例切换通知消息时,根据所述主实例通知消息中携带的所述目标集群节点中切换后的Redis主实例的IP地址和端口号,与所述目标集群节点中切换后的Redis主实例建立第三连接,并进行数据处理。
5.一种数据处理方法,应用于域名系统DNS服务器,其特征在于,所述DNS服务器预先配置域名与Redis服务实例的集群节点信息的对应关系,所述方法包括:
接收客户端发送的Redis服务实例的集群节点信息获取请求,其中,所述集群节点信息获取请求中携带有所述客户端的域名;
根据所述客户端的域名确定匹配的目标集群节点信息;
向所述客户端发送所述目标集群节点信息,以使所述客户端根据所述目标集群节点信息与所述目标集群节点的Redis主实例进行连接,并进行数据处理。
6.一种数据处理装置,应用于Redis客户端,其特征在于,所述装置包括:
发送单元,用于向域名系统DNS服务器发送Redis服务实例的集群节点信息获取请求,所述集群节点信息获取请求中携带有所述客户端的域名,以使所述DNS服务器根据所述客户端的域名确定匹配的目标集群节点信息;所述DNS服务器预先配置域名与集群节点信息的对应关系;
接收单元,用于接收所述DNS服务器发送的所述目标集群节点信息;
处理单元,用于根据所述目标集群节点信息与所述目标集群节点的Redis主实例进行连接,并进行数据处理。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
生成单元,用于根据预先配置的设备标识生成域名。
8.根据权利要求6所述的装置,其特征在于,所述目标集群节点信息包括所述目标集群节点中的监控进程的IP地址和端口号;
所述处理单元,具体用于根据所述目标集群节点中的监控进程的IP地址和端口号与所述目标集群节点中的监控进程建立第一连接;通过所述第一连接获取所述目标集群节点的主实例的IP地址和端口号;根据所述目标集群节点的主实例的IP地址和端口号,与所述目标集群节点的Redis主实例建立第二连接。
9.根据权利要求6-8任一项所述的装置,其特征在于,所述目标集群节点信息包括所述目标集群节点的主实例的IP地址和端口号;
所述处理单元,还用于当所述接收单元接收到所述目标集群节点中的监控进程发送的主实例切换通知消息时,根据所述主实例通知消息中携带的所述目标集群节点中切换后的Redis主实例的IP地址和端口号,与所述目标集群节点中切换后的Redis主实例建立第三连接,并进行数据处理。
10.一种数据处理装置,应用于域名系统DNS服务器,其特征在于,所述DNS服务器预先配置域名与Redis服务实例的集群节点信息的对应关系,所述装置包括:
接收单元,用于接收客户端发送的Redis服务实例的集群节点信息获取请求,其中,所述集群节点信息获取请求中携带有所述客户端的域名;
确定单元,用于根据所述客户端的域名确定匹配的目标集群节点信息;
发送单元,用于向所述客户端发送所述目标集群节点信息,以使所述客户端根据所述目标集群节点信息与所述目标集群节点的Redis主实例进行连接,并进行数据处理。
CN201810987315.8A 2018-08-28 2018-08-28 一种数据处理方法及装置 Active CN110290163B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810987315.8A CN110290163B (zh) 2018-08-28 2018-08-28 一种数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810987315.8A CN110290163B (zh) 2018-08-28 2018-08-28 一种数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN110290163A CN110290163A (zh) 2019-09-27
CN110290163B true CN110290163B (zh) 2022-03-25

Family

ID=68001000

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810987315.8A Active CN110290163B (zh) 2018-08-28 2018-08-28 一种数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN110290163B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111901395B (zh) * 2020-07-07 2024-03-22 青岛海尔科技有限公司 多集群切换方法及装置
CN111917846A (zh) * 2020-07-19 2020-11-10 中信银行股份有限公司 一种Kafka集群切换方法、装置、系统、电子设备及可读存储介质
CN116302335A (zh) * 2023-02-22 2023-06-23 阿里云计算有限公司 数据处理方法以及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1988553A (zh) * 2006-12-14 2007-06-27 杭州华为三康技术有限公司 一种实现域名注册的方法和装置
CN104199957A (zh) * 2014-09-17 2014-12-10 合一网络技术(北京)有限公司 一种Redis通用代理的实现方法
CN106303428A (zh) * 2016-08-18 2017-01-04 杭州蛮牛科技有限公司 一种安防云平台
WO2017051420A1 (en) * 2015-09-21 2017-03-30 Yissum Research Development Company Of The Hebrew University Of Jerusalem Ltd. Advanced computer implementation for crawling and/or detecting related electronically catalogued data using improved metadata processing

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080062997A1 (en) * 2006-09-07 2008-03-13 Go2Call.Com, Inc. Intelligent call routing through distributed VoIP networks
US20110271005A1 (en) * 2010-04-30 2011-11-03 Sonus Networks, Inc. Load balancing among voip server groups
CN105208026A (zh) * 2015-09-29 2015-12-30 努比亚技术有限公司 一种防止恶意攻击方法及网络系统
US20170185678A1 (en) * 2015-12-28 2017-06-29 Le Holdings (Beijing) Co., Ltd. Crawler system and method
CN105915633B (zh) * 2016-06-02 2019-12-10 北京百度网讯科技有限公司 自动化运维系统和方法
CN106534328B (zh) * 2016-11-28 2020-01-31 网宿科技股份有限公司 节点连接方法及分布式计算系统
CN107181834B (zh) * 2017-06-13 2021-02-12 聚好看科技股份有限公司 一种redis管理虚拟IP地址的方法、装置及redis系统
CN107426341A (zh) * 2017-09-13 2017-12-01 北京智芯微电子科技有限公司 App与服务端交互的系统及方法
CN108063814B (zh) * 2017-12-15 2021-09-21 杭州迪普科技股份有限公司 一种负载均衡方法及装置
CN108183961A (zh) * 2018-01-04 2018-06-19 中电福富信息科技有限公司 一种基于Redis的分布式缓存方法
CN108123963B (zh) * 2018-01-19 2021-05-11 深圳市易仓科技有限公司 一种跨境电商的api辅助系统及处理方法
CN108259252A (zh) * 2018-04-17 2018-07-06 四川长虹电器股份有限公司 一种基于twemproxy的Redis集群方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1988553A (zh) * 2006-12-14 2007-06-27 杭州华为三康技术有限公司 一种实现域名注册的方法和装置
CN104199957A (zh) * 2014-09-17 2014-12-10 合一网络技术(北京)有限公司 一种Redis通用代理的实现方法
WO2017051420A1 (en) * 2015-09-21 2017-03-30 Yissum Research Development Company Of The Hebrew University Of Jerusalem Ltd. Advanced computer implementation for crawling and/or detecting related electronically catalogued data using improved metadata processing
CN106303428A (zh) * 2016-08-18 2017-01-04 杭州蛮牛科技有限公司 一种安防云平台

Also Published As

Publication number Publication date
CN110290163A (zh) 2019-09-27

Similar Documents

Publication Publication Date Title
CN110290163B (zh) 一种数据处理方法及装置
CN113746887A (zh) 一种跨集群数据请求处理方法、设备及存储介质
CN111259072B (zh) 数据同步方法、装置、电子设备和计算机可读存储介质
US10911353B2 (en) Architecture for a network visibility system
CN110391940B (zh) 服务地址的响应方法、装置、系统、设备和存储介质
TW201401828A (zh) 管理主機名稱及ip位址的雲端伺服器,及雲端伺服器使用的管理方法
US10530669B2 (en) Network service aware routers, and applications thereof
CN109842686B (zh) 一种实现跨区域集群调度的负载均衡系统
WO2015088324A2 (en) System and method for managing a faulty node in a distributed computing system
US6502130B1 (en) System and method for collecting connectivity data of an area network
CN115086312A (zh) 实现kubernetes服务跨集群通信的方法及系统
JPH1027147A (ja) サーバアドレス管理方式
CN108683532B (zh) 一种主备同步方法及装置
CN108737586A (zh) 一种域名查询服务的灾备切换方法和装置
US20150229520A1 (en) Network monitoring system, communication device, network management method
JP2023543323A (ja) スマートカード管理装置の分散式管理システム及び管理方法
EP1654653B1 (en) Active storage area network discovery system and method
US11750560B2 (en) Zero Touch Provisioning for a network element over IPv6 unnumbered interfaces in OSPFv3 networks
US20210184938A1 (en) Computing device and methods for synchronizing networking information with a topology server
US20230146880A1 (en) Management system and management method
US11075812B2 (en) Server and methods for synchronizing networking information with client devices
CN109756543B (zh) 程序关联关系的解耦系统和方法
KR102097102B1 (ko) 차세대 주소 할당 정보 동기화 시스템 및 그 방법
JP2000354062A (ja) 通信システムおよび方法
CN115314419B (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