CN107968847A - 高可用id生成器及其id生成方法和装置 - Google Patents

高可用id生成器及其id生成方法和装置 Download PDF

Info

Publication number
CN107968847A
CN107968847A CN201711115529.8A CN201711115529A CN107968847A CN 107968847 A CN107968847 A CN 107968847A CN 201711115529 A CN201711115529 A CN 201711115529A CN 107968847 A CN107968847 A CN 107968847A
Authority
CN
China
Prior art keywords
database
primary database
makers
primary
normal operation
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.)
Pending
Application number
CN201711115529.8A
Other languages
English (en)
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.)
Shenzhen Huayu Culture Media Co Ltd
Original Assignee
Shenzhen Huayu Culture Media 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 Shenzhen Huayu Culture Media Co Ltd filed Critical Shenzhen Huayu Culture Media Co Ltd
Priority to CN201711115529.8A priority Critical patent/CN107968847A/zh
Publication of CN107968847A publication Critical patent/CN107968847A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • H04L61/3015Name registration, generation or assignment
    • 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/25Integrating or interfacing systems involving database management systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种高可用ID生成器及其ID生成方法和装置,包括分部式部署的一个主数据库,至少一个从数据库以及至少两个哨兵进程;主数据库以及从数据库通过负载均衡服务,对外提供唯一IP和端口用于服务;主数据库运行正常时用于接收ID生成请求,并根据请求生成唯一ID,ID为自增ID;当哨兵进程检测到主数据库故障之后,将主数据库与一个运行正常的从数据库进行主备切换;并回调负载均衡接口,修改每个数据库的访问权重。从数据库用于在切换成主数据库之后接收ID生成请求,并根据请求生成唯一ID;本发明中提供的高可用ID生成器及其ID生成方法和装置,主数据库与从数据库可以进行主备切换进行ID生成,保障了高可用性,避免出现单点故障。

Description

高可用ID生成器及其ID生成方法和装置
技术领域
本发明涉及互联网技术领域,特别涉及一种高可用ID生成器及其ID生成方法和装置。
背景技术
ID作为一种身份标识,在互联网中识别作用很大。目前,ID生成具有多种实现方案:
1、用mysql(一种关系数据库管理系统)自增ID生成唯一ID
缺点是:在单个数据库或者读写分离如一主多从数据库的情况下,只有一个主数据库可以生成ID,存在单点故障的风险。在此基础上的优化版是设置多个Master数据库,每个数据库的起始值和步长不一样,如Master1生成1,3,5;Master2生成2,4,6等;这样规避了单点故障的风险,但是存在项目配置比较麻烦的问题,不同机器上的项目,需要连接不同的Master数据库。
2、使用UUID(Universally Unique Identifier,通用唯一识别码)作为ID
缺点是:没有排序,不能表现出趋势递增;同时,UUID往往是字符串存储,在对ID进行查询时,查询效率较低。
发明内容
本发明的主要目的为提供一种高可用ID生成器及其ID生成方法和装置,克服目前生成ID时出现单点故障的缺陷。
本发明提出一种高可用ID生成器,包括分部式部署的一个主数据库、至少一个从数据库以及至少两个哨兵进程;所述主数据库以及从数据库通过云服务器的负载均衡服务,对外提供唯一IP和端口用于服务;
所述主数据库运行正常时用于接收ID生成请求,并根据所述请求生成唯一ID,所述ID为自增ID;所述哨兵进程检测到主数据库故障之后,将所述主数据库与一个运行正常的从数据库进行主备切换;
所述从数据库用于在切换成主数据库之后接收ID生成请求,并根据所述请求生成唯一ID。
进一步地,所述主数据库以及从数据库均为Redis数据库,所述从数据库设置为两个。
进一步地,所述主数据库检测到故障之后,与一个运行正常的从数据库进行主备切换具体包括:
所述主数据库检测到故障之后,回调云服务器的负载均衡端口,修改负载均衡将一个运行正常的从数据库设置为主数据库;同时将检测出故障的主数据库设置为从数据库。
本发明还提供了一种高可用ID生成器的ID生成方法,所述高可用ID生成器包括分部式部署的一个主数据库以及至少一个从数据库;所述主数据库以及从数据库通过云服务器的负载均衡服务,对外提供唯一IP和端口用于服务;
所述ID生成方法包括以下步骤:
在运行正常的主数据库上接收ID生成请求;
根据所述请求生成唯一ID,所述ID为自增ID。
进一步地,所述主数据库以及从数据库均为Redis数据库,所述从数据库设置为两个。
进一步地,所述在运行正常的主数据库上接收ID生成请求的步骤之前包括:
检测当前的主数据库的运行状态;
进一步地,所述检测当前的主数据库的运行状态的步骤之后,包括:
若检测到当前的主数据库运行出现故障,则检测当前的从数据库的运行状态;
选择一个运行正常的从数据库;
将所述运行正常的从数据库与当前运行出现故障的主数据库进行主备切换。
进一步地,所述将所述运行正常的从数据库与当前运行出现故障的主数据库进行主备切换的步骤,具体包括:
回调云服务器的负载均衡提供接口,修改权重;将所述运行正常的从数据库权重设置为100;同时将当前运行出现故障的主数据库权重设置为0。
本发明还提供了一种高可用ID生成器的ID生成装置,所述高可用ID生成器包括分部式部署的一个主数据库以及至少一个从数据库;所述主数据库以及从数据库通过云服务器的负载均衡服务,对外提供唯一IP和端口用于服务;
所述ID生成装置包括:
接收单元,用于在运行正常的主数据库上接收ID生成请求;
生成单元,用于根据所述请求生成唯一ID,所述ID为自增ID。
进一步地,所述ID生成装置还用于执行如上述任一项所述的高可用ID生成器的ID生成方法。
本发明中提供的高可用ID生成器及其ID生成方法和装置,具有以下有益效果:
本发明中提供的高可用ID生成器及其ID生成方法和装置,包括分部式部署的一个主数据库、至少一个从数据库以及至少两个哨兵进程;所述主数据库以及从数据库通过云服务器的负载均衡服务,对外提供唯一IP和端口用于服务;所述主数据库运行正常时用于接收ID生成请求,并根据所述请求生成唯一ID,所述ID为自增ID;所述主数据库检测到故障之后,与一个运行正常的从数据库进行主备切换;所述从数据库用于在切换成主数据库之后接收ID生成请求,并根据所述请求生成唯一ID;主数据库与从数据库可以进行主备切换进行ID生成,保障了高可用性,避免出现单点故障。
附图说明
图1是本发明一实施例中高可用ID生成器的结构框图;
图2是本发明一实施例中高可用ID生成器的ID生成方法步骤示意图;
图3是本发明另一实施例中高可用ID生成器的ID生成方法步骤示意图;
图4是本发明另一实施例中高可用ID生成器的ID生成方法步骤示意图;
图5是本发明一实施例中高可用ID生成器的ID生成装置结构框图;
图6是本发明另一实施例中高可用ID生成器的ID生成装置结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”“上述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件、单元、模块和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、单元、模块、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
参照图1,为本发明一实施例中提供的高可用ID生成器结构框图。
本发明一实施例中提出一种高可用ID生成器,包括分部式部署的一个主数据库、至少一个从数据库以及至少两个哨兵进程;所述主数据库以及从数据库通过云服务器的负载均衡服务,对外提供唯一IP和端口用于服务;云服务器通过该负载均衡端口对所述主数据库以及从数据库进行负载均衡。
所述主数据库运行正常时用于接收ID生成请求,并根据所述请求生成唯一ID,所述ID为自增ID;哨兵进程检测到所述主数据库故障之后,将所述主数据库与一个运行正常的从数据库进行主备切换;所述主数据库以及从数据库上均可以设置有哨兵进程,用于检测数据库是否正常运行。
所述从数据库用于在切换成主数据库之后接收ID生成请求,并根据所述请求生成唯一ID。
本实施例中的所述主数据库以及从数据库使用相同的数据库,其生成ID时可采用自增ID生成唯一ID,使生成的ID天然排序,为整形值,在需要查询ID时查询效率高。
本实施例中,主数据库与从数据库可以进行主备切换进行ID生成,在主数据库出现故障时,可以将从数据库切换为主数据库,保障了ID生成器的高可用性,容灾能力强,避免出现单点故障。可以理解的是,从数据库数量越多,更加可以保障ID生成器的高可用性。
在本实施例中,采用云服务器(例如阿里云)的负载均衡端口(SLB)进行所述主数据库以及从数据库之间的负载均衡,各项目(指需要生成ID的项目)只需要接入指定的负载均衡的IP和端口,无需修改配置便可以使用上述主数据库进行ID生成,即使在发生主备切换之后,依然无需修改配置,可直接使用。
进一步地,所述主数据库以及从数据库均为Redis数据库,所述从数据库设置为两个;相应地,哨兵进程具有三个。主数据库发生故障后,立即进行主备切换,项目可以在3-5s内恢复正常。
Redis数据库是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API(应用程序编程接口);纯内存,原子操作INCR,性能优越。
Redis数据库中设置有哨兵(Sentinel)进程,Redis的哨兵进程用于管理多个Redis数据库(instance),该进程执行以下三个任务:
监控(Monitoring):哨兵会不断地检查主数据库和从数据库是否运行正常。
提醒(Notification):当被监控的某个Redis数据库出现问题时,哨兵可以通过API向管理员或者其他应用程序发送通知。
自动故障迁移(Automatic failover):当一个主数据库不能正常工作时,哨兵会开始一次自动故障迁移操作,将失效主数据库的其中一个从数据库升级为新的主数据库,并让失效主数据库的其他从数据库改为复制新的主数据库;当客户端试图连接失效的主数据库时,集群也会向客户端返回新主数据库的地址,使得集群可以使用新主数据库代替失效数据库。
Redis哨兵是一个分布式工具,可以在一个架构中运行多个哨兵进程(progress),这些进程使用流言协议(gossip protocols)来接收关于主数据库是否下线的信息,并使用投票协议(agreement protocols)来决定是否执行自动故障迁移,以及选择哪个从数据库作为新的主数据库。
在本实施例中,所述主数据库检测到故障之后,与一个运行正常的从数据库进行主备切换具体包括:
所述主数据库检测到故障之后,回调云服务器的负载均衡端口,修改负载均衡将一个运行正常的从数据库设置为主数据库;同时将检测出故障的主数据库设置为从数据库。例如,可以回调云服务器的负载均衡端口,修改负载均衡设置的数据库权重,将切换后的主数据库所在IP权重设为100,其余从数据库权重设置为0。
参照图2,本发明还提供了一种高可用ID生成器的ID生成方法,所述高可用ID生成器包括分部式部署的一个主数据库以及至少一个从数据库;所述主数据库以及从数据库通过云服务器的负载均衡服务,对外提供唯一IP和端口用于服务;云服务器通过该负载均衡端口对所述主数据库以及从数据库进行负载均衡;所述主数据库以及从数据库上均可以设置有哨兵进程,用于检测数据库是否正常运行。所述主数据库与从数据库可以进行主备切换进行ID生成。
所述ID生成方法包括以下步骤:
步骤S1,在运行正常的主数据库上接收ID生成请求;
步骤S2,根据所述请求生成唯一ID,所述ID为自增ID。
在本实施例中,所述主数据库以及从数据库使用相同的数据库,其生成ID时可采用自增ID生成唯一ID,使生成的ID天然排序,为整形值,在需要查询ID时查询效率高。
在本实施例中,包括有主数据库以及从数据库,且可以进行主备切换,保障了ID生成器的高可用性,容灾能力强,避免出现单点故障。在主数据库出现故障时,可以将从数据库切换为主数据库,保障其进行ID生成。
在本实施例中,采用云服务器(例如阿里云)的负载均衡端口(SLB)进行所述主数据库以及从数据库之间的负载均衡,各项目(指需要生成ID的项目)只需要接入指定的负载均衡的IP和端口,无需修改配置便可以使用上述主数据库进行ID生成,即使在发生主备切换之后,依然无需修改配置,可直接使用。
进一步地,所述主数据库以及从数据库均为Redis数据库,所述从数据库设置为两个,哨兵进程则为三个。主数据库发生故障后,立即进行主备切换,项目可以在3-5s内恢复正常。可以理解的是,从数据库数量越多,更加可以保障ID生成器的高可用性。Redis数据库的具体特点参照上述实施例所述,在此不再进行赘述。
参照图3,在本实施例中,所述在运行正常的主数据库上接收ID生成请求的步骤S1之前包括:
步骤S1a,检测当前的主数据库的运行状态;检测到当前的主数据库运行正常时,则可以直接进入上述步骤S1,在该运行正常的主数据库上接收ID生成请求;若检测检测到当前的主数据库运行出现故障时,则不在当前的主数据库上接收ID生成请求以及ID生成,可以将其他一个正常的从数据库切换成主数据库接收ID生成请求以及ID生成。
参照图4,在一实施例中,所述检测当前的主数据库的运行状态的步骤S1a之后,包括:
步骤S101,若检测到当前的主数据库运行出现故障,则检测当前的从数据库的运行状态;
步骤S102,选择一个运行正常的从数据库;
步骤S103,将所述运行正常的从数据库与当前运行出现故障的主数据库进行主备切换。
具体地,所述将所述运行正常的从数据库与当前运行出现故障的主数据库进行主备切换的步骤S103,具体包括:
回调云服务器的负载均衡提供接口,修改负载均衡将所述运行正常的从数据库设置为主数据库;同时将当前运行出现故障的主数据库设置为从数据库。例如,可以回调云服务器的负载均衡提供接口,修改权重;将所述运行正常的从数据库权重设置为100;同时将当前运行出现故障的主数据库权重设置为0。
参照图5,本发明还提供了一种高可用ID生成器的ID生成装置,所述高可用ID生成器包括分部式部署的一个主数据库以及至少一个从数据库;所述主数据库以及从数据库通过云服务器的负载均衡服务,对外提供唯一IP和端口用于服务;云服务器通过该负载均衡端口对所述主数据库以及从数据库进行负载均衡;所述主数据库以及从数据库上均可以设置有哨兵进程,用于检测数据库是否正常运行。所述主数据库与从数据库可以进行主备切换进行ID生成。
所述ID生成装置包括:
接收单元10,用于在运行正常的主数据库上接收ID生成请求;
生成单元20,用于根据所述请求生成唯一ID,所述ID为自增ID。
在本实施例中,所述主数据库以及从数据库使用相同的数据库,其生成ID时可采用自增ID生成唯一ID,使生成的ID天然排序,为整形值,在需要查询ID时查询效率高。
在本实施例中,包括有主数据库以及从数据库,且可以进行主备切换,保障了ID生成器的高可用性,容灾能力强,避免出现单点故障。在主数据库出现故障时,可以将从数据库切换为主数据库,保障其进行ID生成。
在本实施例中,采用云服务器(例如阿里云)的负载均衡端口(SLB)进行所述主数据库以及从数据库之间的负载均衡,各项目(指需要生成ID的项目)只需要接入指定的负载均衡的IP和端口,无需修改配置便可以使用上述主数据库进行ID生成,即使在发生主备切换之后,依然无需修改配置,可直接使用。
进一步地,所述ID生成装置还用于执行如上述实施例中所述的高可用ID生成器的ID生成方法。
具体地,所述主数据库以及从数据库均为Redis数据库,所述从数据库设置为两个。主数据库发生故障后,立即进行主备切换,项目可以在3-5s内恢复正常。可以理解的是,从数据库数量越多,更加可以保障ID生成器的高可用性。Redis数据库的具体特点参照上述实施例所述,在此不再进行赘述。
参照图6,在另一实施例中,所述ID生成装置还包括:
第一检测单元10a,用于检测当前的主数据库的运行状态;检测到当前的主数据库运行正常时,则可以直接在该运行正常的主数据库上接收ID生成请求;若检测检测到当前的主数据库运行出现故障时,则不在当前的主数据库上接收ID生成请求以及ID生成,可以将其他一个正常的从数据库切换成主数据库接收ID生成请求以及ID生成。
在又一实施例中,所述ID生成装置还包括:
第二检测单元,用于若检测到当前的主数据库运行出现故障,则检测当前的从数据库的运行状态;
选择单元,用于选择一个运行正常的从数据库;
切换单元,用于将所述运行正常的从数据库与当前运行出现故障的主数据库进行主备切换。
具体地,所述切换单元用于:
回调云服务器的负载均衡提供接口,修改负载均衡将所述运行正常的从数据库设置为主数据库;同时将当前运行出现故障的主数据库设置为从数据库。例如,可以回调云服务器的负载均衡提供接口,修改权重;将所述运行正常的从数据库权重设置为100;同时将当前运行出现故障的主数据库权重设置为0。
综上所述,为本发明实施例中提供的高可用ID生成器及其ID生成方法和装置,包括分部式部署的一个主数据库以及至少一个从数据库;所述主数据库以及从数据库连接至云服务器的负载均衡端口;所述主数据库运行正常时用于接收ID生成请求,并根据所述请求生成唯一ID,所述ID为自增ID;所述主数据库检测到故障之后,与一个运行正常的从数据库进行主备切换;所述从数据库用于在切换成主数据库之后接收ID生成请求,并根据所述请求生成唯一ID;主数据库与从数据库可以进行主备切换进行ID生成,保障了高可用性,避免出现单点故障。
本领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable ProgrammableRead-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种高可用ID生成器,其特征在于,包括分部式部署的一个主数据库、至少一个从数据库以及至少两个哨兵进程;所述主数据库以及从数据库通过云服务器的负载均衡服务,对外提供唯一IP和端口用于服务;
所述主数据库运行正常时用于接收ID生成请求,并根据所述请求生成唯一ID,所述ID为自增ID;所述哨兵进程检测到主数据库故障之后,将所述主数据库与一个运行正常的从数据库进行主备切换;
所述从数据库用于在切换成主数据库之后接收ID生成请求,并根据所述请求生成唯一ID。
2.根据权利要求1所述的高可用ID生成器,其特征在于,所述主数据库以及从数据库均为Redis数据库,所述从数据库设置为两个。
3.根据权利要求1所述的高可用ID生成器,其特征在于,所述主数据库检测到故障之后,与一个运行正常的从数据库进行主备切换具体包括:
所述主数据库检测到故障之后,回调云服务器提供的接口,修改负载均衡权重配置,将一个运行正常的从数据库权重设置为100,同时将检测出故障的数据库权重设置为0。业务层只通过负载均衡实例地址,来连接生成ID的数据库。
4.一种高可用ID生成器的ID生成方法,其特征在于,所述高可用ID生成器包括分部式部署的一个主数据库以及至少一个从数据库;所述主数据库以及从数据库通过云服务器的负载均衡服务,对外提供唯一IP和端口用于服务;
所述ID生成方法包括以下步骤:
在运行正常的主数据库上接收ID生成请求;
根据所述请求生成唯一ID,所述ID为自增ID。
5.根据权利要求4所述的高可用ID生成器的ID生成方法,其特征在于,所述主数据库以及从数据库均为Redis数据库,所述从数据库设置为两个。
6.根据权利要求4所述的高可用ID生成器的ID生成方法,其特征在于,所述在运行正常的主数据库上接收ID生成请求的步骤之前包括:
检测当前的主数据库的运行状态。
7.根据权利要求6所述的高可用ID生成器的ID生成方法,其特征在于,所述检测当前的主数据库的运行状态的步骤之后,包括:
若检测到当前的主数据库运行出现故障,则检测当前的从数据库的运行状态;
选择一个运行正常的从数据库;
将所述运行正常的从数据库与当前运行出现故障的主数据库进行主备切换。
8.根据权利要求7所述的高可用ID生成器的ID生成方法,其特征在于,所述将所述运行正常的从数据库与当前运行出现故障的主数据库进行主备切换的步骤,具体包括:
回调云服务器的负载均衡提供接口,修改权重;将所述运行正常的从数据库权重设置为100;同时将当前运行出现故障的主数据库权重设置为0。
9.一种高可用ID生成器的ID生成装置,其特征在于,所述高可用ID生成器包括分部式部署的一个主数据库以及至少一个从数据库;所述主数据库以及从数据库通过云服务器的负载均衡服务,对外提供唯一IP和端口用于服务;
所述ID生成装置包括:
接收单元,用于在运行正常的主数据库上接收ID生成请求;
生成单元,用于根据所述请求生成唯一ID,所述ID为自增ID。
10.根据权利要求9所述的高可用ID生成器的ID生成装置,其特征在于,所述ID生成装置还用于执行如权利要求5-8任一项所述的高可用ID生成器的ID生成方法。
CN201711115529.8A 2017-11-13 2017-11-13 高可用id生成器及其id生成方法和装置 Pending CN107968847A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711115529.8A CN107968847A (zh) 2017-11-13 2017-11-13 高可用id生成器及其id生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711115529.8A CN107968847A (zh) 2017-11-13 2017-11-13 高可用id生成器及其id生成方法和装置

Publications (1)

Publication Number Publication Date
CN107968847A true CN107968847A (zh) 2018-04-27

Family

ID=62001003

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711115529.8A Pending CN107968847A (zh) 2017-11-13 2017-11-13 高可用id生成器及其id生成方法和装置

Country Status (1)

Country Link
CN (1) CN107968847A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108959391A (zh) * 2018-05-31 2018-12-07 武汉斗鱼网络科技有限公司 展现数据库集群架构图的设备、系统、方法、存储介质
WO2019090780A1 (zh) * 2017-11-13 2019-05-16 深圳市华阅文化传媒有限公司 高可用id生成器及其id生成方法和装置
CN111338767A (zh) * 2018-12-18 2020-06-26 无锡雅座在线科技股份有限公司 PostgreSQL主从数据库自动切换系统及方法
CN111694845A (zh) * 2020-05-29 2020-09-22 中国建设银行股份有限公司 一种基于Redis的标识生成方法和装置
CN111831757A (zh) * 2020-06-09 2020-10-27 时时同云科技(成都)有限责任公司 分布式全局唯一标识信息的生成和管理方法及装置
CN113254207A (zh) * 2021-05-26 2021-08-13 北京达佳互联信息技术有限公司 一种标识码生成方法、装置、服务器和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102769667A (zh) * 2012-06-29 2012-11-07 北京奇虎科技有限公司 一种id生成方法、装置和系统
CN103336721A (zh) * 2013-07-08 2013-10-02 北京奇虎科技有限公司 数据库操作请求分配方法、设备和系统
CN105721200A (zh) * 2016-01-21 2016-06-29 北京乐动卓越科技有限公司 主从式服务器系统的应用方法及该系统
CN107016087A (zh) * 2017-04-05 2017-08-04 杭州铭师堂教育科技发展有限公司 基于哨兵模型的层级数据库高可用系统
CN107343034A (zh) * 2017-06-26 2017-11-10 杭州铭师堂教育科技发展有限公司 基于QConf的Redis高可用系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102769667A (zh) * 2012-06-29 2012-11-07 北京奇虎科技有限公司 一种id生成方法、装置和系统
CN103336721A (zh) * 2013-07-08 2013-10-02 北京奇虎科技有限公司 数据库操作请求分配方法、设备和系统
CN105721200A (zh) * 2016-01-21 2016-06-29 北京乐动卓越科技有限公司 主从式服务器系统的应用方法及该系统
CN107016087A (zh) * 2017-04-05 2017-08-04 杭州铭师堂教育科技发展有限公司 基于哨兵模型的层级数据库高可用系统
CN107343034A (zh) * 2017-06-26 2017-11-10 杭州铭师堂教育科技发展有限公司 基于QConf的Redis高可用系统及方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ANNAN211: "mysql生成唯一全局主键ID", 《HTTPS://BLOG.CSDN.NET/ANNAN211/ARTICLE/DETAILS/84737578》 *
JAVA我人生: "如何在高并发分布式系统中生成全局唯一ID", 《HTTPS://BLOG.CSDN.NET/CHENLEIXING/ARTICLE/DETAILS/48153305》 *
THEDUST123: "如何在高并发分布式系统中生成全局唯一ID", 《HTTPS://WWW.DOCIN.COM/P-1730848498.HTML》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019090780A1 (zh) * 2017-11-13 2019-05-16 深圳市华阅文化传媒有限公司 高可用id生成器及其id生成方法和装置
CN108959391A (zh) * 2018-05-31 2018-12-07 武汉斗鱼网络科技有限公司 展现数据库集群架构图的设备、系统、方法、存储介质
CN108959391B (zh) * 2018-05-31 2021-11-26 武汉斗鱼网络科技有限公司 展现数据库集群架构图的设备、系统、方法、存储介质
CN111338767A (zh) * 2018-12-18 2020-06-26 无锡雅座在线科技股份有限公司 PostgreSQL主从数据库自动切换系统及方法
CN111338767B (zh) * 2018-12-18 2023-09-29 无锡雅座在线科技股份有限公司 PostgreSQL主从数据库自动切换系统及方法
CN111694845A (zh) * 2020-05-29 2020-09-22 中国建设银行股份有限公司 一种基于Redis的标识生成方法和装置
CN111831757A (zh) * 2020-06-09 2020-10-27 时时同云科技(成都)有限责任公司 分布式全局唯一标识信息的生成和管理方法及装置
CN111831757B (zh) * 2020-06-09 2023-05-12 时时同云科技(成都)有限责任公司 分布式全局唯一标识信息的生成和管理方法及装置
CN113254207A (zh) * 2021-05-26 2021-08-13 北京达佳互联信息技术有限公司 一种标识码生成方法、装置、服务器和存储介质
CN113254207B (zh) * 2021-05-26 2024-05-28 北京达佳互联信息技术有限公司 一种标识码生成方法、装置、服务器和存储介质

Similar Documents

Publication Publication Date Title
CN107968847A (zh) 高可用id生成器及其id生成方法和装置
US11163653B2 (en) Storage cluster failure detection
US20210208980A1 (en) Failover and recovery for replicated data instances
CN102640108B (zh) 已复制数据的监控
CN105406980B (zh) 一种多节点备份方法及装置
US9817721B1 (en) High availability management techniques for cluster resources
JP6089884B2 (ja) 情報処理システム,情報処理装置,情報処理装置の制御プログラム,及び情報処理システムの制御方法
US11656962B2 (en) Erasure coding repair availability
CN111708668B (zh) 集群故障的处理方法、装置及电子设备
CN111988347B (zh) 跳板机系统的数据处理方法和跳板机系统
CN105323271B (zh) 一种云计算系统以及云计算系统的处理方法和装置
JP5176231B2 (ja) 計算機システム、計算機制御方法及び計算機制御プログラム
CN116302716A (zh) 一种集群部署方法、装置、电子设备及计算机可读介质
JP5918802B2 (ja) ノードおよびプログラム
CN115145782A (zh) 一种服务器切换方法,MooseFS系统及存储介质
WO2013073022A1 (ja) 計算機システム及び障害検出方法
CN116361073A (zh) 数据安全管理方法、装置、设备及存储介质
JP6127005B2 (ja) クラスタシステムのサーバ装置およびプログラム
CN116166460A (zh) 应用于集群数据库系统的管理控制方法、管理控制器以及集群数据库系统
Node et al. Windows Server Failover Clustering
CN105490903A (zh) 一种基于总线模式的集群架构
JP2015165373A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180427

RJ01 Rejection of invention patent application after publication