CN113949704B - 一种用户信息处理方法及服务器集群 - Google Patents

一种用户信息处理方法及服务器集群 Download PDF

Info

Publication number
CN113949704B
CN113949704B CN202111204497.5A CN202111204497A CN113949704B CN 113949704 B CN113949704 B CN 113949704B CN 202111204497 A CN202111204497 A CN 202111204497A CN 113949704 B CN113949704 B CN 113949704B
Authority
CN
China
Prior art keywords
server
slave
type
user information
database
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
CN202111204497.5A
Other languages
English (en)
Other versions
CN113949704A (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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN202111204497.5A priority Critical patent/CN113949704B/zh
Publication of CN113949704A publication Critical patent/CN113949704A/zh
Application granted granted Critical
Publication of CN113949704B publication Critical patent/CN113949704B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1073Registration or de-registration
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Telephonic Communication Services (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种用户信息处理方法及服务器集群,在接收到第一终端发送的账号注册请求后,确定与主服务器之间的通信状态;如果通信状态为第一通信状态,生成第一类型用户标识;向主服务器发送第一类型用户标识和账号注册请求中携带的用户信息,并向第一终端返回注册成功的消息,第一类型用户标识和用户信息存储在主数据库中;如果通信状态为第二通信状态,生成第二类型用户标识,第二类型用户标识与第一类型用户标识不同;将第二类型用户标识和用户信息存储在第一本地数据库中,并向第一终端返回注册成功的消息,这样在和主服务器之间的通信异常时能够在第一本地数据库中存储用户信息和第二类型用户标识,完成账号注册,提高容错性。

Description

一种用户信息处理方法及服务器集群
技术领域
本申请属于数据处理技术领域,尤其涉及一种用户信息处理方法及服务器集群。
背景技术
为了保证用户信息一致性,多数行业中的用户信息是基于多服务器部署,一主多从的数据存储架构。例如多服务器部署包括一个主服务器和多个从服务器,主服务器设置有主数据库和从数据库,每个从服务器设置有从数据库,用户在注册账户时,用户信息写入到主数据库中,然后再从主数据库同步至各个从数据库中,各个从数据库是主服务器的从数据库和每个从服务器的从数据库。例如用户信息包括登录方式、账号等,以密码形式登录时用户信息还包括密码。
如果从服务器和主服务器之间出现网络抖动(说明出现严重延迟)、从服务器和主服务器之间连接的数据通道故障等,使得用户在注册账户时用户信息无法在规定时间内写入到主服务器中,进一步也无法由主服务器在规定时间内向其他从服务器进行同步,用户信息无法完成写入环节和同步环节,注册账户的从服务器反馈注册失败的响应,账户注册失败。
发明内容
本申请提供一种用户信息处理方法及服务器集群。
一方面,本申请提供一种用户信息处理方法,所述方法应用于服务器集群中,所述服务器集群包括主服务器、第一从服务器和第二从服务器,所述主服务器设置有主数据库和第一从数据库,所述第一从服务器设置有第二从数据库和第一本地数据库,所述第二从服务器设置有第三从数据库和第二本地数据库,所述方法包括:
所述第一从服务器在接收到第一终端发送的账号注册请求后,确定与所述主服务器之间的通信状态;
如果所述通信状态为第一通信状态,所述第一从服务器生成第一类型用户标识,所述第一通信状态指示所述第一从服务器与所述主服务器之间的通信正常;
所述第一从服务器向所述主服务器发送所述第一类型用户标识和所述账号注册请求中携带的用户信息,并向所述第一终端返回注册成功的消息,所述第一类型用户标识和所述用户信息存储在主数据库中,所述主数据库同步所述第一类型用户标识和所述用户信息至所述第一从数据库、所述第二从数据库和所述第三从数据库中;
如果所述通信状态为第二通信状态,所述第一从服务器生成第二类型用户标识,所述第二类型用户标识与所述第一类型用户标识不同,所述第二通信状态指示所述第一从服务器与所述主服务器之间的通信异常;
所述第一从服务器将所述第二类型用户标识和所述账号注册请求中携带的用户信息存储在所述第一本地数据库中,并向所述第一终端返回注册成功的消息。
可选的,所述方法还包括:
如果所述通信状态从所述第二通信状态切换至所述第一通信状态,所述第一从服务器将所述第二类型用户标识调整为第一类型用户标识,向所述主服务器发送调整成的第一类型用户标识以及所述调整成的第一类型用户标识对应的用户信息;
所述第一从服务器将所述第二类型用户标识和所述用户信息从所述第一本地数据库中删除。
可选的,所述方法还包括:
校验设备查找目标数据库中是否存在目标用户信息,所述目标用户信息是目标数据库中与所述调整成的第一类型用户标识对应的用户信息相匹配的用户信息,所述目标数据库是所述主数据库、所述第一从数据库、所述第二从数据库和所述第三从数据库中的至少一个数据库,所述校验设备为所述主服务器、所述第一从服务器和所述第二从服务器中的一个;
如果所述校验设备查找到所述目标用户信息,所述校验设备根据所述调整成的第一类型用户标识的注册时间和所述目标用户信息对应的第一类型用户标识的注册时间,对所述目标数据库进行去重处理。
可选的,所述校验设备根据所述调整成的第一类型用户标识的注册时间和所述目标用户信息对应的第一类型用户标识的注册时间,对所述目标数据库进行去重处理包括:
如果所述调整成的第一类型用户标识中的注册时间早于所述目标用户信息对应的第一类型用户标识中的注册时间,所述校验设备删除所述目标用户信息,保留所述调整成的第一类型用户标识对应的用户信息;
如果所述调整成的第一类型用户标识中的注册时间晚于所述目标用户信息对应的第一类型用户标识中的注册时间,所述校验设备删除所述调整成的第一类型用户标识对应的用户信息,保留所述目标用户信息。
可选的,所述第一类型用户标识和所述第二类型用户标识包括:注册时间、服务器标识和降级位;
所述服务器标识用于指向响应账号注册请求的服务器;
所述第一类型用户标识中降级位的取值用于指示响应账号注册请求的服务器进行账号注册时能正常访问所述主服务器;
所述第二类型用户标识中降级位的取值用于指示响应账号注册请求的服务器进行账号注册时对所述主服务器的访问异常。
可选的,所述方法还包括:
查询设备接收第二终端发送的用户信息查询请求,所述查询设备为所述第二从服务器或所述主服务器;
所述查询设备从所述用户信息查询请求中提取用户标识;
如果所述用户标识为第二类型用户标识,所述查询设备向所述第一从服务器转发所述用户信息查询请求;
所述第一从服务器从所述第一本地数据库中查找与所述用户标识匹配的用户信息,将所查找到的用户信息发送给所述查询设备,由所述查询设备将所查询到的用户信息转发给所述第二终端。
可选的,所述查询设备向所述第一从服务器转发所述用户信息查询请求包括:
所述查询设备根据所述用户标识中的服务器标识确定所述用户信息查询请求指向所述第一从服务器;
所述查询设备如果确定所述第一从服务器的域名是所述查询设备的备用域名,所述查询设备向所述第一从服务器转发所述用户信息查询请求;
所述查询设备如果确定所述第一从服务器的域名不是所述查询设备的备用域名,所述查询设备向所述备用域名指向的目标服务器转发所述用户信息查询请求,再由所述目标服务器继续根据所述目标服务器的备用域名转发所述用户信息查询请求直至转发给所述第一从服务器。
另一方面,本申请提供一种服务器集群,所述服务器集群包括主服务器、第一从服务器和第二从服务器,所述主服务器设置有主数据库和第一从数据库,所述第一从服务器设置有第二从数据库和第一本地数据库,所述第二从服务器设置有第三从数据库和第二本地数据库;所述第一从服务器和所述第二从服务器中的任一从服务器用于执行以下步骤:
所述从服务器在接收到第一终端发送的账号注册请求后,确定与所述主服务器之间的通信状态;
如果所述通信状态为第一通信状态,所述从服务器生成第一类型用户标识,所述第一通信状态指示所述从服务器与所述主服务器之间的通信正常;
所述从服务器向所述主服务器发送所述第一类型用户标识和所述账号注册请求中携带的用户信息,并向所述第一终端返回注册成功的消息,所述第一类型用户标识和所述用户信息存储在主数据库中,所述主数据库同步所述第一类型用户标识和所述用户信息至所述第一从数据库、所述第二从数据库和所述第三从数据库中;
如果所述通信状态为第二通信状态,所述从服务器生成第二类型用户标识,所述第二类型用户标识与所述第一类型用户标识不同,所述第二通信状态指示所述从服务器与所述主服务器之间的通信异常;
所述从服务器将所述第二类型用户标识和所述账号注册请求中携带的用户信息存储在所述从服务器对应的本地数据库中,并向所述第一终端返回注册成功的消息。
可选的,所述从服务器,还用于如果所述通信状态从所述第二通信状态切换至所述第一通信状态,将所述第二类型用户标识调整为第一类型用户标识,向所述主服务器发送调整成的第一类型用户标识以及所述调整成的第一类型用户标识对应的用户信息;将所述第二类型用户标识和所述用户信息从所述从服务器对应的本地数据库中删除。
可选的,所述第一类型用户标识和所述第二类型用户标识包括:注册时间、服务器标识和降级位;
所述服务器标识用于指向响应账号注册请求的服务器;
所述第一类型用户标识中降级位的取值用于指示响应账号注册请求的服务器进行账号注册时能正常访问所述主服务器;
所述第二类型用户标识中降级位的取值用于指示响应账号注册请求的服务器进行账号注册时对所述主服务器的访问异常。
上述用户信息处理方法及服务器集群,第一从服务器在接收到第一终端发送的账号注册请求后,确定与主服务器之间的通信状态;如果通信状态为第一通信状态,第一从服务器生成第一类型用户标识;第一从服务器向主服务器发送第一类型用户标识和账号注册请求中携带的用户信息,并向第一终端返回注册成功的消息,第一类型用户标识和用户信息存储在主数据库中,主数据库同步第一类型用户标识和用户信息至第一从数据库、第二从数据库和第三从数据库中;如果通信状态为第二通信状态,第一从服务器生成第二类型用户标识,第二类型用户标识与第一类型用户标识不同;第一从服务器将第二类型用户标识和账号注册请求中携带的用户信息存储在第一本地数据库中,并向第一终端返回注册成功的消息,这样在第一从服务器和主服务器之间的通信异常时第一从服务器能够在第一本地数据库中存储用户信息和第二类型用户标识,完成账号注册,解决第一从服务器和主服务器之间异常时无法进行账号注册的问题,提高容错性。
并且在第一从服务器和主服务器之间的通信正常时生成第一类型用户标识,在第一从服务器和主服务器之间的通信异常时生成第二类型用户标识,不同类型的用户标识与用户信息同时存储在数据库中,以不同类型的用户标识对用户信息进行标注,从而能够利用不同类型的用户信息标注出存储/注册用户信息时的通信情况。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种应用场景的示意图;
图2是本申请实施例提供的另一种应用场景的示意图;
图3是本申请实施例提供的一种用户信息处理方法的流程图;
图4是本申请实施例提供的用户标识的示意图;
图5是本申请实施例提供的另一种用户信息处理方法的流程图;
图6是本申请实施例提供的再一种用户信息处理方法的信令图;
图7是本申请实施例提供的再一种应用场景的示意图;
图8是本申请实施例提供的服务器集群对应的信令图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了保证用户信息一致性,多数行业中的用户信息是基于多服务器部署,一主多从的数据存储架构。多服务器部署类似于服务器集群形式,一个服务器集群可以包括一个主服务器和多个从服务器。以图1所示服务器集群为例进行说明,其中图1所示服务器集群可以包括:主服务器1、第一从服务器2和第二从服务器3。主服务器1设置有主数据库和从数据库,第一从服务器2和第二从服务器3各自设置有一个从数据库。
用户在注册账户时,用户可以选择以账号密码注册还是以短信验证码注册,不同方式注册用户信息不同,如账号密码注册时用户信息可以包括账号和密码,短信验证码注册时用户信息可以包括手机号码;在用户注册成功后用户信息写入到主服务器1的主数据库中,然后再从主数据库同步至各个从数据库中,完成账号注册。但是第一从服务器2与主服务器1之间的通信异常,例如出现网络抖动或者数据通道故障等,第一从服务器2无法访问主服务器1的主数据库,从而使得用户信息写入主数据库失败,第一从服务器2无法完成账号注册。同样的第二从服务器3与主服务器1之间的通信异常,也会导致第二从服务器3无法完成账号注册。
鉴于该问题,本实施例对上述服务器集群进行调整,在第一从服务器和第二从服务器中分别设置一个本地数据库,如图2所示,第一从服务器2中设置有第一本地数据库,第二从服务器3中设置有第二本地数据库。第一本地数据库和第二本地数据库的作用是在与主服务器1之间的通信异常时,第一从服务器2和第二从服务器3能够将用户信息写入到各自的本地数据库中。如第一从服务器2在与主服务器1之间的通信异常时,第一从服务器2将用户信息写入到第一本地数据库中,完成账号注册。图2是服务器集群的一种示例,本实施例不限定服务器集群中从服务器的数量、各个服务器中从数据库和本地数据库的数量;例如服务器集群包括两个或两个以上的服务器,每个服务器包括一个或一个以上的从数据库。
相对应的本实施例提供一种用户信息处理方法,其可选流程图如图3所示,可以包括以下步骤:
101、第一从服务器在接收到第一终端发送的账号注册请求后,确定与主服务器之间的通信状态。其中账号注册请求用于指示用户使用第一终端进行账号注册,此时第一从服务器需要确定与主服务器之间的通信状态,以确定用户信息所写入的数据库。
第一从服务器与主服务器之间的通信状态用于指示第一从服务器与主服务器之间是否能够正常通信,例如如果第一从服务器与主服务器之间没有出现网络抖动或者两个服务器之间的数据通道正常,确定第一从服务器与主服务器之间通信正常,相对应的第一从服务器与主服务器之间的通信状态为第一通信状态;如果第一从服务器与主服务器之间存在网络抖动或者两个服务器之间的数据通道故障,确定第一从服务器与主服务器之间的通信异常,相对应的第一从服务器与主服务器之间的通信状态为第二通信状态。对于第一从服务器采用的网络监控方式,本实施例不再阐述。
数据通道可以是第一从服务器和主服务器中专门在账号注册和用户信息查询时使用的通道(简称专线),如果第一从服务器和主服务器之间交互其他信息,如视频信息,则第一从服务器和主服务之间需要通过其他数据通道进行传输,以防止其他信息占用专线,可加快账号注册和用户信息查询时的数据交互速度,提高账号注册效率和用户信息查询效率。同样的第二从服务器和主服务器之间也可建立一条专线,第二从服务器的专线是在第二从服务器进行账号注册和与主服务器进行用户信息查询时使用,具体不再阐述。
102、如果通信状态为第一通信状态,第一从服务器生成第一类型用户标识。在本实施例中,第一类型用户标识用于指示当前账户注册是发生在第一从服务器中,且用于指示在进行账户注册时第一从服务器可以正常访问主服务器。如果第一类型用户标识标记用户信息,说明用户信息是在正常访问主服务器时正常注册,该用户信息能够同步至主数据库和各从数据库中。
也就是说,第一类型用户标识可用于指示账户注册时第一从服务器可正常访问主服务器,在本实施例中,第一类型用户标识可通过一个第一预设标记表示,如第一类型用户标识可通过“1”表示,第一类型用户标识对应用户信息。
在本实施例中,第一类型用户标识除可以采用第一预设标记表示之外,本实施例还提供另一种形式的第一类型用户标识。其中,第一类型用户标识包括注册时间、服务器标识和降级位。注册时间作为一个时间戳,用于表示注册用户信息的时间;服务器标识用于指向响应账号注册请求的服务器;第一类型用户标识中降级位的取值用于指示响应账号注册请求的服务器进行账号注册时能正常访问主服务器。
103、第一从服务器向主服务器发送第一类型用户标识和账号注册请求中携带的用户信息,并向第一终端返回注册成功的消息,第一类型用户标识和用户信息存储在主数据库中,主数据库同步第一类型用户标识和用户信息至第一从数据库至第三从数据库中。
第一类型用户标识可以用来标记用户信息,如第一类型用户标识与用户信息以一对一形式存储,又例如第一类型用户标识为用户信息的标签,第一类型用户标识可以作为用户信息的一种属性,以同时存储第一类型用户标识和用户信息。在主数据库存储第一类型用户标识和用户信息之后,主数据库同步这些数据至第一从数据库至第三从数据库中,即主数据库同步这些数据至第一从数据库、第二从数据库和第三从数据库中。
104、如果通信状态为第二通信状态,第一从服务器生成第二类型用户标识,第二类型用户标识与第一类型用户标识不同。
在本实施例中,第二类型用户标识用于指示当前账户注册是发生在第一从服务器中,且用于指示在进行账户注册时第一从服务器对主服务器的访问异常。如果第二类型用户标识标记用户信息,说明用户信息是在异常访问主服务器时注册,该用户信息不能同步至主数据库和各从数据库中。
也就是说,第二类型用户标识可用于指示账户注册时第一从服务器与主服务器之间的通信异常,在本实施例中,第二类型用户标识可通过一个第二预设标记表示,第二预设标记与第一预设标记不同;如第二类型用户标识可通过“0”表示,第二类型用户标识同样对应用户信息。
在本实施例中,第二类型用户标识除可以采用第二预设标记表示之外,本实施例还提供另一种形式的第二类型用户标识。其中,第二类型用户标识包括注册时间、服务器标识和降级位。注册时间作为一个时间戳,用于表示注册用户信息的时间;服务器标识用于指向响应账号注册请求的服务器;第二类型用户标识中降级位的取值用于指示响应账号注册请求的服务器进行账号注册时能对主服务器的访问异常。
例如本实施例提供图4所示用户标识,用户标识是一个Long(长整型)数据,64个二进制位数据,时间戳占用28位;服务器标识占用2位,最多可表示4个服务器,如果服务器集群中的服务器数量超过4个,需要增加服务器标识占用的位数;降级位占用1位,利用降级位的取值来表示响应账号注册请求的服务器进行账号注册时是否能够正常访问主服务器。
第一类型用户标识中降级位的取值用于指示响应账号注册请求的服务器进行账号注册时能正常访问主服务器。第二类型用户标识中降级位的取值用于指示响应账号注册请求的服务器进行账号注册时对主服务器的访问异常。例如降级位的取值为0,表示正常访问主服务器,则用户标识为第一类型用户标识;降级位的取值为1,表示访问主服务器异常,则用户标识为第二类型用户标识。
相对应的,第一从服务器生成第一类型用户标识和第二类型用户标识的一种可行方式是:获得注册时间,例如将接收到账号注册请求的时间作为注册时间或者在账号注册请求中携带注册时间(如第一终端启动账号注册的时间);获得第一从服务器的服务器标识;根据第一从服务器和主服务器之间的通信状态,确定降级位的取值,例如如果通信状态为第一通信状态,降级位的取值为0,表示第一从服务器进行账号注册时能正常访问主服务器,如果通信状态为第二通信状态,降级位的取值为1,表示第一从服务器进行账号注册时对主服务器的访问异常;将注册时间、第一从服务器的服务器标识和降级位的取值封装,得到第一类型用户标识或第二类型用户标识。
在本实施例中,第一类型用户标识中降级位的取值还能够表示第一类型用户标识是一个全局标识,在进行账号注册时第一类型用户标识和用户信息可同步至主数据库和各个从数据库中;第二类型用户标识中降级位的取值还能够表示第二类型用户标识是一个降级标识,在进行账号注册时第二类型用户标识和用户信息只存储在第一从服务器的第一本地数据库中。
在这里需要说明的一点是,用户信息可以作为用户标识中的一个字段,将账号注册请求中携带的用户信息封装在第一类型用户标识或第二类型用户标识,那么第一从服务器在存储时存储第一类型用户标识或第二类型用户标识即可。
105、第一从服务器将第二类型用户标识和账号注册请求中携带的用户信息存储在第一本地数据库中,并向第一终端返回注册成功的消息。
第二类型用户标识可以用来标记用户信息,如第二类型用户标识与用户信息以一对一形式存储,又例如第二类型用户标识为用户信息的标签,第二类型用户标识可以作为用户信息的一种属性,以同时存储第二类型用户标识和用户信息。
在存储第二类型用户标识时,第一从服务器与主服务器之间的通信异常,第一从服务器无法访问主服务器中的主数据库,因此第二类型用户标识和用户信息不能存储至主数据库中,也不能同步至其他从数据库中。为了保证在第一从服务器与主服务器之间的通信异常时仍能够完成注册,第一从服务器增加第一本地数据库,在第一从服务器与主服务器之间的通信异常时将第二类型用户标识和用户信息存储到第一本地数据库中,完成第二类型用户标识和用户信息的写入,从而完成注册,用户的账号注册成功。
上述用户信息处理方法,第一从服务器在接收到第一终端发送的账号注册请求后,确定与主服务器之间的通信状态;如果通信状态为第一通信状态,第一从服务器生成第一类型用户标识;第一从服务器向主服务器发送第一类型用户标识和账号注册请求中携带的用户信息,并向第一终端返回注册成功的消息,第一类型用户标识和用户信息存储在主数据库中,主数据库同步第一类型用户标识和用户信息至第一从数据库至第三从数据库中;如果通信状态为第二通信状态,第一从服务器生成第二类型用户标识,第二类型用户标识与第一类型用户标识不同;第一从服务器将第二类型用户标识和账号注册请求中携带的用户信息存储在第一本地数据库中,并向第一终端返回注册成功的消息,这样在第一从服务器和主服务器之间的通信异常时第一从服务器能够在第一本地数据库中存储用户信息和第二类型用户标识,完成账号注册,解决第一从服务器和主服务器之间异常时无法进行账号注册的问题,提高容错性。
并且在第一从服务器和主服务器之间的通信正常时生成第一类型用户标识,在第一从服务器和主服务器之间的通信异常时生成第二类型用户标识,不同类型的用户标识与用户信息同时存储在数据库中,以不同类型的用户标识对用户信息进行标注,从而能够利用不同类型的用户信息标注出存储/注册用户信息时的通信情况。
请参见图5,其示出了本申请实施例提供的另一种用户信息处理方法的可选流程,可以包括以下步骤:
101、第一从服务器在接收到第一终端发送的账号注册请求后,确定与主服务器之间的通信状态。
102、如果通信状态为第一通信状态,第一从服务器生成第一类型用户标识。
103、第一从服务器向主服务器发送第一类型用户标识和账号注册请求中携带的用户信息,并向第一终端返回注册成功的消息,第一类型用户标识和用户信息存储在主数据库中,主数据库同步第一类型用户标识和用户信息至第一从数据库至第三从数据库中。
104、如果通信状态为第二通信状态,第一从服务器生成第二类型用户标识,第二类型用户标识与第一类型用户标识不同。
105、第一从服务器将第二类型用户标识和账号注册请求中携带的用户信息存储在第一本地数据库中,并向第一终端返回注册成功的消息。
106、如果通信状态从第二通信状态切换至第一通信状态,第一从服务器将第二类型用户标识调整为第一类型用户标识,向主服务器发送调整成的第一类型用户标识以及调整成的第一类型用户标识对应的用户信息。
第一从服务器在向第一本地数据库中存储第二类型用户标识和用户信息之后,对第一从服务器与主服务器之间的通信状态进行持续监测,如果监测到从第二通信状态切换至第一通信状态,将第二类型用户标识和用户信息同步至主数据库中,由主数据库同步至各个从数据库中。例如第一从服务器能够通过消息机制实现将第二类型用户标识和用户信息同步至主数据库和各个从数据库中,如果通信状态仍为第二通信状态,说明第一从服务器和主服务器之间的通信仍异常,通过消息机制无法成功同步第二类型用户标识和用户信息;第一从服务器会继续重试直至第二类型用户标识和用户信息同步成功。
在本实施例中,如果监测到从第二通信状态切换至第一通信状态,第一从服务器可以对第二类型用户标识进行调整,将其调整为第一类型用户标识。例如通过调整第二类型用户标识中降级位的取值,使其成为第一类型用户标识。调整成的第一类型用户标识和其对应的用户信息可存储至主数据库中,然后同步至各个从数据库中,从而能够在访问主服务器、第一从服务器和第二从服务器中的至少一个服务器时能够获取到该用户信息。
107、第一从服务器将第二类型用户标识和用户信息从第一本地数据库中删除。因为调整成的第一类型用户标识和其对应的用户信息可以存储至第一从服务器的第二从数据库中,如果第一本地数据库中继续存储该用户信息,会存在重复存储的问题,为此本实施例可以将第二类型用户标识和用户信息从第一本地数据库中删除,注意删除的第二类型用户标识和用户信息是被调整为第一类型用户标识的第二类型用户标识及其对应的用户信息。
上述用户信息处理方法,如果通信状态从第二通信状态切换至第一通信状态,第一从服务器将第二类型用户标识调整为第一类型用户标识,向主服务器发送调整成的第一类型用户标识以及调整成的第一类型用户标识对应的用户信息,从而使得主数据库以及各个从数据库能够同步存储调整成的第一类型用户标识及其对应的用户信息。并且第一从服务器将第二类型用户标识和用户信息从第一本地数据库中删除,以免相同用户信息同时存储在第一本地数据库和第二从数据库中。
在第一从服务器和主服务器之间的通信异常时,用户可能使用第一终端在第二从服务器或主服务器上进行登录注册,虽然在第一本地数据库中写入了用户信息,但是因为通信异常不能同步至其他服务器的数据库中,在使用第一终端在第二从服务器或主服务器上进行登录注册时仍会在其他服务器上进行注册,存储用户信息,从而会出现一个用户信息注册两次的场景,导致数据重复存储。
为此本实施例提供的用户信息处理方法能够进行数据校验,数据校验可以是主服务器、第一从服务器和第二从服务器中的一个服务器作为校验设备,对各自数据库进行数据校验。其过程如下:
校验设备查找目标数据库中是否存在目标用户信息,目标用户信息是目标数据库中与调整成的第一类型用户标识对应的用户信息相匹配的用户信息,目标数据库是主数据库、第一从数据库、第二从数据库和第三从数据库中的至少一个数据库;两个用户信息相匹配可以是两个用户信息相同或两个用户信息中包括相同内容,如两个用户信息中包括相同的手机号、账号等。
如果校验设备查找到目标用户信息,校验设备根据调整成的第一类型用户标识的注册时间和目标用户信息对应的第一类型用户标识的注册时间,对目标数据库进行去重处理。第一类型用户标识的注册时间可以位于第一类型用户标识中,也可以是在进行账户注册时记录注册时间,将第一类型用户标识和注册时间对应。
在本实施例中,去重处理的一种可行方式是,如果调整成的第一类型用户标识的注册时间早于目标用户信息对应的第一类型用户标识的注册时间,校验设备删除目标用户信息,保留调整成的第一类型用户标识对应的用户信息;如果调整成的第一类型用户标识的注册时间晚于目标用户信息对应的第一类型用户标识的注册时间,校验设备删除调整成的第一类型用户标识对应的用户信息,保留目标用户信息,以在目标数据库中保留最后一次注册的用户信息。
例如主服务器对主数据库进行数据校验,主服务器查找主数据库中是否存在目标用户信息,如果存储在目标用户信息,说明在第一从服务器上进行账户注册的过程中,第二从服务器或主服务器也使用相同用户信息进行账号注册,出现了一个用户信息注册两次且两次注册都成功的场景。针对这一情况主服务器需要对主数据库中两个相同的用户信息进行去重处理,以保留两个相同的用户信息中的一个用户信息。在进行去重处理时根据两个相同的用户信息的注册时间进行去重处理,例如可在主数据库中保留最后一次注册的用户信息。主服务器在确定保留最后一次注册的用户信息时,主服务器可以向各个从数据库发送去重指令,指示所删除的用户信息,相对应的所删除的用户信息对应的第一类型用户标识也被删除,防止出现第一类型用户标识没有对应用户信息的情况。
针对用户使用一个用户信息注册两次的场景,本实施例通过去重判断可查找到被重复注册的用户信息,如从目标数据库中查找到目标用户信息,然后基于调整成的第一类型用户标识的注册时间和目标用户信息对应的第一类型用户标识的注册时间,对目标数据库进行去重处理,避免数据重复存储。
请参见图6,其示出了本申请实施例提供的再一种用户信息处理方法的信令图,阐述了在第一从服务器与主服务器之间的通信异常时从第一本地数据库中提取用户信息的过程,对用户信息的查询可以是借助第二从服务器和主服务器中的一个服务器(简称为查询设备)进行查询,可以包括以下步骤:
201、第一从服务器在接收到第一终端发送的账号注册请求后,确定与主服务器之间的通信状态。
202、如果通信状态为第一通信状态,第一从服务器生成第一类型用户标识。
203、第一从服务器向主服务器发送第一类型用户标识和账号注册请求中携带的用户信息,并向第一终端返回注册成功的消息,第一类型用户标识和用户信息存储在主数据库中,主数据库同步第一类型用户标识和用户信息至第一从数据库至第三从数据库中。
204、如果通信状态为第二通信状态,第一从服务器生成第二类型用户标识,第二类型用户标识与第一类型用户标识不同。
205、第一从服务器将第二类型用户标识和账号注册请求中携带的用户信息存储在第一本地数据库中,并向第一终端返回注册成功的消息。
206、查询设备接收第二终端发送的用户信息查询请求,查询设备为第二从服务器或主服务器。
用户通过第一终端在第一从服务器侧完成账号注册后,作为业务方的用户可以获取到第二类型用户标识,从第二从服务器或主服务器侧发起用户信息查询。例如作为业务方的用户使用第二终端发送用户信息查询请求,用户信息查询请求中携带有上述第二类型用户标识,以查找第二类型用户标识对应的用户信息。
207、查询设备从用户信息查询请求中提取用户标识。
208、如果用户标识为第二类型用户标识,查询设备向第一从服务器转发用户信息查询请求。
如果用户标识为第二类型用户标识,说明该用户标识是在与主服务器之间的通信异常时生成,相对应的第二类型用户标识和用户信息可能还没有写入到主数据库中,进一步的也没有写入到各个从数据库中,因此无论是第二从服务器还是主服务器在接收到用户信息查询请求后不能从自身数据库中查找到用户信息。在这种情况下,查询设备可以基于第二类型用户标识,确定第二类型用户标识是第一从服务器生成,从第一从服务器中查找到用户信息的可能性很大,查询设备可以向第一从服务器转发用户信息查询请求。
209、第一从服务器从第一本地数据库中查找与用户标识匹配的用户信息,将所查找到的用户信息发送给查询设备,由查询设备将所查询到的用户信息转发给第二终端。
其中查询设备向第一从服务器转发用户信息查询请求的过程是,查询设备根据用户标识中的服务器标识确定用户信息查询请求指向第一从服务器;查询设备如果确定第一从服务器的域名是查询设备的备用域名,查询设备向第一从服务器转发用户信息查询请求;查询设备如果确定第一从服务器的域名不是查询设备的备用域名,查询设备向备用域名指向的目标服务器转发用户信息查询请求,再由目标服务器继续根据目标服务器的备用域名转发用户信息查询请求直至转发给第一从服务器。由此,查询设备可以基于备用域名实现用户信息查询请求的自动化路由,以将用户信息查询请求发送至第一从服务器。
在本实施例中,查询设备的备用域名指示出能够与查询设备进行一跳信息交互的服务器,一跳信息交互是查询设备与具有备用域名的服务器直接进行信息交互,两者不需要借助其他节点转发信息。如果查询设备的备用域名没有指向第一从服务器,说明查询设备不能与第一从服务器进行信息交互,需要将用户信息查询请求发送给备用域名指向的目标服务器,再由目标服务器根据自身的备用域名进行转发直至转发给第一从服务器。
上述图6所示用户信息处理方法提供自动化路由策略,支持第一从服务器与主服务器之间的通信异常期间,不同地域的服务器仍能够路由到用户信息,实现用户信息查询的可用性,这样在各服务器之间的网络链路保持较低成本的可用性情况下,通过自动化路由策略可提高业务服务到更高的数量级高度。
下面结合示例进行说明,如图7所示服务器集群,服务器集群可以包括:主服务器1、第一从服务器2和第二从服务器3。主服务器1设置有主数据库和第一从数据库,第一从服务器2和第二从服务器3各自设置有一个从数据库,如第一从服务器2中设置有第二从数据库,第二从服务器3中设置有第三从数据库。第一从服务器2还设置有第一本地数据库,第二从服务器3还设置有第二本地数据库。
主服务器1、第一从服务器2和第二从服务器3的域名分别为:dc1.passport.qiyi.domain、dc2.passport.qiyi.domain、dc3.passport.qiyi.domain;主服务器1的备用域名是dc2.passport.qiyi.domain、dc3.passport.qiyi.domain,第一从服务器2的备用域名是dc1.passport.qiyi.domain、dc3.passport.qiyi.domain,第二从服务器3的备用域名是dc1.passport.qiyi.domain、dc2.passport.qiyi.domain。
第一用户在第一从服务器2上进行账号注册,在进行账号注册时第一从服务器2确定与主服务器1之间的通信异常。第一从服务器2生成第二类型用户标识,存储第二类型用户标识和用户信息至第一本地数据库中。作为业务方的第二用户和作为业务方的第三用户获取到第一用户的第二类型用户标识。第二用户可以利用主服务器1查询用户信息,同样的第三用户可以利用第二从服务器3查询用户信息,其过程如下(图7绘制出第二用户查询的过程):
如果第二用户通过自身终端向主服务器1发送用户信息查询请求,主服务器1确定用户信息查询请求中的用户标识为第二类型用户标识且服务器标识指向第一从服务器2,由此主服务器1可以确定第二类型用户标识是在第一从服务器2与主服务器1之间的通信异常时生成,用户信息是在通信异常时注册,主服务器1的主数据库和第一从数据库中都没有要查询的用户信息。因为主服务器1的备用域名dc2.passport.qiyi.domain访问失败,主服务器1降级或者熔断到dc3.passport.qiyi.domaind,即向第二从服务器3转发用户信息查询请求,再由第二从服务器3向备用域名dc2.passport.qiyi.domain,即向第一从服务器2转发用户信息查询请求,第一从服务器2从第一本地数据库中查找到用户信息,并依次通过第二从服务器3和主服务器1转发用户信息至第二用户。由此在第一从服务器2与主服务器1之间的通信异常时,第一从服务器2仍能够成功注册,且从第二从服务器3和主服务器1访问用户信息也都能够触达到第一从服务器2,实现对用户信息的查询访问。
第三用户通过自身终端向第二从服务器3发送用户信息查询请求,第二从服务器3确定用户信息查询请求中的用户标识为第二类型用户标识且服务器标识指向第一从服务器2,由此第二从服务器3可以确定第二类型用户标识是在第一从服务器2与主服务器1之间的通信异常时生成,用户信息是在通信异常时注册,第二从服务器3的第三从数据库中没有要查询的用户信息,第一从服务器2中存储该用户信息的可能性很大。又因为第一从服务器2是第二从服务器3的备用域名,两者之间的通信正常,第二从服务器3向第一从服务器2转发用户信息查询请求,第一从服务器2从第一本地数据库中查找到用户信息,并转发给第二从服务器3,再由第二从服务器3转发给第三用户。
在本实施例中,查询设备的备用域名可以由用户手动添加并由用户确定各备用域名的优先级,如上述图7所示备用域名可以以列表形式存储,位于列表中的顺序可作为备用域名的优先级,如在列表中的顺序越靠前,其优先级越高,在实施自动化路由策略时可根据备用域名的优先级选择用于转发信息的服务器,如按照备用域名的优先级从高到低的顺序选择,优先级越高的服务器会先进行转发。
此外查询设备的备用域名还可以根据各服务器之间的网络延迟状况,自动选择备用域名,并根据各服务器之间的网络延迟状态确定备用域名的优先级,如网络延迟越小优先级越高,从而根据网络延迟状况实时调整备用域名,这样在实施自动化路由策略,可优选网络延迟越小的服务器进行转发,提高成功率和速度。本实施例对备用域名的确定过程不进行限定。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
与上述方法实施例相对应,本申请实施例还提供一种服务器集群,服务器集群包括主服务器、第一从服务器和第二从服务器,主服务器设置有主数据库和第一从数据库,第一从服务器设置有第二从数据库和第一本地数据库,第二从服务器设置有第三从数据库和第二本地数据库;如上述图2所示。第一从服务器和第二从服务器中的任一从服务器可以接收账号注册请求,进行账号注册。以第一从服务器接收账号注册请求为例,第一从服务器与主服务器和发送账号注册请求的第一终端之间的交互过程如图8所示,可以包括以下步骤:
301、第一终端向第一从服务器发送账号注册请求。
302、第一从服务器在接收到第一终端发送的账号注册请求后,确定与主服务器之间的通信状态。其中账号注册请求用于指示用户使用第一终端进行账号注册,此时第一从服务器需要确定与主服务器之间的通信状态,以确定用户信息所写入的数据库。
303、如果通信状态为第一通信状态,第一从服务器生成第一类型用户标识,第一通信状态指示第一从服务器与主服务器之间的通信正常。在本实施例中,第一类型用户标识用于指示当前账户注册是发生在第一从服务器中,且用于指示在进行账户注册时第一从服务器可以正常访问主服务器。如果第一类型用户标识标记用户信息,说明用户信息是在正常访问主服务器时正常注册,该用户信息能够同步至主数据库和各从数据库中。
也就是说,第一类型用户标识可用于指示账户注册时第一从服务器可正常访问主服务器,在本实施例中,第一类型用户标识可通过一个第一预设标记表示,如第一类型用户标识可通过“1”表示,第一类型用户标识对应用户信息。
在本实施例中,第一类型用户标识除可以采用预设标记表示之外,本实施例还提供另一种形式的第一类型用户标识。其中,第一类型用户标识包括注册时间、服务器标识和降级位。注册时间作为一个时间戳,用于表示注册用户信息的时间;服务器标识用于指向响应账号注册请求的服务器;第一类型用户标识中降级位的取值用于指示响应账号注册请求的服务器进行账号注册时能正常访问主服务器。
304、第一从服务器向主服务器发送第一类型用户标识和账号注册请求中携带的用户信息。
305、主服务器将第一类型用户标识和用户信息存储在主数据库中,并进行数据同步,以将第一类型用户标识和用户信息同步至第一从数据库、第二从数据库和第三从数据库中。
第一类型用户标识可以用来标记用户信息,如第一类型用户标识与用户信息以一对一形式存储,又例如第一类型用户标识为用户信息的标签,第一类型用户标识可以作为用户信息的一种属性,以同时存储第一类型用户标识和用户信息。在主数据库存储第一类型用户标识和用户信息之后,主数据库同步这些数据至第一从数据库至第三从数据库中,即主数据库同步这些数据至第一从数据库、第二从数据库和第三从数据库中。
306、第一从服务器向第一终端返回注册成功的消息。
307、如果通信状态为第二通信状态,第一从服务器生成第二类型用户标识,第二类型用户标识与第一类型用户标识不同,第二通信状态指示第一从服务器与主服务器之间的通信异常。
在本实施例中,第二类型用户标识用于指示当前账户注册是发生在第一从服务器中,且用于指示在进行账户注册时第一从服务器对主服务器的访问异常。如果第二类型用户标识标记用户信息,说明用户信息是在异常访问主服务器时无法正常注册,该用户信息不能同步至主数据库和各从数据库中。
也就是说,第二类型用户标识可用于指示账户注册时第一从服务器与主服务器之间的通信异常,在本实施例中,第二类型用户标识可通过一个第二预设标记表示,第二预设标记与第一预设标记不同;如第二类型用户标识可通过“0”表示,第二类型用户标识同样对应用户信息。
在本实施例中,第二类型用户标识除可以采用预设标记表示之外,本实施例还提供另一种形式的第二类型用户标识。其中,第二类型用户标识包括注册时间、服务器标识和降级位。注册时间作为一个时间戳,用于表示注册用户信息的时间;服务器标识用于指向响应账号注册请求的服务器;第二类型用户标识中降级位的取值用于指示响应账号注册请求的服务器进行账号注册时能对主服务器的访问异常。
例如本实施例提供图4所示用户标识,用户标识是一个Long(长整型)数据,64个二进制位数据,时间戳占用28位、服务器标识占用2位,最多可表示4个服务器、降级位占用1位,利用降级位的取值来表示响应账号注册请求的服务器进行账号注册时是否能够正常访问主服务器。
第一类型用户标识中降级位的取值用于指示响应账号注册请求的服务器进行账号注册时能正常访问主服务器。第二类型用户标识中降级位的取值用于指示响应账号注册请求的服务器进行账号注册时对主服务器的访问异常。例如降级位的取值为0,表示正常访问主服务器,则用户标识为第一类型用户标识;降级位的取值为1,表示访问主服务器异常,则用户标识为第二类型用户标识。
相对应的,第一从服务器生成第一类型用户标识和第二类型用户标识的一种可行方式是:获得注册时间,例如将接收到账号注册请求的时间作为注册时间或者在账号注册请求中携带注册时间(如第一终端启动账号注册的时间);获得第一从服务器的服务器标识;根据服务器和主服务器之间的通信状态,确定降级位的取值,例如如果通信状态为第一通信状态,降级位的取值为0,表示第一从服务器进行账号注册时能正常访问主服务器,如果通信状态为第二通信状态,降级位的取值为1,表示第一从服务器进行账号注册时对主服务器的访问异常;将注册时间、第一从服务器的服务器标识和降级位的取值封装,得到第一类型用户标识或第二类型用户标识。
在本实施例中,第一类型用户标识中降级位的取值还能够表示第一类型用户标识是一个全局标识,在进行账号注册时第一类型用户标识和用户信息可同步至主数据库和各个从数据库中;第二类型用户标识中降级位的取值还能够表示第二类型用户标识是一个降级标识,在进行账号注册时第二类型用户标识和用户信息只存储在第一从服务器对应的第一本地数据库中。
在这里需要说明的一点是,用户信息可以作为用户标识中的一个字段,将账号注册请求中携带的用户信息封装在第一类型用户标识或第二类型用户标识,那么第一从服务器在存储时存储第一类型用户标识或第二类型用户标识即可。
308、第一从服务器将第二类型用户标识和账号注册请求中携带的用户信息存储在第一从服务器对应的第一本地数据库中。
第二类型用户标识可以用来标记用户信息,如第二类型用户标识与用户信息以一对一形式存储,又例如第二类型用户标识为用户信息的标签,第二类型用户标识可以作为用户信息的一种属性,以同时存储第二类型用户标识和用户信息。
在存储第二类型用户标识时,第一从服务器与主服务器之间的通信异常,第一从服务器无法访问主服务器中的主数据库,因此第二类型用户标识和用户信息不能存储至主数据库中,也不能同步至其他从数据库中。为了保证在第一从服务器与主服务器之间的通信异常时仍能够完成注册,第一从服务器增加本地数据库,在第一从服务器与主服务器之间的通信异常时将第二类型用户标识和用户信息存储到本地数据库中,完成第二类型用户标识和用户信息的写入,从而完成注册,用户的账号注册成功。
309、第一从服务器向第一终端返回注册成功的消息。
在本实施例中,第一从服务器在向本地数据库中存储第二类型用户标识和用户信息之后,对其与主服务器之间的通信状态进行持续监测,如果监测到从第二通信状态切换至第一通信状态,将第二类型用户标识和用户信息同步至主数据库中,由主数据库同步至各个从数据库中。例如第一从服务器能够通过消息机制实现将第二类型用户标识和用户信息同步至主数据库和各个从数据库中,如果通信状态仍为第二通信状态,说明第一从服务器和主服务器之间的通信仍异常,通过消息机制无法成功同步第二类型用户标识和用户信息;第一从服务器会继续重试直至第二类型用户标识和用户信息同步成功。
在本实施例中,如果监测到从第二通信状态切换至第一通信状态,第一从服务器可以将第二类型用户标识调整为第一类型用户标识,向主服务器发送调整成的第一类型用户标识以及调整成的第一类型用户标识对应的用户信息;将第二类型用户标识和用户信息从第一从服务器对应的本地数据库中删除。例如通过调整第二类型用户标识中降级位的取值,使其成为第一类型用户标识。调整成的第一类型用户标识和其对应的用户信息可存储至主数据库中,然后同步至各个从数据库中,从而能够在访问主服务器、第一从服务器和第二从服务器中的至少一个服务器时能够获取到该用户信息。
因为调整成的第一类型用户标识和其对应的用户信息可以存储至第一从服务器的第二从数据库中,如果第一从服务器的第一本地数据库中继续存储该用户信息,会存在重复存储的问题,为此本实施例可以将第二类型用户标识和用户信息从本地数据库中删除,注意删除的第二类型用户标识和用户信息是被调整为第一类型用户标识的第二类型用户标识及其对应的用户信息。
在任一从服务器和主服务器之间的通信异常时,用户可能使用第一终端在其他从服务器或主服务器上进行登录注册,虽然在响应账号注册请求的从服务器对应的本地数据库中写入了用户信息,但是因为通信异常不能同步至其他服务器的数据库中,在使用第一终端在其他从服务器或主服务器上进行登录注册时仍会在其他服务器上进行注册,存储用户信息,从而会出现一个用户信息注册两次的场景,导致数据重复存储。
为此本实施例提供的用户信息处理方法能够进行数据校验,数据校验可以是主服务器、第一从服务器和第二从服务器中的一个服务器作为校验设备,对各自数据库进行数据校验。其过程如下:
校验设备查找目标数据库中是否存在目标用户信息,目标用户信息是目标数据库中与调整成的第一类型用户标识对应的用户信息相匹配的用户信息,目标数据库是主数据库、第一从数据库、第二从数据库和第三从数据库中的至少一个数据库;两个用户信息相匹配可以是两个用户信息相同或两个用户信息中包括相同内容,如两个用户信息中包括相同的手机号、账号等。如果校验设备查找到目标用户信息,校验设备根据调整成的第一类型用户标识的注册时间和目标用户信息对应的第一类型用户标识的注册时间,对目标数据库进行去重处理。第一类型用户标识的注册时间可以位于第一类型用户标识中,也可以是在进行账户注册时记录注册时间,将第一类型用户标识和注册时间对应。
在本实施例中,去重处理的一种可行方式是,如果调整成的第一类型用户标识的注册时间早于目标用户信息对应的第一类型用户标识的注册时间,校验设备删除目标用户信息,保留调整成的第一类型用户标识对应的用户信息;如果调整成的第一类型用户标识中的注册时间晚于目标用户信息对应的第一类型用户标识中的注册时间,校验设备删除调整成的第一类型用户标识对应的用户信息,保留目标用户信息,以在目标数据库中保留最后一次注册的用户信息。
在本实施例中,除接收账号注册请求的从服务器之外的其他从服务器和主服务器还能够作为查询设备使用,例如第二从服务器或主服务器可作为查询设备使用,查询设备执行以下步骤:
查询设备接收第二终端发送的用户信息查询请求,查询设备从用户信息查询请求中提取用户标识;如果用户标识为第二类型用户标识,查询设备向第一从服务器转发用户信息查询请求;
第一从服务器从第一本地数据库中查找与用户标识匹配的用户信息,将所查找到的用户信息发送给查询设备,由查询设备将所查询到的用户信息转发给第二终端。
其中,查询设备向第一从服务器转发用户信息查询请求包括:查询设备根据用户标识中的服务器标识确定用户信息查询请求指向第一从服务器;查询设备如果确定第一从服务器的域名是查询设备的备用域名,查询设备向第一从服务器转发用户信息查询请求;查询设备如果确定第一从服务器的域名不是查询设备的备用域名,查询设备向备用域名指向的目标服务器转发用户信息查询请求,再由目标服务器继续根据目标服务器的备用域名转发用户信息查询请求直至转发给第一从服务器,具体过程请参见上述方法实施例中的相关说明。
需要说明的是,本说明书中的各个实施例可以采用递进的方式描述、本说明书中各实施例中记载的特征可以相互替换或者组合,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于服务器集群实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (8)

1.一种用户信息处理方法,其特征在于,所述方法应用于服务器集群中,所述服务器集群包括主服务器、第一从服务器和第二从服务器,所述主服务器设置有主数据库和第一从数据库,所述第一从服务器设置有第二从数据库和第一本地数据库,所述第二从服务器设置有第三从数据库和第二本地数据库,所述方法包括:
所述第一从服务器在接收到第一终端发送的账号注册请求后,确定与所述主服务器之间的通信状态;
如果所述通信状态为第一通信状态,所述第一从服务器生成第一类型用户标识,所述第一通信状态指示所述第一从服务器与所述主服务器之间的通信正常;
所述第一从服务器向所述主服务器发送所述第一类型用户标识和所述账号注册请求中携带的用户信息,并向所述第一终端返回注册成功的消息,所述第一类型用户标识和所述用户信息存储在主数据库中,所述主数据库同步所述第一类型用户标识和所述用户信息至所述第一从数据库、所述第二从数据库和所述第三从数据库中;
如果所述通信状态为第二通信状态,所述第一从服务器生成第二类型用户标识,所述第二类型用户标识与所述第一类型用户标识不同,所述第二通信状态指示所述第一从服务器与所述主服务器之间的通信异常;
所述第一从服务器将所述第二类型用户标识和所述账号注册请求中携带的用户信息存储在所述第一本地数据库中,并向所述第一终端返回注册成功的消息;
如果所述通信状态从所述第二通信状态切换至所述第一通信状态,所述第一从服务器将所述第二类型用户标识调整为第一类型用户标识,向所述主服务器发送调整成的第一类型用户标识以及所述调整成的第一类型用户标识对应的用户信息;
所述第一从服务器将所述第二类型用户标识和所述用户信息从所述第一本地数据库中删除。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
校验设备查找目标数据库中是否存在目标用户信息,所述目标用户信息是目标数据库中与所述调整成的第一类型用户标识对应的用户信息相匹配的用户信息,所述目标数据库是所述主数据库、所述第一从数据库、所述第二从数据库和所述第三从数据库中的至少一个数据库,所述校验设备为所述主服务器、所述第一从服务器和所述第二从服务器中的一个;
如果所述校验设备查找到所述目标用户信息,所述校验设备根据所述调整成的第一类型用户标识的注册时间和所述目标用户信息对应的第一类型用户标识的注册时间,对所述目标数据库进行去重处理。
3.根据权利要求2所述的方法,其特征在于,所述校验设备根据所述调整成的第一类型用户标识的注册时间和所述目标用户信息对应的第一类型用户标识的注册时间,对所述目标数据库进行去重处理包括:
如果所述调整成的第一类型用户标识的注册时间早于所述目标用户信息对应的第一类型用户标识的注册时间,所述校验设备删除所述目标用户信息,保留所述调整成的第一类型用户标识对应的用户信息;
如果所述调整成的第一类型用户标识的注册时间晚于所述目标用户信息对应的第一类型用户标识的注册时间,所述校验设备删除所述调整成的第一类型用户标识对应的用户信息,保留所述目标用户信息。
4.根据权利要求1至3中任意一项所述的方法,其特征在于,所述第一类型用户标识和所述第二类型用户标识包括:注册时间、服务器标识和降级位;
所述服务器标识用于指向响应账号注册请求的服务器;
所述第一类型用户标识中降级位的取值用于指示响应账号注册请求的服务器进行账号注册时能正常访问所述主服务器;
所述第二类型用户标识中降级位的取值用于指示响应账号注册请求的服务器进行账号注册时对所述主服务器的访问异常。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
查询设备接收第二终端发送的用户信息查询请求,所述查询设备为所述第二从服务器或所述主服务器;
所述查询设备从所述用户信息查询请求中提取用户标识;
如果所述用户标识为第二类型用户标识,所述查询设备向所述第一从服务器转发所述用户信息查询请求;
所述第一从服务器从所述第一本地数据库中查找与所述用户标识匹配的用户信息,将所查找到的用户信息发送给所述查询设备,由所述查询设备将所查询到的用户信息转发给所述第二终端。
6.根据权利要求5所述的方法,其特征在于,所述查询设备向所述第一从服务器转发所述用户信息查询请求包括:
所述查询设备根据所述用户标识中的服务器标识确定所述用户信息查询请求指向所述第一从服务器;
所述查询设备如果确定所述第一从服务器的域名是所述查询设备的备用域名,所述查询设备向所述第一从服务器转发所述用户信息查询请求;
所述查询设备如果确定所述第一从服务器的域名不是所述查询设备的备用域名,所述查询设备向所述备用域名指向的目标服务器转发所述用户信息查询请求,再由所述目标服务器继续根据所述目标服务器的备用域名转发所述用户信息查询请求直至转发给所述第一从服务器。
7.一种服务器集群,其特征在于,所述服务器集群包括主服务器、第一从服务器和第二从服务器,所述主服务器设置有主数据库和第一从数据库,所述第一从服务器设置有第二从数据库和第一本地数据库,所述第二从服务器设置有第三从数据库和第二本地数据库;所述第一从服务器和所述第二从服务器中的任一从服务器用于执行以下步骤:
所述从服务器在接收到第一终端发送的账号注册请求后,确定与所述主服务器之间的通信状态;
如果所述通信状态为第一通信状态,所述从服务器生成第一类型用户标识,所述第一通信状态指示所述从服务器与所述主服务器之间的通信正常;
所述从服务器向所述主服务器发送所述第一类型用户标识和所述账号注册请求中携带的用户信息,并向所述第一终端返回注册成功的消息,所述第一类型用户标识和所述用户信息存储在主数据库中,所述主数据库同步所述第一类型用户标识和所述用户信息至所述第一从数据库、所述第二从数据库和所述第三从数据库中;
如果所述通信状态为第二通信状态,所述从服务器生成第二类型用户标识,所述第二类型用户标识与所述第一类型用户标识不同,所述第二通信状态指示所述从服务器与所述主服务器之间的通信异常;
所述从服务器将所述第二类型用户标识和所述账号注册请求中携带的用户信息存储在所述从服务器对应的本地数据库中,并向所述第一终端返回注册成功的消息;
所述从服务器,还用于如果所述通信状态从所述第二通信状态切换至所述第一通信状态,将所述第二类型用户标识调整为第一类型用户标识,向所述主服务器发送调整成的第一类型用户标识以及所述调整成的第一类型用户标识对应的用户信息;将所述第二类型用户标识和所述用户信息从所述从服务器对应的本地数据库中删除。
8.根据权利要求7所述的服务器集群,其特征在于,所述第一类型用户标识和所述第二类型用户标识包括:注册时间、服务器标识和降级位;
所述服务器标识用于指向响应账号注册请求的服务器;
所述第一类型用户标识中降级位的取值用于指示响应账号注册请求的服务器进行账号注册时能正常访问所述主服务器;
所述第二类型用户标识中降级位的取值用于指示响应账号注册请求的服务器进行账号注册时对所述主服务器的访问异常。
CN202111204497.5A 2021-10-15 2021-10-15 一种用户信息处理方法及服务器集群 Active CN113949704B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111204497.5A CN113949704B (zh) 2021-10-15 2021-10-15 一种用户信息处理方法及服务器集群

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111204497.5A CN113949704B (zh) 2021-10-15 2021-10-15 一种用户信息处理方法及服务器集群

Publications (2)

Publication Number Publication Date
CN113949704A CN113949704A (zh) 2022-01-18
CN113949704B true CN113949704B (zh) 2024-03-08

Family

ID=79330679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111204497.5A Active CN113949704B (zh) 2021-10-15 2021-10-15 一种用户信息处理方法及服务器集群

Country Status (1)

Country Link
CN (1) CN113949704B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090041624A (ko) * 2007-10-24 2009-04-29 주식회사 케이티 액티브-액티브 데이터베이스 서버 시스템에서 데이터동기화 장치 및 방법
WO2016169410A1 (zh) * 2015-04-21 2016-10-27 腾讯科技(深圳)有限公司 登录方法、服务器和登录系统
CN106557592A (zh) * 2016-12-02 2017-04-05 中铁程科技有限责任公司 数据同步方法、装置及服务器集群
CN111339139A (zh) * 2020-02-21 2020-06-26 广州市百果园信息技术有限公司 数据处理方法、装置、设备和存储介质
CN111385134A (zh) * 2018-12-30 2020-07-07 浙江宇视科技有限公司 接入设备动态迁移方法及设备接入平台
US10805374B1 (en) * 2019-08-19 2020-10-13 Palantir Technologies Inc. Systems and methods for providing real-time streaming data processing at edge servers
CN113138882A (zh) * 2021-05-12 2021-07-20 平安国际智慧城市科技股份有限公司 基于MySQL集群的自动化部署方法、装置及相关设备
CN113157812A (zh) * 2021-05-21 2021-07-23 湖南快乐阳光互动娱乐传媒有限公司 一种分布式多集群状态类数据的同步方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10050832B2 (en) * 2014-09-19 2018-08-14 Sybase 365, Inc. Server clustering in mobile computing environment

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090041624A (ko) * 2007-10-24 2009-04-29 주식회사 케이티 액티브-액티브 데이터베이스 서버 시스템에서 데이터동기화 장치 및 방법
WO2016169410A1 (zh) * 2015-04-21 2016-10-27 腾讯科技(深圳)有限公司 登录方法、服务器和登录系统
CN106557592A (zh) * 2016-12-02 2017-04-05 中铁程科技有限责任公司 数据同步方法、装置及服务器集群
CN111385134A (zh) * 2018-12-30 2020-07-07 浙江宇视科技有限公司 接入设备动态迁移方法及设备接入平台
US10805374B1 (en) * 2019-08-19 2020-10-13 Palantir Technologies Inc. Systems and methods for providing real-time streaming data processing at edge servers
CN111339139A (zh) * 2020-02-21 2020-06-26 广州市百果园信息技术有限公司 数据处理方法、装置、设备和存储介质
CN113138882A (zh) * 2021-05-12 2021-07-20 平安国际智慧城市科技股份有限公司 基于MySQL集群的自动化部署方法、装置及相关设备
CN113157812A (zh) * 2021-05-21 2021-07-23 湖南快乐阳光互动娱乐传媒有限公司 一种分布式多集群状态类数据的同步方法及系统

Also Published As

Publication number Publication date
CN113949704A (zh) 2022-01-18

Similar Documents

Publication Publication Date Title
US9231988B2 (en) Intercluster repository synchronizer and method of synchronizing objects using a synchronization indicator and shared metadata
US8856584B2 (en) Transport control server that modifies routing information
US20150156136A1 (en) Cluster federation and trust
US20100034206A1 (en) Data storage system in communication network and data information processing method
US20200026619A1 (en) History management method, history management apparatus and history management system
CN109407977B (zh) 一种大数据分布式存储管理方法及系统
US20120042197A1 (en) Method for resource information backup operation based on peer to peer network and peer to peer network thereof.
CN102148850A (zh) 一种集群系统的业务处理方法及集群系统
CN103258036A (zh) 一种基于p2p的分布式实时搜索引擎
CN111901705B (zh) 一种olt设备的omci功能虚拟化系统
CN107370809A (zh) 数据同步方法及数据搜索系统
CN109600410A (zh) 数据存储系统以及方法
CN108063832B (zh) 一种云存储系统及其存储方法
CN101344882B (zh) 数据查询方法、插入方法及删除方法
CN104516795A (zh) 一种数据存取方法及系统
CN108509296B (zh) 一种处理设备故障的方法和系统
US11128622B2 (en) Method for processing data request and system therefor, access device, and storage device
US8204898B2 (en) Multi-site common directory and method for using the multi-site common directory
CN113949704B (zh) 一种用户信息处理方法及服务器集群
US20080162588A1 (en) Repository synchronization in a ranked repository cluster
CN105323271B (zh) 一种云计算系统以及云计算系统的处理方法和装置
US20120054157A1 (en) Database apparatus, database consistency system, and database consistency method
US7126909B2 (en) Centralized management technique of call control data
CN107465706B (zh) 一种基于无线通信网络的分布式数据对象存储装置
CN107291575B (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