CN114172792A - 一种保证服务高可用的序号生成方法的实现方法及装置 - Google Patents

一种保证服务高可用的序号生成方法的实现方法及装置 Download PDF

Info

Publication number
CN114172792A
CN114172792A CN202111520920.2A CN202111520920A CN114172792A CN 114172792 A CN114172792 A CN 114172792A CN 202111520920 A CN202111520920 A CN 202111520920A CN 114172792 A CN114172792 A CN 114172792A
Authority
CN
China
Prior art keywords
node
cluster
nodes
sequence
election
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111520920.2A
Other languages
English (en)
Other versions
CN114172792B (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.)
Wuhan Zhongbang Bank Co Ltd
Original Assignee
Wuhan Zhongbang Bank 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 Wuhan Zhongbang Bank Co Ltd filed Critical Wuhan Zhongbang Bank Co Ltd
Priority to CN202111520920.2A priority Critical patent/CN114172792B/zh
Publication of CN114172792A publication Critical patent/CN114172792A/zh
Application granted granted Critical
Publication of CN114172792B publication Critical patent/CN114172792B/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
    • 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/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • 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
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • 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
    • 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/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Cardiology (AREA)
  • Computational Linguistics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及信息技术领域,提供了一种保证服务高可用的序号生成方法的实现方法及装置,的在于解决分布式场景下如何快速取到一个唯一序列号的问题。主要方案包括构建序列生成服务集群,集群中选举出唯一主节点;由唯一主节点独自提供序列生成服务,唯一主节点根据客户端发送的序列生成请求报文,调用基于数据库表的全局唯一连续自增序列生成器;检查缓存中是否有序列生成请求报文对应类型的已经生成的序列号,如果有则检查当前是否有线程在取缓存中的序列号,如果有则等待该线程处理完之后再取缓存中最小的序列号,如果缓存中没有对应类型的序列号,则查询数据库表序列定义表的序列号规则,根据规则生成对应类型的一定步长的号段,写入缓存。

Description

一种保证服务高可用的序号生成方法的实现方法及装置
技术领域
本技术直接运用于分布式微服务架构领域,提供了一种保证服务高可用的序号生成方法的实现方法及装置,尤其针对在微服务比较完善下,通过该技术可以实现为应用系统提供高效稳定可靠有序的序列生成服务。
背景技术
分布式微服务比较完善的时代下,我们的应用系统需要生产一个连续的友好的序列号,例如订单号、合同编号、流水号等,变得比较麻烦,并且数据库使用分库分表之后,当一个表分成若干个sharding表之后,如何能够快速能拿到一个唯一的序列号,并且适应不同的场景、需求以及性能要求,就变得尤其复杂,业内生成序列号的常见方案主要有利用数据库自增、UUID、Redis生成ID、Twitter的snowflake算法等等,综合来看当前常用方案存在如下问题,
1、保证有序和性能,则支撑不了分布式微服务场景下的应用场景,
2、保证全局唯一和有序则保证不了多节点的应用场景,
3、当序列服务出现不可用的时候,会导致业务终止。
发明内容
本发明的目的在于解决分布式场景下如何快速取到一个唯一序列号的问题,并且能够提供高可用的序列生成的服务。
为解决上述问题,本发明采用以下技术方案:
本发明提供了一种保证服务高可用的序号生成方法,包括以下步骤:
步骤1、构建序列生成服务集群,集群中选举出唯一主节点;
步骤2、由唯一主节点独自提供序列生成服务,唯一主节点根据客户端发送的序列生成请求报文,调用基于数据库表的全局唯一连续自增序列生成器;
步骤3、检查缓存中是否有序列生成请求报文对应类型的已经生成的序列号,如果有则检查当前是否有线程在取缓存中的序列号,如果有则等待该线程处理完之后再取缓存中最小的序列号,如果缓存中没有对应类型的序列号,则查询数据库表序列定义表的序列号规则,根据规则生成对应类型的一定步长的号段,写入缓存;
步骤4、将最大的序列号写入数据库序列表,如果序列表已有记录则更新数据库,如果没有则插入一条记录。
上述技术方案中,步骤1具体包括如下步骤:
步骤1.1:序列生成服务启动多个节点,在启动的时候,向固定的广播地址发送新节点上线注册报文,报文中包含当前节点的关键信息;
步骤1.2:监听固定的广播地址,当此地址有广播报文时,从报文中获取发送广播的节点信息,并根据此信息与该节点建立链接;
步骤1.3:当双方直接的链接建立完成,则新节点加入集群完成,新节点的组编号与集群中其他节点组编号一致时才能加入集群;
步骤1.4:集群节点之间,通过定时的心跳检查获得节点的状态,当连续几次心跳没有收到响应后,标记对应的链接为异常,定时检查可用链接列表对应的服务节点的服务状态,如果当前列表中发现主节点数量出现异常,即主节点数量不为1,则调用主节点选举出新的主节点,当主节点数量发生异常后,启动选举,重新选取主节点。
上述技术方案中,步骤1.4中,出现主节点异常为主节点宕机:
当主节点宕机后,集群中主节点数降为0,此时的节点主节点选举流程为,当集群中有节点发现主节点宕机后,给当前节点任期+1后,标记自己的集群状态为选举态,向集群中其他存活的节点发送选举报文,在获得存活半数以上节点同意后,将自己的集群标记为主节点态,当不足半数,则将自己的集群状态标记为从节点态,并等待一段时间后再次发起选举,直到选举成功或者其他节点选举成功。
上述技术方案中,步骤1.4中,出现主节点异常为局域网分裂:
当因网络或其他原因出现局域网分裂问题时,一个局域网被分割为几个相互不连通的局域网片段,被分割的网络片段中会有一个或多个不存在主节点的局域网片段,在此局域网片段中,系统会按照主节点宕机的方式处理,选举出新的主节点,在局域网分裂恢复后,集群中就会出现两个或两个以上的主节点,此时需要重新发起选举,恢复集群只有一个主节点的状态。
上述技术方案中,选举方式具体为:当有节点发现集群中主节点数异常时,会发起选举请求,如果发起选举请求的是从节点,其发起的选举请求会被拒绝;如果发起选举的是主节点,则主节点会首先降级为从节点,然后发起选举,如果发起节点任期数为集群中最大,则其他的主节点在收到选举请求后,自己降级为从节点,并同意选举请求,否则会被拒绝,并告知当前合法的主节点标识,发起方在收到该标识后,终止选举。
本发明还提供了一种保证服务高可用的序号生成装置,包括以下模块:
唯一主节点集群模块:构建序列生成服务集群,集群中选举出唯一主节点;
响应模块:由唯一主节点独自提供序列生成服务,唯一主节点根据客户端发送的序列生成请求报文,调用基于数据库表的全局唯一连续自增序列生成器;
序号生成模块:检查缓存中是否有序列生成请求报文对应类型的已经生成的序列号,如果有则检查当前是否有线程在取缓存中的序列号,如果有则等待该线程处理完之后再取缓存中最小的序列号,如果缓存中没有对应类型的序列号,则查询数据库表序列定义表的序列号规则,根据规则生成对应类型的一定步长的号段,写入缓存;
序号更新模块:将最大的序列号写入数据库序列表,如果序列表已有记录则更新数据库,如果没有则插入一条记录。
上述技术方案中,唯一主节点集群模块的实现步骤如下:
步骤1.1:序列生成服务启动多个节点,在启动的时候,向固定的广播地址发送新节点上线注册报文,报文中包含当前节点的关键信息;
步骤1.2:监听固定的广播地址,当此地址有广播报文时,从报文中获取发送广播的节点信息,并根据此信息与该节点建立链接;
步骤1.3:当双方直接的链接建立完成,则新节点加入集群完成,新节点的组编号与集群中其他节点组编号一致时才能加入集群;
步骤1.4:集群节点之间,通过定时的心跳检查获得节点的状态,当连续几次心跳没有收到响应后,标记对应的链接为异常,定时检查可用链接列表对应的服务节点的服务状态,如果当前列表中发现主节点数量出现异常,即主节点数量不为1,则调用主节点选举出新的主节点,当主节点数量发生异常后,启动选举,重新选取主节点。
上述技术方案中,步骤1.4中,出现主节点异常为主节点宕机:
当主节点宕机后,集群中主节点数降为0,此时的节点主节点选举流程为,当集群中有节点发现主节点宕机后,给当前节点任期+1后,标记自己的集群状态为选举态,向集群中其他存活的节点发送选举报文,在获得存活半数以上节点同意后,将自己的集群标记为主节点态,当不足半数,则将自己的集群状态标记为从节点态,并等待一段时间后再次发起选举,直到选举成功或者其他节点选举成功。
上述技术方案中,步骤1.4中,出现主节点异常为局域网分裂:
当因网络或其他原因出现局域网分裂问题时,一个局域网被分割为几个相互不连通的局域网片段,被分割的网络片段中会有一个或多个不存在主节点的局域网片段,在此局域网片段中,系统会按照主节点宕机的方式处理,选举出新的主节点,在局域网分裂恢复后,集群中就会出现两个或两个以上的主节点,此时需要重新发起选举,恢复集群只有一个主节点的状态。
上述技术方案中,选举方式具体为:当有节点发现集群中主节点数异常时,会发起选举请求,如果发起选举请求的是从节点,其发起的选举请求会被拒绝;如果发起选举的是主节点,则主节点会首先降级为从节点,然后发起选举,如果发起节点任期数为集群中最大,则其他的主节点在收到选举请求后,自己降级为从节点,并同意选举请求,否则会被拒绝,并告知当前合法的主节点标识,发起方在收到该标识后,终止选举。
因为本发明采用上述技术方案,因此具备以下有益效果:
1、本发明在集群中,仅仅只有主节点进行序号分发,相比集群中所有节点都参与分发而言,避免了每个节点都会存在一段序号,造成取号不连续的问题。
2、全局序列组件除了依赖数据库(不限定类型)以外,不依赖第三方中间件,客户端为嵌入目标系统方式,服务端为可独立部署的java核心应用,不依赖应用容器,自带轻量web容器,不需要额外增加中间件来支持系统运行。
3、在业务系统中,其调用频率是非常高的,在高频使用场景下,性能要求极高,在高并发访问情况下,依然具有良好的响应速度。
4、系统以集群的方式部署,节点间关系对等,在某个节点出现异常的情况下,其他节点能够快速接替其继续服务,不会因某个节点故障而导致系统不能对外提供服务,保证系统能够稳定长期运行。
附图说明
图1为本发明整体流程框图,图中server是节点,term是任期。
具体实施方式
下面通过实施例对本发明进行具体描述,有必要在此指出的是本实施例只用于对本发明进行进一步说明,不能理解为对本发明保护范围的限制,该领域的技术熟练人员可以根据以上发明的内容做出一些非本质的改进和调整。在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明公开了一种保证服务高可用的序号生成方法的实现方法,包含以下步骤:
步骤1:建立基于缓存和数据库表的序列全局序列生成服务组件,
步骤2:组件在极低的时间内做出响应,在大并发访问情况下,能够稳定高效的持续提供服务。
所述步骤1包括以下步骤:
步骤1.1、根据客户端发送的序列生成请求报文,调用基于数据库表的全局唯一连续自增序列生成器;
步骤1.2、检查缓存中是否有序列生成请求报文对应类型的已经生成的序列号,如果有则检查当前是否有线程在取缓存中的序列号,如果有则等待该线程处理完之后再取缓存中最小的序列号,如果缓存中没有对应类型的序列号,则查询数据库表序列定义表的序列号规则(最小值、众最大值、步长等),根据规则生成对应类型的一定步长的号段,写入缓存;
步骤1.3、将最大的序列号写入数据库序列表,如果序列表已有记录则更新数据库,如果没有则插入一条记录。
但是步骤1,在高并发和服务异常场景下,则需要步骤2的方法来提供高可用策略和方法。
所述步骤2包括以下步骤:
步骤2.1:序列生成服务启动多个节点,在启动的时候,向固定的广播地址发送新节点上线注册报文,报文中包含当前节点的关键信息;
步骤2.2:监听固定的广播地址,当此地址有广播报文时,从报文中获取发送广播的节点信息,并根据此信息与该节点建立链接;
步骤2.3:当双方直接的链接建立完成,则新节点加入集群完成,新节点的组编号与集群中其他节点组编号一致时才能加入集群,其流程如下:;
步骤2.4:集群节点之间,通过定时的心跳检查获得节点的状态,当连续几次心跳没有收到响应后,标记对应的链接为异常。定时检查可用链接列表对应的服务节点的服务状态,如果当前列表中发现主节点数量出现异常(不为1),则调用主节点选举出新的主节点。当主节点数量发生异常后,启动选举,一般出现主节点异常可分为以下两种情况:
主节点宕机
当主节点宕机后,集群中主节点数降为0。此时的节点主节点选举流程为,当集群中有节点发现主节点宕机后,给当前节点任期+1后,标记自己的集群状态为选举态,向集群中其他存活的节点发送选举报文,在获得存活半数以上节点同意后,将自己的集群标记为主节点态,当不足半数,则将自己的集群状态标记为从节点态,并等待一段时间后再次发起选举,直到选举成功或者其他节点选举成功。
局域网分裂
当因网络或其他原因出现局域网分裂问题时,一个局域网被分割为几个相互不连通的局域网片段,被分割的网络片段中会有一个或多个不存在主节点的局域网片段,在此局域网片段中,系统会按照主节点宕机的方式处理,选举出新的主节点。在局域网分裂恢复后,集群中就会出现两个或两个以上的主节点,此时需要重新发起选举,恢复集群只有一个主节点的状态。此时处理方式为:当有节点发现集群中主节点数异常时,会发起选举请求,如果发起选举请求的是从节点,其发起的选举请求会被拒绝;如果发起选举的是主节点,则主节点会首先降级为从节点,然后发起选举,如果发起节点任期数为集群中最大,则其他的主节点在收到选举请求后,自己降级为从节点,并同意选举请求,否则会被拒绝,并告知当前合法的主节点标识,发起方在收到该标识后,终止选举。

Claims (10)

1.根据权利要求1所述的一种保证服务高可用的序号生成方法,其特征在于,
步骤1、构建序列生成服务集群,集群中选举出唯一主节点;
步骤2、由唯一主节点独自提供序列生成服务,唯一主节点根据客户端发送的序列生成请求报文,调用基于数据库表的全局唯一连续自增序列生成器;
步骤3、检查缓存中是否有序列生成请求报文对应类型的已经生成的序列号,如果有则检查当前是否有线程在取缓存中的序列号,如果有则等待该线程处理完之后再取缓存中最小的序列号,如果缓存中没有对应类型的序列号,则查询数据库表序列定义表的序列号规则,根据规则生成对应类型的一定步长的号段,写入缓存;
步骤4、将最大的序列号写入数据库序列表,如果序列表已有记录则更新数据库,如果没有则插入一条记录。
2.根据权利要求1所述的一种保证服务高可用的序号生成方法,其特征在于,步骤1具体包括如下步骤:
步骤1.1:序列生成服务启动多个节点,在启动的时候,向固定的广播地址发送新节点上线注册报文,报文中包含当前节点的关键信息;
步骤1.2:监听固定的广播地址,当此地址有广播报文时,从报文中获取发送广播的节点信息,并根据此信息与该节点建立链接;
步骤1.3:当双方直接的链接建立完成,则新节点加入集群完成,新节点的组编号与集群中其他节点组编号一致时才能加入集群;
步骤1.4:集群节点之间,通过定时的心跳检查获得节点的状态,当连续几次心跳没有收到响应后,标记对应的链接为异常,定时检查可用链接列表对应的服务节点的服务状态,如果当前列表中发现主节点数量出现异常,即主节点数量不为1,则调用主节点选举出新的主节点,当主节点数量发生异常后,启动选举,重新选取主节点。
3.根据权利要求2所述的一种保证服务高可用的序号生成方法,其特征在于,步骤1.4中,出现主节点异常为主节点宕机:
当主节点宕机后,集群中主节点数降为0,此时的节点主节点选举流程为,当集群中有节点发现主节点宕机后,给当前节点任期+1后,标记自己的集群状态为选举态,向集群中其他存活的节点发送选举报文,在获得存活半数以上节点同意后,将自己的集群标记为主节点态,当不足半数,则将自己的集群状态标记为从节点态,并等待一段时间后再次发起选举,直到选举成功或者其他节点选举成功。
4.根据权利要求3所述的一种保证服务高可用的序号生成方法,其特征在于,步骤1.4中,出现主节点异常为局域网分裂:
当因网络或其他原因出现局域网分裂问题时,一个局域网被分割为几个相互不连通的局域网片段,被分割的网络片段中会有一个或多个不存在主节点的局域网片段,在此局域网片段中,系统会按照主节点宕机的方式处理,选举出新的主节点,在局域网分裂恢复后,集群中就会出现两个或两个以上的主节点,此时需要重新发起选举,恢复集群只有一个主节点的状态。
5.根据权利要求4所述的一种保证服务高可用的序号生成方法,其特征在于,选举方式具体为:当有节点发现集群中主节点数异常时,会发起选举请求,如果发起选举请求的是从节点,其发起的选举请求会被拒绝;如果发起选举的是主节点,则主节点会首先降级为从节点,然后发起选举,如果发起节点任期数为集群中最大,则其他的主节点在收到选举请求后,自己降级为从节点,并同意选举请求,否则会被拒绝,并告知当前合法的主节点标识,发起方在收到该标识后,终止选举。
6.根据权利要求1所述的一种保证服务高可用的序号生成装置,其特征在于,
唯一主节点集群模块:构建序列生成服务集群,集群中选举出唯一主节点;
响应模块:由唯一主节点独自提供序列生成服务,唯一主节点根据客户端发送的序列生成请求报文,调用基于数据库表的全局唯一连续自增序列生成器;
序号生成模块:检查缓存中是否有序列生成请求报文对应类型的已经生成的序列号,如果有则检查当前是否有线程在取缓存中的序列号,如果有则等待该线程处理完之后再取缓存中最小的序列号,如果缓存中没有对应类型的序列号,则查询数据库表序列定义表的序列号规则,根据规则生成对应类型的一定步长的号段,写入缓存;
序号更新模块:将最大的序列号写入数据库序列表,如果序列表已有记录则更新数据库,如果没有则插入一条记录。
7.根据权利要求6所述的一种保证服务高可用的序号生成装置,其特征在于,唯一主节点集群模块的实现步骤如下:
步骤1.1:序列生成服务启动多个节点,在启动的时候,向固定的广播地址发送新节点上线注册报文,报文中包含当前节点的关键信息;
步骤1.2:监听固定的广播地址,当此地址有广播报文时,从报文中获取发送广播的节点信息,并根据此信息与该节点建立链接;
步骤1.3:当双方直接的链接建立完成,则新节点加入集群完成,新节点的组编号与集群中其他节点组编号一致时才能加入集群;
步骤1.4:集群节点之间,通过定时的心跳检查获得节点的状态,当连续几次心跳没有收到响应后,标记对应的链接为异常,定时检查可用链接列表对应的服务节点的服务状态,如果当前列表中发现主节点数量出现异常,即主节点数量不为1,则调用主节点选举出新的主节点,当主节点数量发生异常后,启动选举,重新选取主节点。
8.根据权利要求7所述的一种保证服务高可用的序号生成装置,其特征在于,步骤1.4中,出现主节点异常为主节点宕机:
当主节点宕机后,集群中主节点数降为0,此时的节点主节点选举流程为,当集群中有节点发现主节点宕机后,给当前节点任期+1后,标记自己的集群状态为选举态,向集群中其他存活的节点发送选举报文,在获得存活半数以上节点同意后,将自己的集群标记为主节点态,当不足半数,则将自己的集群状态标记为从节点态,并等待一段时间后再次发起选举,直到选举成功或者其他节点选举成功。
9.根据权利要求7所述的一种保证服务高可用的序号生成装置,其特征在于,步骤1.4中,出现主节点异常为局域网分裂:
当因网络或其他原因出现局域网分裂问题时,一个局域网被分割为几个相互不连通的局域网片段,被分割的网络片段中会有一个或多个不存在主节点的局域网片段,在此局域网片段中,系统会按照主节点宕机的方式处理,选举出新的主节点,在局域网分裂恢复后,集群中就会出现两个或两个以上的主节点,此时需要重新发起选举,恢复集群只有一个主节点的状态。
10.根据权利要求9所述的一种保证服务高可用的序号生成装置,其特征在于,选举方式具体为:当有节点发现集群中主节点数异常时,会发起选举请求,如果发起选举请求的是从节点,其发起的选举请求会被拒绝;如果发起选举的是主节点,则主节点会首先降级为从节点,然后发起选举,如果发起节点任期数为集群中最大,则其他的主节点在收到选举请求后,自己降级为从节点,并同意选举请求,否则会被拒绝,并告知当前合法的主节点标识,发起方在收到该标识后,终止选举。
CN202111520920.2A 2021-12-13 2021-12-13 一种保证服务高可用的序号生成方法的实现方法及装置 Active CN114172792B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111520920.2A CN114172792B (zh) 2021-12-13 2021-12-13 一种保证服务高可用的序号生成方法的实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111520920.2A CN114172792B (zh) 2021-12-13 2021-12-13 一种保证服务高可用的序号生成方法的实现方法及装置

Publications (2)

Publication Number Publication Date
CN114172792A true CN114172792A (zh) 2022-03-11
CN114172792B CN114172792B (zh) 2023-07-28

Family

ID=80486085

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111520920.2A Active CN114172792B (zh) 2021-12-13 2021-12-13 一种保证服务高可用的序号生成方法的实现方法及装置

Country Status (1)

Country Link
CN (1) CN114172792B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115103024A (zh) * 2022-06-21 2022-09-23 联仁健康医疗大数据科技股份有限公司 一种序列号生成方法、装置、电子设备及存储介质
CN115098451A (zh) * 2022-06-14 2022-09-23 武汉众邦银行股份有限公司 一种基于文件的数据传输方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104933132A (zh) * 2015-06-12 2015-09-23 广州巨杉软件开发有限公司 基于操作序列号的分布式数据库有权重选举方法
WO2016169529A2 (zh) * 2016-05-16 2016-10-27 白杨 白杨消息端口交换服务
US20170154091A1 (en) * 2013-09-10 2017-06-01 Amazon Technologies, Inc. Conditional master election in distributed databases
WO2018036148A1 (zh) * 2016-08-23 2018-03-01 东方网力科技股份有限公司 一种服务器集群系统
CN109165216A (zh) * 2018-08-02 2019-01-08 杭州启博科技有限公司 一种Redis分布式数据库主键id的生成方法及系统、存储介质
CN110457059A (zh) * 2019-06-28 2019-11-15 苏宁云计算有限公司 一种基于redis的序列号生成方法及装置
CN110674187A (zh) * 2019-09-24 2020-01-10 神州数码融信软件有限公司 一种全局唯一序列号的生成方法
CN111651459A (zh) * 2020-06-08 2020-09-11 北京首汽智行科技有限公司 一种基于Redis的业务ID生成方法
CN112688799A (zh) * 2020-12-11 2021-04-20 中国人寿保险股份有限公司 基于Redis集群的客户号分配方法以及分配装置
CN113297327A (zh) * 2021-05-24 2021-08-24 建信金融科技有限责任公司 生成分布式id的系统和方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170154091A1 (en) * 2013-09-10 2017-06-01 Amazon Technologies, Inc. Conditional master election in distributed databases
CN104933132A (zh) * 2015-06-12 2015-09-23 广州巨杉软件开发有限公司 基于操作序列号的分布式数据库有权重选举方法
WO2016169529A2 (zh) * 2016-05-16 2016-10-27 白杨 白杨消息端口交换服务
WO2018036148A1 (zh) * 2016-08-23 2018-03-01 东方网力科技股份有限公司 一种服务器集群系统
CN109165216A (zh) * 2018-08-02 2019-01-08 杭州启博科技有限公司 一种Redis分布式数据库主键id的生成方法及系统、存储介质
CN110457059A (zh) * 2019-06-28 2019-11-15 苏宁云计算有限公司 一种基于redis的序列号生成方法及装置
CN110674187A (zh) * 2019-09-24 2020-01-10 神州数码融信软件有限公司 一种全局唯一序列号的生成方法
CN111651459A (zh) * 2020-06-08 2020-09-11 北京首汽智行科技有限公司 一种基于Redis的业务ID生成方法
CN112688799A (zh) * 2020-12-11 2021-04-20 中国人寿保险股份有限公司 基于Redis集群的客户号分配方法以及分配装置
CN113297327A (zh) * 2021-05-24 2021-08-24 建信金融科技有限责任公司 生成分布式id的系统和方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115098451A (zh) * 2022-06-14 2022-09-23 武汉众邦银行股份有限公司 一种基于文件的数据传输方法
CN115098451B (zh) * 2022-06-14 2024-05-28 武汉众邦银行股份有限公司 一种基于文件的数据传输方法
CN115103024A (zh) * 2022-06-21 2022-09-23 联仁健康医疗大数据科技股份有限公司 一种序列号生成方法、装置、电子设备及存储介质
CN115103024B (zh) * 2022-06-21 2024-03-15 联仁健康医疗大数据科技股份有限公司 一种序列号生成方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN114172792B (zh) 2023-07-28

Similar Documents

Publication Publication Date Title
CN107465767B (zh) 一种数据同步的方法和系统
CN114172792A (zh) 一种保证服务高可用的序号生成方法的实现方法及装置
CN111091429A (zh) 电子票据标识分配方法及装置、电子票据生成系统
CN107733957B (zh) 分布式服务配置系统及版本号分配方法
US11343787B2 (en) Method and system for processing node registration notification
CN110391940B (zh) 服务地址的响应方法、装置、系统、设备和存储介质
CN110557416B (zh) 一种多节点协同打块的方法及系统
CN109462640B (zh) 一种元数据同步方法、数据端、交互系统及介质
CN110611603B (zh) 一种集群网卡监控方法及装置
CN110971702A (zh) 服务调用方法、装置、计算机设备及存储介质
CN111935314B (zh) 区块链系统、消息传输方法及装置
CN112732456A (zh) 微服务调用方法、装置、电子设备和存储介质
US20220166842A1 (en) Data distribution method and electronic device
US20130294260A1 (en) Methods for providing a status to devices in a distributed system
US8359354B1 (en) Methods for providing a status to devices in a distributed system
CN113157441B (zh) 一种分布式去中心化的负载均衡方法及系统
CN110063050B (zh) 一种业务调度方法及系统
US20230126682A1 (en) Fault tolerance method and apparatus of network device system, computer device, and storage medium
CN109995577B (zh) 一种更新策略的方法、装置及系统
CN115514797A (zh) 备用smf发现方法、装置、电子设备和介质
CN112187542A (zh) 数据通信的集群方法及系统
CN113472566A (zh) 一种联盟区块链的状态监控方法及主节点状态监控系统
CN108093147B (zh) 一种分布式多级调度方法和设备
CN113037797A (zh) 数据处理方法及其装置
CN111724260B (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