CN116760835A - 分布式存储方法、设备及介质 - Google Patents

分布式存储方法、设备及介质 Download PDF

Info

Publication number
CN116760835A
CN116760835A CN202311023784.5A CN202311023784A CN116760835A CN 116760835 A CN116760835 A CN 116760835A CN 202311023784 A CN202311023784 A CN 202311023784A CN 116760835 A CN116760835 A CN 116760835A
Authority
CN
China
Prior art keywords
server
target
data
file
main server
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
CN202311023784.5A
Other languages
English (en)
Other versions
CN116760835B (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.)
Shenzhen Huarui Distributed Technology Co ltd
Original Assignee
Shenzhen Huarui Distributed 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 Shenzhen Huarui Distributed Technology Co ltd filed Critical Shenzhen Huarui Distributed Technology Co ltd
Priority to CN202311023784.5A priority Critical patent/CN116760835B/zh
Publication of CN116760835A publication Critical patent/CN116760835A/zh
Application granted granted Critical
Publication of CN116760835B publication Critical patent/CN116760835B/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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • 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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/133Protocols for remote procedure calls [RPC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/549Remote execution
    • 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
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明涉及计算机技术领域,提供一种分布式存储方法、设备及介质,其方法应用于分布式系统,包括服务器集群及基于ETCD服务集群构建的服务管理中心,服务器集群包括主服务器及多个备服务器,服务器集群中的每个服务器包括软件开发工具包、父进程文件、子进程文件,能够提供一种轻量级高性能的分布式存储服务,基于共享内存技术提高了数据存储的速度,保证了主备服务器间数据同步的性能,并通过负载均衡方式实现了灵活的分布式存储服务的部署,及通过服务管理中心实现了有效的存储服务管理和监控,进而保证应用程序故障时能够快速进行故障恢复。

Description

分布式存储方法、设备及介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种分布式存储方法、设备及介质。
背景技术
现有技术中,将数据存储到磁盘是十分常见的应用场景,比如将数据写入文件、写入到数据库等。一般而言,将数据存储到磁盘中进行备份,在应用故障后重启可以从磁盘中读取备份的数据进行业务恢复。
但在分布式系统中,数据库服务太重且数据同步性能不高,尤其在高性能分布式系统中,无法保证应用主备切换后在备份服务器磁盘中可以读取到故障前的完整数据,导致故障后无法快速且准确的恢复服务。
发明内容
鉴于以上内容,有必要提供一种分布式存储方法、设备及介质,能够在分布式系统中的主服务器宕机时快速切换至备服务器进行数据恢复,且在切换后,能够保证服务正常执行。
一种分布式存储方法,应用于分布式系统,所述分布式系统包括服务器集群及基于ETCD服务集群构建的服务管理中心,所述服务器集群包括主服务器及多个备服务器,所述服务器集群中的每个服务器包括软件开发工具包、父进程文件、子进程文件;所述分布式存储方法包括:
当检测到所述主服务器的应用程序向所述主服务器的子进程文件发起登录请求时,所述主服务器的子进程文件向所述服务管理中心发起查询请求;
所述服务管理中心在接收到所述查询请求后,从所述多个备服务器中选择目标服务器,并将所述目标服务器的连接地址反馈给所述主服务器的子进程文件;
所述主服务器的子进程文件根据所述目标服务器的连接地址连接至所述目标服务器的子进程文件;
在连接成功后,所述主服务器的子进程文件向所述主服务器的应用程序反馈登录成功;
所述主服务器的应用程序调用所述主服务器的软件开发工具包所提供的接口,并基于负载均衡算法连接至所述目标服务器的目标共享内存,将应用数据写入所述目标共享内存;
所述主服务器的子进程文件从所述目标共享内存中读取所述应用数据,并将所述应用数据同步至所述目标服务器的子进程文件;
所述目标服务器的子进程文件将所述应用数据加密写入所述目标服务器的磁盘中,及所述主服务器的子进程文件将所述应用数据加密写入所述主服务器的磁盘中;
当检测到所述主服务器宕机时,所述目标服务器拉起所述目标服务器上与所述主服务器的应用程序对应的目标应用程序;
所述目标应用程序从所述目标服务器的磁盘中读取数据并解密,利用解密后得到的数据对所述主服务器的服务进行恢复。
根据本发明优选实施例,所述从所述多个备服务器中选择目标服务器包括:
所述服务管理中心检测所述主服务器是否有指定的服务器;
当检测到所述主服务器有指定的服务器时,所述服务管理中心将所述主服务器所指定的服务器确定为所述目标服务器;或者
当检测到所述主服务器没有指定的服务器时,所述服务管理中心从所述多个备服务器中获取在线服务器,并从所述在线服务器中选择空闲率最高的服务器作为所述目标服务器。
根据本发明优选实施例,所述服务器集群中的每个服务器所包括的子进程文件配置有至少一个共享内存;所述基于负载均衡算法连接至所述目标服务器的目标共享内存包括:
所述主服务器的应用程序获取所述目标服务器的共享内存中每个共享内存已连接应用程序的数量;
所述主服务器的应用程序从所述目标服务器的共享内存中获取所述已连接应用程序的数量最小的共享内存作为所述目标共享内存;
所述主服务器的应用程序连接至所述目标共享内存。
根据本发明优选实施例,所述服务器集群中每个服务器的父进程文件及子进程文件在后台运行,且一直处于运行状态;所述服务器集群中每个服务器的父进程文件及子进程文件为所在服务器上的所有应用程序提供服务;所述方法还包括:
每个服务器的父进程文件连续监控对应子进程文件的进程状态;
当监控到有子进程文件异常退出时,对应的父进程文件拉起新的子进程文件。
根据本发明优选实施例,所述从所述多个备服务器中选择目标服务器前,所述方法还包括:
在有服务器启动后,所述服务器获取自身的服务器标识码及监听的地址端口信息;
所述服务器将获取到的服务器标识码及地址端口信息注册至所述服务管理中心作为注册信息,并利用租约机制在自身异常后对所述注册信息进行失效处理;
所述服务管理中心获取注册过的所有服务器作为所述多个备服务器。
根据本发明优选实施例,所述方法还包括:
所述目标服务器获取当前应用场景;
当所述当前应用场景为高吞吐场景时,在所述主服务器的应用程序将一条数据写入所述目标共享内存后,返回继续处理下一条数据;
当所述当前应用场景为高可靠性场景时,在所述目标服务器的子进程文件将一条数据加密写入所述目标服务器的磁盘后,返回继续处理下一条数据;
当所述当前应用场景为除所述高吞吐场景及所述高可靠性场景外的其他场景时,在所述目标共享内存将一条数据同步至所述目标服务器的子进程文件后,返回继续处理下一条数据。
根据本发明优选实施例,不同服务器间的子进程文件间采用数据面与控制面分离的方式进行交互;
其中,所述控制面采用GRPC短连接进行交互;
其中,所述数据面采用TCP连接或者RDMA-Write连接进行交互;当网卡类型为RDMA类型时,所述数据面采用所述RDMA-Write连接进行交互,当所述网卡类型为除所述RDMA类型外的其他类型时,所述数据面采用所述TCP连接进行交互。
根据本发明优选实施例,所述利用解密后得到的数据对所述主服务器的服务进行恢复后,所述方法还包括:
所述目标服务器的子进程文件从除所述主服务器及所述目标服务器外的其他服务器中选择服务器;
所述目标服务器的子进程文件与选择的服务器的子进程文件建立新的连接进行数据同步。
一种分布式存储装置,运行于分布式系统,所述分布式系统包括服务器集群及基于ETCD服务集群构建的服务管理中心,所述服务器集群包括主服务器及多个备服务器,所述服务器集群中的每个服务器包括软件开发工具包、父进程文件、子进程文件;所述分布式存储装置包括:
所述主服务器的子进程文件,用于当检测到所述主服务器的应用程序向所述主服务器的子进程文件发起登录请求时,向所述服务管理中心发起查询请求;
所述服务管理中心,用于在接收到所述查询请求后,从所述多个备服务器中选择目标服务器,并将所述目标服务器的连接地址反馈给所述主服务器的子进程文件;
所述主服务器的子进程文件,还用于根据所述目标服务器的连接地址连接至所述目标服务器的子进程文件;
所述主服务器的子进程文件,还用于在连接成功后,向所述主服务器的应用程序反馈登录成功;
所述主服务器的应用程序,还用于调用所述主服务器的软件开发工具包所提供的接口,并基于负载均衡算法连接至所述目标服务器的目标共享内存,将应用数据写入所述目标共享内存;
所述主服务器的子进程文件,还用于从所述目标共享内存中读取所述应用数据,并将所述应用数据同步至所述目标服务器的子进程文件;
所述目标服务器的子进程文件,用于将所述应用数据加密写入所述目标服务器的磁盘中;
所述主服务器的子进程文件,还用于将所述应用数据加密写入所述主服务器的磁盘中;
所述目标服务器,用于当检测到所述主服务器宕机时,拉起所述目标服务器上与所述主服务器的应用程序对应的目标应用程序;
所述目标应用程序,用于从所述目标服务器的磁盘中读取数据并解密,利用解密后得到的数据对所述主服务器的服务进行恢复。
一种计算机设备,所述计算机设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现所述分布式存储方法。
一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现所述分布式存储方法。
由以上技术方案可以看出,本发明应用于分布式系统,包括服务器集群及基于ETCD服务集群构建的服务管理中心,服务器集群包括主服务器及多个备服务器,服务器集群中的每个服务器包括软件开发工具包、父进程文件、子进程文件,能够提供一种轻量级高性能的分布式存储服务,基于共享内存技术提高了数据存储的速度,保证了主备服务器间数据同步的性能,并通过负载均衡方式实现了灵活的分布式存储服务的部署,及通过服务管理中心实现了有效的存储服务管理和监控,进而保证应用程序故障时能够快速进行故障恢复。
附图说明
图1是本发明分布式存储方法的较佳实施例的流程图。
图2是本发明主服务器宕机时执行主备切换的示意图。
图3是本发明分布式存储装置的较佳实施例的功能模块图。
图4是本发明实现分布式存储方法的较佳实施例的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
如图1所示,是本发明分布式存储方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
所述分布式存储方法应用于一个或者多个计算机设备中,所述计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital SignalProcessor,DSP)、嵌入式设备等。
所述计算机设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备等。
所述计算机设备还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量主机或网络服务器构成的云。
所述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
所述分布式存储方法应用于分布式系统,所述分布式系统包括服务器集群及基于ETCD服务集群构建的服务管理中心,所述服务器集群包括主服务器及多个备服务器,所述服务器集群中的每个服务器包括软件开发工具包、父进程文件、子进程文件;所述方法包括:
S10,当检测到所述主服务器的应用程序(APP)向所述主服务器的子进程文件发起登录请求时,所述主服务器的子进程文件向所述服务管理中心发起查询请求。
在本实施例中,所述服务管理中心用于对各服务器的所有进程文件(Agent)进行统一管理。
在本实施例中,所述服务器集群中每个服务器的父进程文件及子进程文件在后台运行,且一直处于运行状态;所述服务器集群中每个服务器的父进程文件及子进程文件为所在服务器上的所有应用程序提供服务;所述方法还包括:
每个服务器的父进程文件连续监控对应子进程文件的进程状态;
当监控到有子进程文件异常退出时,对应的父进程文件拉起新的子进程文件。
具体地,Agent属于7*24小时运行的后台程序,且使用父子进程模式实现自愈功能。所述父进程文件作为监控进程监控所述子进程文件的运行状态,当所述子进程文件异常退出后,会自行拉起新的子进程文件进行服务的恢复,以保证Agent服务始终可用。
在本实施例中,不同服务器间的子进程文件间采用数据面与控制面分离的方式进行交互;
其中,所述控制面采用GRPC(Google Remote Procedure Calls,谷歌远程过程调用)短连接进行交互;
其中,所述数据面采用TCP(Transmission Control Protocol,传输控制协议)连接或者RDMA-Write(Remote Direct Memory Access- Write,全称远程直接内存访问写入)连接进行交互;当网卡类型为RDMA类型时,所述数据面采用所述RDMA-Write连接进行交互,当所述网卡类型为除所述RDMA类型外的其他类型时,所述数据面采用所述TCP连接进行交互。
其中,所述数据面为应用于存储数据的交互场景;
其中,所述控制面为用于重传、连接响应、登录、回复、心跳等交互场景。
在上述实施例中,所述RDMA-Write依赖于RDMA网卡驱动支持,在CPU(CentralProcessing Unit,中央处理器)不参与IO(Input/Output,输入/输出)的情况下能够将数据极速写到对端内存中,性能较传统的TCP有更大的优势,能够保证网络异常情况下数据基本不会丢失。
S11,所述服务管理中心在接收到所述查询请求后,从所述多个备服务器中选择目标服务器,并将所述目标服务器的连接地址反馈给所述主服务器的子进程文件。
在本实施例中,所述从所述多个备服务器中选择目标服务器前,所述方法还包括:
在有服务器启动后,所述服务器获取自身的服务器标识码及监听的地址端口信息;
所述服务器将获取到的服务器标识码及地址端口信息注册至所述服务管理中心作为注册信息,并利用租约机制在自身异常后对所述注册信息进行失效处理;
所述服务管理中心获取注册过的所有服务器作为所述多个备服务器。
其中,所述服务器标识码为全局唯一的用于标记一台服务器的标识码。
其中,通过利用租约机制在自身异常后对所述注册信息进行失效处理,能够避免后续在选择所述目标服务器时误将异常的服务器选择为所述目标服务器,导致服务异常。
在本实施例中,所述从所述多个备服务器中选择目标服务器包括:
所述服务管理中心检测所述主服务器是否有指定的服务器;
当检测到所述主服务器有指定的服务器时,所述服务管理中心将所述主服务器所指定的服务器确定为所述目标服务器;或者
当检测到所述主服务器没有指定的服务器时,所述服务管理中心从所述多个备服务器中获取在线服务器,并从所述在线服务器中选择空闲率最高的服务器作为所述目标服务器。
在上述实施例中,采用两种不同的方式选择所述目标服务器。其一,当有服务器与所述主服务器存在约定,即所述主服务器有指定的服务器时,直接将与所述主服务器存在约定的服务器选择为所述目标服务器;其二,当没有服务器与所述主服务器存在约定,即所述主服务器没有指定的服务器时,利用负载均衡方式从在线的服务器中选择最空闲的服务器作为所述目标服务器,由于所述目标服务器的空闲率最高,因此能够保证选择的所述目标服务器相较于其他未被选择的服务器能够提供更好的服务。
S12,所述主服务器的子进程文件根据所述目标服务器的连接地址连接至所述目标服务器的子进程文件。
在本实施例中,由于一台服务器上的子进程文件与同台服务器的应用程序间是直接交互的,因此将所述目标服务器的连接地址反馈给所述主服务器的子进程文件,并由所述主服务器的子进程文件根据所述目标服务器的连接地址连接至所述目标服务器的子进程文件。
S13,在连接成功后,所述主服务器的子进程文件向所述主服务器的应用程序反馈登录成功。
其中,所述连接地址可以包括IP(Internet Protocol,网际互连协议)地址、MAC(Media Access Control Address,媒体访问控制地址)地址等。
S14,所述主服务器的应用程序调用所述主服务器的软件开发工具包(SoftwareDevelopment Kit,SDK)所提供的接口,并基于负载均衡算法连接至所述目标服务器的目标共享内存,将应用数据写入所述目标共享内存。
在本实施例中,所述服务器集群中的每个服务器所包括的子进程文件配置有至少一个共享内存;所述基于负载均衡算法连接至所述目标服务器的目标共享内存包括:
所述主服务器的应用程序获取所述目标服务器的共享内存中每个共享内存已连接应用程序的数量;
所述主服务器的应用程序从所述目标服务器的共享内存中获取所述已连接应用程序的数量最小的共享内存作为所述目标共享内存;
所述主服务器的应用程序连接至所述目标共享内存。
可以理解的是,所述目标服务器可以预先配置有多个共享内存,如3个,每个共享内存已连接的应用程序数量也不同,当第一个共享内存已连接3个应用程序,第二个共享内存已连接1个应用程序,第三个共享内存已连接5个应用程序时,则第二个共享内存已连接应用程序的数量最小,是最不繁忙的共享内存,因此,则可以将第二个共享内存确定为所述目标共享内存,由最不繁忙的共享内存提供服务,能够有效保证服务的性能。
S15,所述主服务器的子进程文件从所述目标共享内存中读取所述应用数据,并将所述应用数据同步至所述目标服务器的子进程文件。
在本实施例中,SDK与进程文件Agent之间采用共享内存的方式进行数据交互,相较于传统的TCP方式具有更好的性能。
S16,所述目标服务器的子进程文件将所述应用数据加密写入所述目标服务器的磁盘中,及所述主服务器的子进程文件将所述应用数据加密写入所述主服务器的磁盘中。
例如:可以采用对称加密算法或者非对称加密算法将所述应用数据加密写入所述目标服务器的磁盘中,以保证数据存储过程的安全性。本发明对采用的加密算法不做限制。
具体地,所述主服务器的子进程文件将所述应用数据加密写入所述主服务器的磁盘中的方式与所述目标服务器的子进程文件将所述应用数据加密写入所述目标服务器的磁盘中的方式类似,在此不赘述。
在本实施例中,所述方法还包括:
所述目标服务器获取当前应用场景;
当所述当前应用场景为高吞吐场景时,在所述主服务器的应用程序将一条数据写入所述目标共享内存后,返回继续处理下一条数据;
当所述当前应用场景为高可靠性场景时,在所述目标服务器的子进程文件将一条数据加密写入所述目标服务器的磁盘后,返回继续处理下一条数据;
当所述当前应用场景为除所述高吞吐场景及所述高可靠性场景外的其他场景时,在所述目标共享内存将一条数据同步至所述目标服务器的子进程文件后,返回继续处理下一条数据。
在上述实施例中,能够通过多层次的存储模式保证数据的不同等级的可靠性。对应于不同的应用场景,Agent可以支持多种可靠性等级。具体地,对于高吞吐场景,在所述主服务器的应用程序将一条数据写入所述目标共享内存后,即可返回继续处理下一条数据,无需等待后续的写入流程,以提升数据处理的效率,这种情况下,由于Agent属于7*24小时运行进程,因此在服务器不宕机的情况下,可以保证数据完整性;对于高可靠性场景,在所述目标服务器的子进程文件将一条数据成功加密写入至所述目标服务器的磁盘后,再返回继续处理下一条数据,这种情况下,由于能够保证数据被完整的写入磁盘,因此数据存储更加可靠,保证了磁盘数据的完备性;对于除所述高吞吐场景及所述高可靠性场景外的其他场景,在所述目标共享内存将一条数据同步至所述目标服务器的子进程文件后,返回继续处理下一条数据,这种情况下,能够保证服务器宕机情况下,远端服务器(即所述目标服务器)上同步了较完整数据。
S17,当检测到所述主服务器宕机时,所述目标服务器拉起所述目标服务器上与所述主服务器的应用程序对应的目标应用程序。
例如:所述主服务器可能由于各种原因导致宕机,此时,所述目标服务器拉起所述目标服务器上与所述主服务器的应用程序对应的目标应用程序,以便进行服务的恢复。
S18,所述目标应用程序从所述目标服务器的磁盘中读取数据并解密,利用解密后得到的数据对所述主服务器的服务进行恢复。
具体地,可以采用与加密算法相对应的解密算法进行数据的解密。
在本实施例中,所述利用解密后得到的数据对所述主服务器的服务进行恢复后,所述方法还包括:
所述目标服务器的子进程文件从除所述主服务器及所述目标服务器外的其他服务器中选择服务器;
所述目标服务器的子进程文件与选择的服务器的子进程文件建立新的连接进行数据同步。
请参照图2,是本发明主服务器宕机时执行主备切换的示意图。其中,所述服务器1为所述主服务器,所述服务器2及所述服务器3为备服务器,所述服务器1中部署有APP、SDK,每台服务器都部署有Agent。应用程序使用SDK提供的接口进行数据存储,数据会通过应用程序所在服务器上的Agent将数据写入磁盘,不同服务器上的Agent之间会建立连接通道进行数据同步。当应用程序所在的服务器1宕机后,在另一台服务器2上拉起对应应用程序可以读取磁盘数据data并继续进行存储,同时会与其他服务器3上的Agent建立新的连接进行数据同步,以保证整个系统服务的可靠性。
由以上技术方案可以看出,本发明能够提供一种轻量级高性能的分布式存储服务,基于共享内存技术及RDMA-Write数据传输方式提高了数据存储的速度,保证了主备服务器间数据同步的性能,并通过负载均衡方式实现了灵活的分布式存储服务的部署,及通过服务管理中心实现了有效的存储服务管理和监控,进而保证应用程序故障时能够快速进行故障恢复。
如图3所示,是本发明分布式存储装置的较佳实施例的功能模块图。所述分布式存储装置11包括主服务器的子进程文件110、服务管理中心111、主服务器的应用程序112、目标服务器113、目标共享内存1131、目标服务器的子进程文件1132、目标应用程序1133。本发明所称的模块/单元是指一种能够被处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
所述分布式存储装置11运行于分布式系统,所述分布式系统包括服务器集群及基于ETCD服务集群构建的服务管理中心,所述服务器集群包括主服务器及多个备服务器,所述服务器集群中的每个服务器包括软件开发工具包、父进程文件、子进程文件;所述装置包括:
所述主服务器的子进程文件110,用于当检测到所述主服务器的应用程序112向所述主服务器的子进程文件110发起登录请求时,向所述服务管理中心111发起查询请求;
所述服务管理中心111,用于在接收到所述查询请求后,从所述多个备服务器中选择目标服务器113,并将所述目标服务器113的连接地址反馈给所述主服务器的子进程文件110;
所述主服务器的子进程文件110,还用于根据所述目标服务器113的连接地址连接至所述目标服务器的子进程文件1132;
所述主服务器的子进程文件110,还用于在连接成功后,向所述主服务器的应用程序112反馈登录成功;
所述主服务器的应用程序112,还用于调用所述主服务器的软件开发工具包所提供的接口,并基于负载均衡算法连接至所述目标服务器113的目标共享内存1131,将应用数据写入所述目标共享内存1131;
所述主服务器的子进程文件110,还用于从所述目标共享内存1131中读取所述应用数据,并将所述应用数据同步至所述目标服务器的子进程文件1132;
所述目标服务器的子进程文件1132,用于将所述应用数据加密写入所述目标服务器113的磁盘中;
所述主服务器的子进程文件110,还用于将所述应用数据加密写入所述主服务器的磁盘中;
所述目标服务器113,用于当检测到所述主服务器宕机时,拉起所述目标服务器113上与所述主服务器的应用程序对应的目标应用程序1133;
所述目标应用程序1133,用于从所述目标服务器113的磁盘中读取数据并解密,利用解密后得到的数据对所述主服务器的服务进行恢复。
由以上技术方案可以看出,本发明能够提供一种轻量级高性能的分布式存储服务,基于共享内存技术及RDMA-Write数据传输方式提高了数据存储的速度,保证了主备服务器间数据同步的性能,并通过负载均衡方式实现了灵活的分布式存储服务的部署,及通过服务管理中心实现了有效的存储服务管理和监控,进而保证应用程序故障时能够快速进行故障恢复。
如图4所示,是本发明实现分布式存储方法的较佳实施例的计算机设备的结构示意图。
所述计算机设备1可以包括存储器12、处理器13和总线,还可以包括存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如分布式存储程序。
本领域技术人员可以理解,所述示意图仅仅是计算机设备1的示例,并不构成对计算机设备1的限定,所述计算机设备1既可以是总线型结构,也可以是星形结构,所述计算机设备1还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置,例如所述计算机设备1还可以包括输入输出设备、网络接入设备等。
需要说明的是,所述计算机设备1仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
其中,存储器12至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器12在一些实施例中可以是计算机设备1的内部存储单元,例如该计算机设备1的移动硬盘。存储器12在另一些实施例中也可以是计算机设备1的外部存储设备,例如计算机设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器12还可以既包括计算机设备1的内部存储单元也包括外部存储设备。存储器12不仅可以用于存储安装于计算机设备1的应用软件及各类数据,例如分布式存储程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器13在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。处理器13是所述计算机设备1的控制核心(Control Unit),利用各种接口和线路连接整个计算机设备1的各个部件,通过运行或执行存储在所述存储器12内的程序或者模块(例如执行分布式存储程序等),以及调用存储在所述存储器12内的数据,以执行计算机设备1的各种功能和处理数据。
所述处理器13执行所述计算机设备1的操作系统以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个分布式存储方法实施例中的步骤,例如图1所示的步骤。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机程序在所述计算机设备1中的执行过程。例如,所述计算机程序可以被分割成主服务器的子进程文件110、服务管理中心111、主服务器的应用程序112、目标服务器113、目标共享内存1131、目标服务器的子进程文件1132、目标应用程序1133。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、计算机设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述分布式存储方法的部分。
所述计算机设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指示相关的硬件设备来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器等。
进一步地,计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,在图4中仅用一根直线表示,但并不表示仅有一根总线或一种类型的总线。所述总线被设置为实现所述存储器12以及至少一个处理器13等之间的连接通信。
尽管未示出,所述计算机设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器13逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述计算机设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述计算机设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该计算机设备1与其他计算机设备之间建立通信连接。
可选地,该计算机设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在计算机设备1中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
图4仅示出了具有组件12-13的计算机设备1,本领域技术人员可以理解的是,图4示出的结构并不构成对所述计算机设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
结合图1,所述计算机设备1中的所述存储器12存储多个指令以实现一种分布式存储方法,所述处理器13可执行所述多个指令从而实现:
当检测到所述主服务器的应用程序向所述主服务器的子进程文件发起登录请求时,所述主服务器的子进程文件向所述服务管理中心发起查询请求;
所述服务管理中心在接收到所述查询请求后,从所述多个备服务器中选择目标服务器,并将所述目标服务器的连接地址反馈给所述主服务器的子进程文件;
所述主服务器的子进程文件根据所述目标服务器的连接地址连接至所述目标服务器的子进程文件;
在连接成功后,所述主服务器的子进程文件向所述主服务器的应用程序反馈登录成功;
所述主服务器的应用程序调用所述主服务器的软件开发工具包所提供的接口,并基于负载均衡算法连接至所述目标服务器的目标共享内存,将应用数据写入所述目标共享内存;
所述主服务器的子进程文件从所述目标共享内存中读取所述应用数据,并将所述应用数据同步至所述目标服务器的子进程文件;
所述目标服务器的子进程文件将所述应用数据加密写入所述目标服务器的磁盘中,及所述主服务器的子进程文件将所述应用数据加密写入所述主服务器的磁盘中;
当检测到所述主服务器宕机时,所述目标服务器拉起所述目标服务器上与所述主服务器的应用程序对应的目标应用程序;
所述目标应用程序从所述目标服务器的磁盘中读取数据并解密,利用解密后得到的数据对所述主服务器的服务进行恢复。
具体地,所述处理器13对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
需要说明的是,本案中所涉及到的数据均为合法取得。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
本发明可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。本发明中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (10)

1.一种分布式存储方法,应用于分布式系统,其特征在于,所述分布式系统包括服务器集群及基于ETCD服务集群构建的服务管理中心,所述服务器集群包括主服务器及多个备服务器,所述服务器集群中的每个服务器包括软件开发工具包、父进程文件、子进程文件;所述分布式存储方法包括:
当检测到所述主服务器的应用程序向所述主服务器的子进程文件发起登录请求时,所述主服务器的子进程文件向所述服务管理中心发起查询请求;
所述服务管理中心在接收到所述查询请求后,从所述多个备服务器中选择目标服务器,并将所述目标服务器的连接地址反馈给所述主服务器的子进程文件;
所述主服务器的子进程文件根据所述目标服务器的连接地址连接至所述目标服务器的子进程文件;
在连接成功后,所述主服务器的子进程文件向所述主服务器的应用程序反馈登录成功;
所述主服务器的应用程序调用所述主服务器的软件开发工具包所提供的接口,并基于负载均衡算法连接至所述目标服务器的目标共享内存,将应用数据写入所述目标共享内存;
所述主服务器的子进程文件从所述目标共享内存中读取所述应用数据,并将所述应用数据同步至所述目标服务器的子进程文件;
所述目标服务器的子进程文件将所述应用数据加密写入所述目标服务器的磁盘中,及所述主服务器的子进程文件将所述应用数据加密写入所述主服务器的磁盘中;
当检测到所述主服务器宕机时,所述目标服务器拉起所述目标服务器上与所述主服务器的应用程序对应的目标应用程序;
所述目标应用程序从所述目标服务器的磁盘中读取数据并解密,利用解密后得到的数据对所述主服务器的服务进行恢复。
2.如权利要求1所述的分布式存储方法,其特征在于,所述从所述多个备服务器中选择目标服务器包括:
所述服务管理中心检测所述主服务器是否有指定的服务器;
当检测到所述主服务器有指定的服务器时,所述服务管理中心将所述主服务器所指定的服务器确定为所述目标服务器;或者
当检测到所述主服务器没有指定的服务器时,所述服务管理中心从所述多个备服务器中获取在线服务器,并从所述在线服务器中选择空闲率最高的服务器作为所述目标服务器。
3.如权利要求1所述的分布式存储方法,其特征在于,所述服务器集群中的每个服务器所包括的子进程文件配置有至少一个共享内存;所述基于负载均衡算法连接至所述目标服务器的目标共享内存包括:
所述主服务器的应用程序获取所述目标服务器的共享内存中每个共享内存已连接应用程序的数量;
所述主服务器的应用程序从所述目标服务器的共享内存中获取所述已连接应用程序的数量最小的共享内存作为所述目标共享内存;
所述主服务器的应用程序连接至所述目标共享内存。
4.如权利要求1所述的分布式存储方法,其特征在于,所述服务器集群中每个服务器的父进程文件及子进程文件在后台运行,且一直处于运行状态;所述服务器集群中每个服务器的父进程文件及子进程文件为所在服务器上的所有应用程序提供服务;所述方法还包括:
每个服务器的父进程文件连续监控对应子进程文件的进程状态;
当监控到有子进程文件异常退出时,对应的父进程文件拉起新的子进程文件。
5.如权利要求1所述的分布式存储方法,其特征在于,所述从所述多个备服务器中选择目标服务器前,所述方法还包括:
在有服务器启动后,所述服务器获取自身的服务器标识码及监听的地址端口信息;
所述服务器将获取到的服务器标识码及地址端口信息注册至所述服务管理中心作为注册信息,并利用租约机制在自身异常后对所述注册信息进行失效处理;
所述服务管理中心获取注册过的所有服务器作为所述多个备服务器。
6.如权利要求1所述的分布式存储方法,其特征在于,所述方法还包括:
所述目标服务器获取当前应用场景;
当所述当前应用场景为高吞吐场景时,在所述主服务器的应用程序将一条数据写入所述目标共享内存后,返回继续处理下一条数据;
当所述当前应用场景为高可靠性场景时,在所述目标服务器的子进程文件将一条数据加密写入所述目标服务器的磁盘后,返回继续处理下一条数据;
当所述当前应用场景为除所述高吞吐场景及所述高可靠性场景外的其他场景时,在所述目标共享内存将一条数据同步至所述目标服务器的子进程文件后,返回继续处理下一条数据。
7.如权利要求1所述的分布式存储方法,其特征在于,不同服务器间的子进程文件间采用数据面与控制面分离的方式进行交互;
其中,所述控制面采用GRPC短连接进行交互;
其中,所述数据面采用TCP连接或者RDMA-Write连接进行交互;当网卡类型为RDMA类型时,所述数据面采用所述RDMA-Write连接进行交互,当所述网卡类型为除所述RDMA类型外的其他类型时,所述数据面采用所述TCP连接进行交互。
8.如权利要求1所述的分布式存储方法,其特征在于,所述利用解密后得到的数据对所述主服务器的服务进行恢复后,所述方法还包括:
所述目标服务器的子进程文件从除所述主服务器及所述目标服务器外的其他服务器中选择服务器;
所述目标服务器的子进程文件与选择的服务器的子进程文件建立新的连接进行数据同步。
9.一种计算机设备,其特征在于,所述计算机设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现如权利要求1至8中任意一项所述的分布式存储方法。
10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现如权利要求1至8中任意一项所述的分布式存储方法。
CN202311023784.5A 2023-08-15 2023-08-15 分布式存储方法、设备及介质 Active CN116760835B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311023784.5A CN116760835B (zh) 2023-08-15 2023-08-15 分布式存储方法、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311023784.5A CN116760835B (zh) 2023-08-15 2023-08-15 分布式存储方法、设备及介质

Publications (2)

Publication Number Publication Date
CN116760835A true CN116760835A (zh) 2023-09-15
CN116760835B CN116760835B (zh) 2023-10-20

Family

ID=87948124

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311023784.5A Active CN116760835B (zh) 2023-08-15 2023-08-15 分布式存储方法、设备及介质

Country Status (1)

Country Link
CN (1) CN116760835B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8712966B1 (en) * 2007-08-09 2014-04-29 Emc Corporation Backup and recovery of distributed storage areas
CN105337755A (zh) * 2014-08-08 2016-02-17 阿里巴巴集团控股有限公司 主从架构服务器及其处理业务的方法和处理业务的系统
CN111277629A (zh) * 2020-01-13 2020-06-12 浙江工业大学 一种基于高可用性的web高并发系统及方法
CN114185484A (zh) * 2021-11-04 2022-03-15 福建升腾资讯有限公司 一种文档存储集群化的方法、装置、设备和介质
CN115118738A (zh) * 2022-08-30 2022-09-27 深圳华锐分布式技术股份有限公司 基于rdma的灾备方法、装置、设备及介质
CN116302352A (zh) * 2023-03-16 2023-06-23 中国建设银行股份有限公司 集群灾备处理方法、装置、电子设备和存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8712966B1 (en) * 2007-08-09 2014-04-29 Emc Corporation Backup and recovery of distributed storage areas
CN105337755A (zh) * 2014-08-08 2016-02-17 阿里巴巴集团控股有限公司 主从架构服务器及其处理业务的方法和处理业务的系统
CN111277629A (zh) * 2020-01-13 2020-06-12 浙江工业大学 一种基于高可用性的web高并发系统及方法
CN114185484A (zh) * 2021-11-04 2022-03-15 福建升腾资讯有限公司 一种文档存储集群化的方法、装置、设备和介质
CN115118738A (zh) * 2022-08-30 2022-09-27 深圳华锐分布式技术股份有限公司 基于rdma的灾备方法、装置、设备及介质
CN116302352A (zh) * 2023-03-16 2023-06-23 中国建设银行股份有限公司 集群灾备处理方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN116760835B (zh) 2023-10-20

Similar Documents

Publication Publication Date Title
US10983880B2 (en) Role designation in a high availability node
JP5102901B2 (ja) データセンタにわたる複数データサーバ間のデータ完全性を保持する方法およびシステム
US6687849B1 (en) Method and apparatus for implementing fault-tolerant processing without duplicating working process
US10819641B2 (en) Highly available servers
US20120036345A1 (en) Embedded device and file change notification method of the embedded device
CN114124968B (zh) 基于行情数据的负载均衡方法、装置、设备及介质
CN115118738B (zh) 基于rdma的灾备方法、装置、设备及介质
CN109033814A (zh) 智能合约触发方法、装置、设备及存储介质
CN105373563B (zh) 数据库切换方法及装置
CN116743885B (zh) 基于udp引擎的数据传输方法、装置、设备及介质
CN111277626B (zh) 服务器升级方法、装置、电子设备及介质
CN116760835B (zh) 分布式存储方法、设备及介质
CN117851520B (zh) 证券核心交易引擎的数据同步方法、系统、设备及介质
CN114185502A (zh) 基于产线环境的日志打印方法、装置、设备及介质
CN116860508B (zh) 分布式系统软件缺陷连续自愈方法、装置、设备及介质
CN115277376B (zh) 灾备切换方法、装置、设备及介质
CN116361753B (zh) 权限认证方法、装置、设备及介质
CN113687834B (zh) 分布式系统节点部署方法、装置、设备及介质
CN115269235B (zh) 基于不同版本组件的消息搬运方法、装置、设备及介质
CN116418896B (zh) 基于定时器的任务执行方法、装置、设备及介质
CN116306591B (zh) 流程表单生成方法、装置、设备及介质
CN116401104A (zh) 应用数据源切换方法、装置、设备及介质
CN114244638B (zh) 组播网络通信方法、装置、设备及介质
CN117316359B (zh) 血液检测过程跟踪方法、装置、设备及介质
CN118193493A (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