CN111464580A - 主服务器的选取方法及装置 - Google Patents

主服务器的选取方法及装置 Download PDF

Info

Publication number
CN111464580A
CN111464580A CN201910058551.6A CN201910058551A CN111464580A CN 111464580 A CN111464580 A CN 111464580A CN 201910058551 A CN201910058551 A CN 201910058551A CN 111464580 A CN111464580 A CN 111464580A
Authority
CN
China
Prior art keywords
server
record
current
database table
main
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
CN201910058551.6A
Other languages
English (en)
Other versions
CN111464580B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910058551.6A priority Critical patent/CN111464580B/zh
Publication of CN111464580A publication Critical patent/CN111464580A/zh
Application granted granted Critical
Publication of CN111464580B publication Critical patent/CN111464580B/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
    • 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种主服务器的选取方法及装置,涉及互联网技术领域,能够解决现有技术选主服务器需要在额外服务器上部署第三方服务组件,导致需要投入额外服务器资源和运维资源的问题。本发明的方法主要包括:查找数据库表中是否存在目标应用的主服务器记录,所述目标应用是当前服务器服务的应用;若不存在所述主服务器记录,则将所述当前服务器作为主服务器的记录添加到所述数据库表中。本发明主要适用于为应用选主服务器的场景中。

Description

主服务器的选取方法及装置
技术领域
本发明涉及互联网技术领域,特别是涉及一种主服务器的选取方法及装置。
背景技术
随着应用程序的功能和用户量不断增多,服务应用程序的应用服务器的数量也越来越多。这些应用服务器可以一起服务不同的用户,为用户提供各种功能。然而,并不是所有的任务都可以并发或者重复进行的,例如历史任务备份、任务创建与作业量统计等特定任务若被重复执行,则会导致数据错误。因此,当应用服务器多于一台时,就需要从多台应用服务器中选出一台应用服务器作为主服务器,来执行这些特定任务。
目前,选取主服务器的方法主要包括:(1)在额外的服务器上部署ZooKeeper服务,各应用服务器在ZooKeeper指定的目录下创建指定名称的瞬时节点,如果该名称的节点已存在则创建失败,如果该节点不存在则创建成功,且创建成功的应用服务器为主服务器。(2)在额外的服务器上部署Redis(重申)服务,各应用服务器在Redis上创建指定名称的具有过期时间的Key(关键字),如果该Key已存在则创建失败,如果该Key不存在则创建成功,且创建成功的应用服务器为主服务器。
由此可知,上述两种方法均需要部署额外的服务器,并在额外的服务器上部署第三方服务组件,从而需要投入额外的服务器资源和运维资源。
发明内容
有鉴于此,本发明提供的主服务器的选取方法及装置,其目的在于解决现有技术选主服务器需要在额外服务器上部署第三方服务组件,导致需要投入额外服务器资源和运维资源的问题。
第一方面,本发明提供了一种主服务器的选取方法,所述方法包括:
查找数据库表中是否存在目标应用的主服务器记录,所述目标应用是当前服务器服务的应用;
若不存在所述主服务器记录,则将所述当前服务器作为主服务器的记录添加到所述数据库表中。
可选的,若存在所述主服务器记录,则所述方法还包括:
根据所述主服务器记录中的设备标识判断所述当前服务器是否为所述目标应用的主服务器;
若所述当前服务器是主服务器,则将所述主服务器记录中的修改时间修改为当前时间;
若所述当前服务器不是主服务器,则判断所述主服务器记录中的修改时间是否已过期;若已过期,则将所述数据库表中的所述主服务器记录修改为以所述当前服务器为主服务器的记录。
可选的,若未过期或者修改所述主服务器记录失败,则所述方法还包括:
查找所述数据库表中是否存在以所述当前服务器为从服务器的记录;
若存在以所述当前服务器为从服务器的记录,则将查找到的记录中的修改时间修改为当前时间;
若不存在以所述当前服务器为从服务器的记录,则向所述数据库表中添加以所述当前服务器为从服务器的记录。
可选的,将所述数据库表中的所述主服务器记录修改为以所述当前服务器为主服务器的记录包括:
基于所述数据库表的乐观锁机制,将所述数据库表中的所述主服务器记录中的设备标识修改为所述当前服务器的设备标识,修改时间修改为当前时间,并更新版本号。
可选的,在将所述数据库表中的所述主服务器记录修改为以所述当前服务器为主服务器的记录之后,所述方法还包括:
删除所述数据库表中以所述当前服务器为从服务器的记录。
可选的,所述方法还包括:
若未成功将所述当前服务器作为主服务器的记录添加到所述数据库表中,则将所述当前服务器作为从服务器的记录添加到所述数据库表中。
可选的,所述方法还包括:
在将所述当前服务器作为主服务器的记录添加到所述数据库表中之后,在所述当前服务器中添加主服务器标识;
和/或,在将所述当前服务器作为从服务器的记录添加到所述数据库表中之后,在所述当前服务器中添加从服务器标识。
可选的,所述方法还包括:
若所述数据库表中含有修改时间的超期时长大于预设时长阈值的服务器记录,则删除所述修改时间的超期时长大于预设时长阈值的服务器记录。
第二方面,本发明提供了一种主服务器的选取装置,所述装置包括:
查找单元,用于查找数据库表中是否存在目标应用的主服务器记录,所述目标应用是当前服务器服务的应用;
记录添加单元,用于当不存在所述主服务器记录时,将所述当前服务器作为主服务器的记录添加到所述数据库表中。
可选的,所述装置还包括:
第一判断单元,用于当存在所述主服务器记录时,根据所述主服务器记录中的设备标识判断所述当前服务器是否为所述目标应用的主服务器;
修改单元,用于当所述当前服务器是主服务器时,将所述主服务器记录中的修改时间修改为当前时间;
第二判断单元,用于当所述当前服务器不是主服务器时,判断所述主服务器记录中的修改时间是否已过期;
所述修改单元,还用于当已过期时,将所述数据库表中的所述主服务器记录修改为以所述当前服务器为主服务器的记录。
可选的,所述查找单元,还用于当未过期或者修改所述主服务器记录失败时,查找所述数据库表中是否存在以所述当前服务器为从服务器的记录;
所述修改单元,还用于当存在以所述当前服务器为从服务器的记录时,将查找到的记录中的修改时间修改为当前时间;
所述记录添加单元,用于当不存在以所述当前服务器为从服务器的记录时,向所述数据库表中添加以所述当前服务器为从服务器的记录。
可选的,所述修改单元,用于基于所述数据库表的乐观锁机制,将所述数据库表中的所述主服务器记录中的设备标识修改为所述当前服务器的设备标识,修改时间修改为当前时间,并更新版本号。
可选的,所述装置还包括:
第一删除单元,用于在将所述数据库表中的所述主服务器记录修改为以所述当前服务器为主服务器的记录之后,删除所述数据库表中以所述当前服务器为从服务器的记录。
可选的,所述记录添加单元,还用于当未成功将所述当前服务器作为主服务器的记录添加到所述数据库表中时,将所述当前服务器作为从服务器的记录添加到所述数据库表中。
可选的,所述装置还包括:
标识添加单元,用于在将所述当前服务器作为主服务器的记录添加到所述数据库表中之后,在所述当前服务器中添加主服务器标识;和/或,在将所述当前服务器作为从服务器的记录添加到所述数据库表中之后,在所述当前服务器中添加从服务器标识。
可选的,所述装置还包括:
第二删除单元,用于当所述数据库表中含有修改时间的超期时长大于预设时长阈值的服务器记录时,删除所述修改时间的超期时长大于预设时长阈值的服务器记录。
第三方面,本发明提供了一种存储介质,所述存储介质存储有多条指令,所述指令适用于由处理器加载并执行如第一方面所述的主服务器的选取方法。
第四方面,本发明提供了一种电子设备,所述电子设备包括存储介质和处理器;
所述处理器,适于实现各指令;
所述存储介质,适于存储多条指令;
所述指令适于由所述处理器加载并执行如第一方面所述的主服务器的选取方法。
借由上述技术方案,本发明提供的主服务器的选取方法及装置,能够在当前服务器要申请当选目标应用的主服务器时,只需查找数据库表中是否存在目标应用的主服务器记录,若不存在,则通过将当前服务器作为主服务器的记录添加到数据库表中,便可成功将当前服务器注册为主服务器,从而整个主服务器选取过程只需借助已有的数据库,而无需再部署额外的服务器,更无需在额外服务器上部署第三方服务组件,进而了节省服务器资源和运维资源。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种主服务器的选取方法的流程图;
图2示出了本发明实施例提供的另一种主服务器的选取方法的流程图;
图3示出了本发明实施例提供的一种主服务器的选取装置的组成框图;
图4示出了本发明实施例提供的另一种主服务器的选取装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种主服务器的选取方法,如图1所示,所述方法主要包括:
101、查找数据库表中是否存在目标应用的主服务器记录。
所述目标应用是当前服务器服务的应用。数据库表包括主键、应用标识(例如应用名称)、设备标识(例如设备IP地址(Internet Protocol Address,网间协议地址))、角色、版本号、创建时间、修改时间等字段。其中,当主服务器的设备标识被修改时,需要修改版本号,以实现对主服务器的唯一修改(详见下述乐观锁机制的描述);创建时间是首次添加记录的时间;修改时间是服务器执行完一次本发明实施例流程时所记录的当时时间,且服务器可以每隔一个心跳时间就执行一次本发明实施例流程,从而能够反映出服务器是否在线。主服务器记录是角色字段的取值为主服务器的记录,从服务器记录是角色字段的取值是从服务器的记录。
当当前服务器需要申请当选目标应用的主服务器时,可以查找一下数据库表中是否存在目标应用的主服务器记录;若存在目标应用的主服务器记录,说明主服务器记录中的设备标识所对应的服务器在当前服务器之前已申请当选主服务器;若不存在目标应用的主服务器记录,则说明还没有其他服务器申请当选主服务器。
另外,一个数据库表可以为一种应用提供选主服务器功能,也可以为多种应用提供选主服务器功能。
102、若不存在所述主服务器记录,则将所述当前服务器作为主服务器的记录添加到所述数据库表中。
当数据库表中不存在目标应用的主服务器记录时,说明目前还没有目标应用的主服务器,因此当前服务器可以注册自己为主服务器,即可以将当前服务器作为主服务器的记录添加到数据库表中。
本发明实施例提供的主服务器的选取方法,能够在当前服务器要申请当选目标应用的主服务器时,只需查找数据库表中是否存在目标应用的主服务器记录,若不存在,则通过将当前服务器作为主服务器的记录添加到数据库表中,便可成功将当前服务器注册为主服务器,从而整个主服务器选取过程只需借助已有的数据库,而无需再部署额外的服务器,更无需在额外服务器上部署第三方服务组件,进而了节省服务器资源和运维资源。
进一步的,依据上述方法实施例,本发明的另一个实施例还提供了一种主服务器的选取方法,如图2所示,所述方法主要包括:
201、查找数据库表中是否存在目标应用的主服务器记录。
202、若不存在所述主服务器记录,则将所述当前服务器作为主服务器的记录添加到所述数据库表中。
在上述步骤101中提及,数据库表可以包括修改时间,用于反应服务器是否在线。为了避免因主服务器长期不在线,而无法使得应用任务正常执行,当存在主服务器记录时,需要修改主服务器记录,使得主服务器记录中记录的主服务器是在线的。具体实现过程如下述步骤203-206:
203、若存在所述主服务器记录,则根据所述主服务器记录中的设备标识判断所述当前服务器是否为所述目标应用的主服务器。
具体的,可以将主服务器记录中的设备标识与当前服务器的设备标识进行对比;若两者相同,则确定当前服务器为目标应用的主服务器;若两者不同,则确定当前服务器不是目标应用的主服务器。
204、若所述当前服务器是主服务器,则将所述主服务器记录中的修改时间修改为当前时间。
若当前服务器是主服务器,则为了向其他服务器反应出当前服务器依然在线,需要将主服务器记录中的修改时间进行更新,更新为当前时间。
205、若所述当前服务器不是主服务器,则判断所述主服务器记录中的修改时间是否已过期。
206、若已过期,则将所述数据库表中的所述主服务器记录修改为以所述当前服务器为主服务器的记录。
若当前服务器不是主服务器,则需要判断当前的主服务器是否长期不在线,若长期不在线,则需要更换主服务器,如可以将当前服务器替换原有主服务器作为新的主服务器。具体的,当前服务器可以判断主服务器记录中的修改时间是否已过期(即判断修改时间与当前时间之差是否超过一定时长),若已过期,则可以通过将数据库表中的主服务器记录修改为以当前服务器为主服务器的的记录的方式,来实现当前服务器取代原有主服务器为新主服务器。
在实际应用中,可能会存在多台服务器同时或者几乎同时向数据库表修改同一条主服务器记录的情况,但主服务器一般只能有一台,所以为了避免发生多台服务器取代为主服务器的现象,本步骤206的具体实现方式可以为:基于所述数据库表的乐观锁机制,将所述数据库表中的所述主服务器记录中的设备标识修改为所述当前服务器的设备标识,修改时间修改为当前时间,并更新版本号。
示例性的,基于乐观锁机制更新主服务器记录的过程可以为:若数据库表中记录的目标应用的主服务器为A,版本号为1,修改时间为t1,且此时B判断A已经不在线了,则B会将从数据库表中读取的主服务器记录中的设备标识修改为自己的设备标识,将版本号修改为2,修改时间修改为t2,并将这些更新信息提交给数据库,数据库判断提交过来的版本号大于数据库表中的版本号,则根据提交的更新信息成功更新数据库表。但当在B判断A不在线的时候,C也判断A不在线,此时C也会将数据库表中读取的主服务器记录做相同逻辑的修改,并提交给数据库,但由于C向数据库提交更新信息之前,B已经提交了更新信息,并B更新成功,所以数据库接收到C提交的更新信息时,提交的更新信息中的版本号等于数据库表中的版本号,故C更新数据库失败。
本发明实施例提供的主服务器的选取方法,不仅能够在不依赖额外服务器和额外第三方服务组件的情况下,实现主服务器的选取功能,还可以通过修改时间字段来反应服务器的在线情况,并且当确定当前的主服务器不在线一定时间时,可由当前服务器取代原有的主服务器成为新的主服务器,从而使得应用的主服务器一直能够执行主服务器任务。
可选的,若上述步骤205的判断结果为未过期或者基于上述步骤206修改所述主服务器记录时修改失败,则当前服务器就无法取代为主服务器,而只能是从服务器,故需要在数据库表中更新当前服务器的从服务器记录。
具体的,当前服务器可以先查找所述数据库表中是否存在以所述当前服务器为从服务器的记录;若存在以所述当前服务器为从服务器的记录,则将查找到的记录中的修改时间修改为当前时间;若不存在以所述当前服务器为从服务器的记录,则向所述数据库表中添加以所述当前服务器为从服务器的记录。
可选的,由于一台服务器只能担任一种角色,而不能同时担任主服务器和从服务器两种角色,所以在将所述数据库表中的所述主服务器记录修改为以所述当前服务器为主服务器的记录之后,若数据库表中还存在以所述当前服务器为从服务器的记录,则需要删除所述数据库表中以所述当前服务器为从服务器的记录。
可选的,与修改主服务器记录相类似的,当数据库表中没有主服务器记录时,往数据库表中添加主服务器记录的服务器也可能存在多台,但一台服务器只能担任一种角色,所以在往数据库表中添加主服务器记录时,数据库也会设置一个应用只允许添加一条主服务器记录的规则(例如通过SQL(Structured Query Language,结构化查询语言)语句控制同一个应用只能添加一条主服务器记录)。在这种情况下,当前服务器在将所述当前服务器作为主服务器的记录添加到所述数据库表中时,可能会发生添加失败的现象。若添加失败,则说明当前服务器申请当前主服务器失败,此时当前服务器只能担任从服务器,故可以将所述当前服务器作为从服务器的记录添加到所述数据库表中,实现从服务器的注册。
可选的,无论当前服务器申请为主服务器还是从服务器,为了当前服务器后续执行任务时,能够获知自己应该执行哪些任务,不应该执行哪些任务,或者让其他服务器能够知道当前服务器具有哪些任务执行权限,可以在将所述当前服务器作为主服务器的记录添加到所述数据库表中之后,在所述当前服务器中添加主服务器标识,和/或,在将所述当前服务器作为从服务器的记录添加到所述数据库表中之后,在所述当前服务器中添加从服务器标识。以便后续当前服务器根据本地添加的服务器标识执行相应任务。
可选的,在实际应用中,已向数据库表中添加主服务器记录或者从服务器记录的服务器可能会因为故障等原因而长期下线,不参与服务应用的工作,此时其他服务器申请主服务器或者从服务器时,数据库表中的记录会给其他服务器带来误导,故若所述数据库表中含有修改时间的超期时长大于预设时长阈值的服务器记录,则可以删除所述修改时间的超期时长大于预设时长阈值的服务器记录。其中,这里的预设时长阈值可以远大于判断主服务器的修改时间是否过期的时长。另外,删除数据库表中的长期下线的服务器记录,还可以节省数据库空间,提高后续查询主服务器记录、从服务器记录的效率。
此外,除非遇到机器宕机、网络故障等突发状况服务器才会不在线,故服务器角色的变化频率还是很低的,但这种突发状况又不可预知,所以每台服务器可以每休眠一段时间,就执行一次上述的角色申请流程,从而不仅可以减少服务器开销,还可以使得服务器角色得到及时更新。其中休眠的时间长度可以为一个心跳时间。
进一步的,依据上述方法实施例,本发明的另一个实施例还提供了一种主服务器的选取装置,如图3所示,所述装置包括:
查找单元31,用于查找数据库表中是否存在目标应用的主服务器记录,所述目标应用是当前服务器服务的应用;
记录添加单元32,用于当不存在所述主服务器记录时,将所述当前服务器作为主服务器的记录添加到所述数据库表中。
可选的,如图4所示,所述装置还包括:
第一判断单元33,用于当存在所述主服务器记录时,根据所述主服务器记录中的设备标识判断所述当前服务器是否为所述目标应用的主服务器;
修改单元34,用于当所述当前服务器是主服务器时,将所述主服务器记录中的修改时间修改为当前时间;
第二判断单元35,用于当所述当前服务器不是主服务器时,判断所述主服务器记录中的修改时间是否已过期;
所述修改单元34,还用于当已过期时,将所述数据库表中的所述主服务器记录修改为以所述当前服务器为主服务器的记录。
可选的,所述查找单元31,还用于当未过期或者修改所述主服务器记录失败时,查找所述数据库表中是否存在以所述当前服务器为从服务器的记录;
所述修改单元34,还用于当存在以所述当前服务器为从服务器的记录时,将查找到的记录中的修改时间修改为当前时间;
所述记录添加单元32,用于当不存在以所述当前服务器为从服务器的记录时,向所述数据库表中添加以所述当前服务器为从服务器的记录。
可选的,所述修改单元34,用于基于所述数据库表的乐观锁机制,将所述数据库表中的所述主服务器记录中的设备标识修改为所述当前服务器的设备标识,修改时间修改为当前时间,并更新版本号。
可选的,如图4所示,所述装置还包括:
第一删除单元36,用于在将所述数据库表中的所述主服务器记录修改为以所述当前服务器为主服务器的记录之后,删除所述数据库表中以所述当前服务器为从服务器的记录。
可选的,所述记录添加单元32,还用于当未成功将所述当前服务器作为主服务器的记录添加到所述数据库表中时,将所述当前服务器作为从服务器的记录添加到所述数据库表中。
可选的,如图4所示,所述装置还包括:
标识添加单元37,用于在将所述当前服务器作为主服务器的记录添加到所述数据库表中之后,在所述当前服务器中添加主服务器标识;和/或,在将所述当前服务器作为从服务器的记录添加到所述数据库表中之后,在所述当前服务器中添加从服务器标识。
可选的,如图4所示,所述装置还包括:
第二删除单元38,用于当所述数据库表中含有修改时间的超期时长大于预设时长阈值的服务器记录时,删除所述修改时间的超期时长大于预设时长阈值的服务器记录。
本发明实施例提供的主服务器的选取装置,能够在当前服务器要申请当选目标应用的主服务器时,只需查找数据库表中是否存在目标应用的主服务器记录,若不存在,则通过将当前服务器作为主服务器的记录添加到数据库表中,便可成功将当前服务器注册为主服务器,从而整个主服务器选取过程只需借助已有的数据库,而无需再部署额外的服务器,更无需在额外服务器上部署第三方服务组件,进而了节省服务器资源和运维资源。
进一步的,依据上述实施例,本发明的另一个实施例还提供了一种存储介质,所述存储介质存储有多条指令,所述指令适用于由处理器加载并执行如上所述的主服务器的选取方法。
本发明实施例提供的存储介质中存储的指令,能够在当前服务器要申请当选目标应用的主服务器时,只需查找数据库表中是否存在目标应用的主服务器记录,若不存在,则通过将当前服务器作为主服务器的记录添加到数据库表中,便可成功将当前服务器注册为主服务器,从而整个主服务器选取过程只需借助已有的数据库,而无需再部署额外的服务器,更无需在额外服务器上部署第三方服务组件,进而了节省服务器资源和运维资源。
进一步的,依据上述实施例,本发明的另一个实施例还提供了一种电子设备,所述电子设备包括存储介质和处理器;
所述处理器,适于实现各指令;
所述存储介质,适于存储多条指令;
所述指令适于由所述处理器加载并执行如上所述的主服务器的选取方法。
本发明实施例提供的电子设备,能够在当前服务器要申请当选目标应用的主服务器时,只需查找数据库表中是否存在目标应用的主服务器记录,若不存在,则通过将当前服务器作为主服务器的记录添加到数据库表中,便可成功将当前服务器注册为主服务器,从而整个主服务器选取过程只需借助已有的数据库,而无需再部署额外的服务器,更无需在额外服务器上部署第三方服务组件,进而了节省服务器资源和运维资源。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的主服务器的选取方法及装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (14)

1.一种主服务器的选取方法,其特征在于,所述方法包括:
查找数据库表中是否存在目标应用的主服务器记录,所述目标应用是当前服务器服务的应用;
若不存在所述主服务器记录,则将所述当前服务器作为主服务器的记录添加到所述数据库表中。
2.根据权利要求1所述的方法,其特征在于,若存在所述主服务器记录,则所述方法还包括:
根据所述主服务器记录中的设备标识判断所述当前服务器是否为所述目标应用的主服务器;
若所述当前服务器是主服务器,则将所述主服务器记录中的修改时间修改为当前时间;
若所述当前服务器不是主服务器,则判断所述主服务器记录中的修改时间是否已过期;若已过期,则将所述数据库表中的所述主服务器记录修改为以所述当前服务器为主服务器的记录。
3.根据权利要求2所述的方法,其特征在于,若未过期或者修改所述主服务器记录失败,则所述方法还包括:
查找所述数据库表中是否存在以所述当前服务器为从服务器的记录;
若存在以所述当前服务器为从服务器的记录,则将查找到的记录中的修改时间修改为当前时间;
若不存在以所述当前服务器为从服务器的记录,则向所述数据库表中添加以所述当前服务器为从服务器的记录。
4.根据权利要求2所述的方法,其特征在于,将所述数据库表中的所述主服务器记录修改为以所述当前服务器为主服务器的记录包括:
基于所述数据库表的乐观锁机制,将所述数据库表中的所述主服务器记录中的设备标识修改为所述当前服务器的设备标识,修改时间修改为当前时间,并更新版本号。
5.根据权利要求2所述的方法,其特征在于,在将所述数据库表中的所述主服务器记录修改为以所述当前服务器为主服务器的记录之后,所述方法还包括:
删除所述数据库表中以所述当前服务器为从服务器的记录。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若未成功将所述当前服务器作为主服务器的记录添加到所述数据库表中,则将所述当前服务器作为从服务器的记录添加到所述数据库表中。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在将所述当前服务器作为主服务器的记录添加到所述数据库表中之后,在所述当前服务器中添加主服务器标识;
和/或,在将所述当前服务器作为从服务器的记录添加到所述数据库表中之后,在所述当前服务器中添加从服务器标识。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述方法还包括:
若所述数据库表中含有修改时间的超期时长大于预设时长阈值的服务器记录,则删除所述修改时间的超期时长大于预设时长阈值的服务器记录。
9.一种主服务器的选取装置,其特征在于,所述装置包括:
查找单元,用于查找数据库表中是否存在目标应用的主服务器记录,所述目标应用是当前服务器服务的应用;
记录添加单元,用于当不存在所述主服务器记录时,将所述当前服务器作为主服务器的记录添加到所述数据库表中。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第一判断单元,用于当存在所述主服务器记录时,根据所述主服务器记录中的设备标识判断所述当前服务器是否为所述目标应用的主服务器;
修改单元,用于当所述当前服务器是主服务器时,将所述主服务器记录中的修改时间修改为当前时间;
第二判断单元,用于当所述当前服务器不是主服务器时,判断所述主服务器记录中的修改时间是否已过期;
所述修改单元,还用于当已过期时,将所述数据库表中的所述主服务器记录修改为以所述当前服务器为主服务器的记录。
11.根据权利要求10所述的装置,其特征在于,所述查找单元,还用于当未过期或者修改所述主服务器记录失败时,查找所述数据库表中是否存在以所述当前服务器为从服务器的记录;
所述修改单元,还用于当存在以所述当前服务器为从服务器的记录时,将查找到的记录中的修改时间修改为当前时间;
所述记录添加单元,用于当不存在以所述当前服务器为从服务器的记录时,向所述数据库表中添加以所述当前服务器为从服务器的记录。
12.根据权利要求9所述的装置,其特征在于,所述记录添加单元,还用于当未成功将所述当前服务器作为主服务器的记录添加到所述数据库表中时,将所述当前服务器作为从服务器的记录添加到所述数据库表中。
13.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适用于由处理器加载并执行如权利要求1至8中任一项所述的主服务器的选取方法。
14.一种电子设备,其特征在于,所述电子设备包括存储介质和处理器;
所述处理器,适于实现各指令;
所述存储介质,适于存储多条指令;
所述指令适于由所述处理器加载并执行如权利要求1至8中任意一项所述的主服务器的选取方法。
CN201910058551.6A 2019-01-22 2019-01-22 主服务器的选取方法及装置 Active CN111464580B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910058551.6A CN111464580B (zh) 2019-01-22 2019-01-22 主服务器的选取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910058551.6A CN111464580B (zh) 2019-01-22 2019-01-22 主服务器的选取方法及装置

Publications (2)

Publication Number Publication Date
CN111464580A true CN111464580A (zh) 2020-07-28
CN111464580B CN111464580B (zh) 2022-04-22

Family

ID=71682181

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910058551.6A Active CN111464580B (zh) 2019-01-22 2019-01-22 主服务器的选取方法及装置

Country Status (1)

Country Link
CN (1) CN111464580B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1450478A (zh) * 2002-03-29 2003-10-22 株式会社东芝 服务器、网络系统、查找要求处理方法以及通信控制方法
CN101340272A (zh) * 2008-08-25 2009-01-07 中兴通讯股份有限公司 一种双机切换方法及系统
US7680876B1 (en) * 2006-12-14 2010-03-16 Cisco Technology, Inc. Highly available domain name system
CN103384211A (zh) * 2013-06-28 2013-11-06 百度在线网络技术(北京)有限公司 一种具有容错性的数据操作方法及分布式的数据存储系统
CN104516966A (zh) * 2014-12-24 2015-04-15 北京奇虎科技有限公司 一种数据库集群的高可用解决方法和装置
CN106559332A (zh) * 2016-11-03 2017-04-05 Tcl集团股份有限公司 一种快速组建全连通服务器集群的方法和系统
CN106789197A (zh) * 2016-12-07 2017-05-31 高新兴科技集团股份有限公司 一种集群选举方法及系统
CN107819556A (zh) * 2016-09-12 2018-03-20 北京金山云网络技术有限公司 一种服务状态切换方法及装置
US10069695B1 (en) * 2003-08-18 2018-09-04 Open Invention Network Llc Method, system, and storage medium for collecting SNMP bandwidth data
CN108769242A (zh) * 2018-06-13 2018-11-06 杭州迪普科技股份有限公司 一种报文调度方法及装置
CN108964948A (zh) * 2017-05-19 2018-12-07 北京金山云网络技术有限公司 主从服务系统、主节点故障恢复方法及装置
CN109101528A (zh) * 2018-06-21 2018-12-28 深圳市买买提信息科技有限公司 数据处理方法、数据处理装置及电子设备

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1450478A (zh) * 2002-03-29 2003-10-22 株式会社东芝 服务器、网络系统、查找要求处理方法以及通信控制方法
US10069695B1 (en) * 2003-08-18 2018-09-04 Open Invention Network Llc Method, system, and storage medium for collecting SNMP bandwidth data
US7680876B1 (en) * 2006-12-14 2010-03-16 Cisco Technology, Inc. Highly available domain name system
CN101340272A (zh) * 2008-08-25 2009-01-07 中兴通讯股份有限公司 一种双机切换方法及系统
CN103384211A (zh) * 2013-06-28 2013-11-06 百度在线网络技术(北京)有限公司 一种具有容错性的数据操作方法及分布式的数据存储系统
CN104516966A (zh) * 2014-12-24 2015-04-15 北京奇虎科技有限公司 一种数据库集群的高可用解决方法和装置
CN107819556A (zh) * 2016-09-12 2018-03-20 北京金山云网络技术有限公司 一种服务状态切换方法及装置
CN106559332A (zh) * 2016-11-03 2017-04-05 Tcl集团股份有限公司 一种快速组建全连通服务器集群的方法和系统
CN106789197A (zh) * 2016-12-07 2017-05-31 高新兴科技集团股份有限公司 一种集群选举方法及系统
CN108964948A (zh) * 2017-05-19 2018-12-07 北京金山云网络技术有限公司 主从服务系统、主节点故障恢复方法及装置
CN108769242A (zh) * 2018-06-13 2018-11-06 杭州迪普科技股份有限公司 一种报文调度方法及装置
CN109101528A (zh) * 2018-06-21 2018-12-28 深圳市买买提信息科技有限公司 数据处理方法、数据处理装置及电子设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DIMOKRITOS STAMATAKIS: "A General-Purpose Architecture for Replicated Metadata Services in Distributed File Systems", 《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS 》 *
孙川: "基于分布式事务的数据库双机热备份方案的设计", 《微计算机信息》 *
方丹辉等: "MySQL主从服务器数据库同步的实现", 《计算机应用》 *

Also Published As

Publication number Publication date
CN111464580B (zh) 2022-04-22

Similar Documents

Publication Publication Date Title
US8285677B2 (en) Method and apparatus for propagating tables while preserving cyclic foreign key relationships
JP6499085B2 (ja) リソースの注釈
CN111475483B (zh) 数据库迁移方法、装置及计算设备
US7877757B2 (en) Work item event monitor for procession of queued events
JP4141875B2 (ja) リカバリ処理方法及びその実施システム並びにその処理プログラム
CN106095483A (zh) 服务的自动化部署方法及装置
CN107547635B (zh) 大数据集群主机ip地址修改方法及装置
CN110968478A (zh) 日志采集方法、服务器及计算机存储介质
CN112015595B (zh) 主从数据库的切换方法、计算设备及存储介质
CN111240892A (zh) 数据备份方法及装置
CN102708166B (zh) 数据复制方法、数据恢复方法及装置
CN107391303B (zh) 数据处理方法、装置、系统、服务器及计算机存储介质
CN105956046A (zh) 一种字典的更新方法、系统和服务器
CN113468143A (zh) 数据迁移方法、系统、计算设备及存储介质
CN113760499A (zh) 调度计算单元的方法、装置、计算设备及介质
CN111464580B (zh) 主服务器的选取方法及装置
CN112580816A (zh) 机器学习训练资源管理
CN116974874A (zh) 数据库的测试方法、装置、电子设备及可读存储介质
CN110955460A (zh) 一种服务进程启动方法、装置、电子设备和存储介质
CN105630889B (zh) 通用缓存的方法及装置
CN109254880A (zh) 一种处理数据库宕机的方法及装置
US7703106B2 (en) Discovering and monitoring process executions
CN112631727A (zh) 一种容器组pod的监控方法及装置
CN113806309A (zh) 基于分布式锁的元数据删除方法、系统、终端及存储介质
CN108650320B (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