CN114827145B - 服务器集群系统、元数据的访问方法及装置 - Google Patents

服务器集群系统、元数据的访问方法及装置 Download PDF

Info

Publication number
CN114827145B
CN114827145B CN202210435916.4A CN202210435916A CN114827145B CN 114827145 B CN114827145 B CN 114827145B CN 202210435916 A CN202210435916 A CN 202210435916A CN 114827145 B CN114827145 B CN 114827145B
Authority
CN
China
Prior art keywords
information
metadata
target message
service node
server cluster
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
CN202210435916.4A
Other languages
English (en)
Other versions
CN114827145A (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 China Co Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210435916.4A priority Critical patent/CN114827145B/zh
Publication of CN114827145A publication Critical patent/CN114827145A/zh
Application granted granted Critical
Publication of CN114827145B publication Critical patent/CN114827145B/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
    • 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
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种服务器集群系统、元数据的访问方法及装置,该服务器集群系统包括:多个服务节点、元数据管理节点和存储设备;多个服务节点分别与元数据管理节点和存储设备连接;服务节点用于在接收到访问请求时在服务节点的本地缓存或元数据管理节点中获取目标消息的路由信息和元数据队列的信息;存储设备用于根据路由信息,将目标消息存储到元数据队列对应的存储位置。由于通过元数据管理节点管理元数据,并将目标消息存储到单独的存储设备中,从而使得目标消息不必在服务器集群中全量复制,在避免因单点故障引发的服务器集群的问题的前提下,减少服务器集群内部的网络带宽的消耗。并且,实现服务器集群系统的高可用、可扩展和高吞吐的优点。

Description

服务器集群系统、元数据的访问方法及装置
技术领域
本发明涉及信息处理技术领域,尤其涉及一种服务器集群系统、元数据的访问方法及装置。
背景技术
在分布式系统中,随着用户的增多以及功能的模块化程度加深,诸如RabbitMQ等使用高级消息队列协议(Advanced Message Queuing Protocol,AMQP)进行消息代理的消息队列得到越来越广泛地运用。相应的,使用AMQP进行消息代理的消息队列的单机部署存在的单点故障问题也亟需解决。
相关技术中,在使用AMQP进行消息代理的消息队列的镜像集群模式中,消息会主动在镜像节点之间同步,当元数据的主节点宕机后,会通过选举算法选出新的主节点,继续对外提供服务,从而避免了单机部署存在的单点故障问题。
然而,由于在使用AMQP进行消息代理的消息队列的镜像集群模式中,消息在整个集群中全量同步,会显著降低服务器集群的性能,若镜像队列数量过多或者同时进入大量的消息,服务器集群内部的网络带宽会因同步通讯被大大消耗。
发明内容
本申请实施例提供一种服务器集群系统、元数据的访问方法及装置,以解决现有技术中服务器集群内部的网络带宽因同步通讯被大大消耗的问题。
第一方面,本申请实施例提供一种服务器集群系统,所述系统包括:多个服务节点、元数据管理节点和存储设备;
其中,所述多个服务节点分别与所述元数据管理节点和所述存储设备连接;
所述服务节点用于在接收到访问请求时在所述服务节点的本地缓存或元数据管理节点中获取目标消息的路由信息和元数据队列的信息,所述访问请求用于请求向所述服务器集群发送目标消息;
所述存储设备用于根据所述路由信息,将所述目标消息存储到所述元数据队列对应的存储位置。
一种可选的实施方式中,所述服务节点具体用于根据所述访问请求中包含的所述目标消息的路由关键词和交换器的信息,确定所述服务节点的本地缓存中是否缓存所述目标消息的路由信息;若否,则向所述元数据管理节点发送所述目标消息的查询请求,所述查询请求中包含有所述目标消息的路由关键词和交换器的信息;
所述数据管理节点用于根据所述目标消息的路由关键词和交换器的信息,查询所述目标消息的路由信息和所述路由信息对应的元数据队列的信息,并将所述路由信息和所述元数据队列的信息发送给所述服务节点。
一种可选的实施方式中,所述服务节点还用于若所述服务节点的本地缓存中存储有所述目标消息的路由信息,则从所述服务节点的缓存中获取所述目标消息的路由信息和所述路由信息对应的元数据队列的信息。
一种可选的实施方式中,所述服务器集群系统还包括:负载均衡器;
所述负载均衡器用于将来自所述发送终端的访问请求转发给所述服务器集群系统中的任一服务节点。
一种可选的实施方式中,所述服务节点还用于缓存所述路由信息和所述路由信息对应的元数据队列的信息。
一种可选的实施方式中,所述服务节点还用于若所述路由信息和所述路由信息对应的元数据队列的信息的缓存时间超过缓存有效期,则清除所述路由信息和所述路由信息对应的元数据队列的信息。
一种可选的实施方式中,所述负载均衡器,还用于将来自所述消费终端的订阅请求转发给所述服务器集群系统中的任一服务节点,所述订阅请求用于获取所述目标元数据队列中的待消费的消息;
所述服务节点还用于根据所述目标元数据队列的信息,从所述存储设备中获取所述待消费的消息和所述目标元数据队列的消费进度。
一种可选的实施方式中,所述存储设备包括具有持久化存储结构的设备。
第二方面,本申请实施例提供一种元数据的访问方法,应用于服务器集群中的服务节点,所述方法包括:
接收来自发送终端的访问请求,所述访问请求用于请求向所述服务器集群发送目标消息;
在所述服务节点的本地缓存或元数据管理节点中获取目标消息的路由信息和元数据队列的信息;
根据所述路由信息,将所述目标消息发送到存储设备中所述元数据队列的存储位置进行存储。
一种可选的实施方式中,所述在所述服务节点的本地缓存或元数据管理节点中获取目标消息的路由信息和元数据队列的信息,包括:
根据所述访问请求中包含的所述目标消息的路由关键词和交换器的信息,确定所述服务节点的本地缓存中是否缓存所述目标消息的路由信息;
若否,则向所述元数据管理节点发送所述目标消息的查询请求,所述查询请求中包含有所述目标消息的路由关键词和交换器的信息;
接收所述元数据管理节点发送的所述目标消息的路由信息和所述路由信息对应的元数据队列的信息。
一种可选的实施方式中,在所述根据所述访问请求中包含的所述目标消息的路由关键词和交换器的信息,确定所述服务节点的本地缓存中是否缓存所述目标消息的路由信息之后,所述方法还包括:
若所述服务节点的本地缓存中存储有所述目标消息的路由信息,则从所述服务节点的缓存中获取所述目标消息的路由信息和所述路由信息对应的元数据队列的信息。
一种可选的实施方式中,所述接收来自发送终端的访问请求,包括:
接收通过负载均衡器转发的来自所述发送终端的访问请求。
一种可选的实施方式中,在所述接收所述元数据管理节点发送的所述目标消息的路由信息和所述路由信息对应的元数据队列的信息之后,所述方法还包括:
在所述服务节点中缓存所述路由信息和所述路由信息对应的元数据队列的信息。
一种可选的实施方式中,在所述服务节点中缓存所述路由信息和所述路由信息对应的元数据队列的信息之后,所述方法还包括:
若所述路由信息和所述路由信息对应的元数据队列的信息的缓存时间超过缓存有效期,则清除所述路由信息和所述路由信息对应的元数据队列的信息。
一种可选的实施方式中,所述方法还包括:
接收来自消费终端发送的目标元数据队列的订阅请求,所述订阅请求用于获取所述目标元数据队列中的待消费的消息;
根据所述目标元数据队列的信息,从所述存储设备中获取所述待消费的消息和所述目标元数据队列的消费进度。
一种可选的实施方式中,所述存储设备包括具有持久化存储结构的设备。
第三方面,本申请实施例提供一种元数据的访问装置,所述装置法包括:
接收模块,用于接收来自发送终端的访问请求,所述访问请求用于请求向所述服务器集群发送目标消息;
处理模块,用于在所述服务节点的本地缓存或元数据管理节点中获取目标消息的路由信息和元数据队列的信息;
发送模块,用于根据所述路由信息,将所述目标消息发送到存储设备中所述元数据队列的存储位置进行存储。
一种可选的实施方式中,所述处理模块,具体用于根据所述访问请求中包含的所述目标消息的路由关键词和交换器的信息,确定所述服务节点的本地缓存中是否缓存所述目标消息的路由信息;
所述发送模块,还用于若否,则向所述元数据管理节点发送所述目标消息的查询请求,所述查询请求中包含有所述目标消息的路由关键词和交换器的信息;
所述接收模块,还用于接收所述元数据管理节点发送的所述目标消息的路由信息和所述路由信息对应的元数据队列的信息。
一种可选的实施方式中,所述处理模块,具体用于若所述服务节点的本地缓存中存储有所述目标消息的路由信息,则从所述服务节点的缓存中获取所述路由信息对应的元数据队列的信息。
一种可选的实施方式中,所述接收模块,具体用于接收通过负载均衡器转发的来自所述发送终端的访问请求。
一种可选的实施方式中,所述处理模块,还用于在所述服务节点中缓存所述路由信息和所述路由信息对应的元数据队列的信息。
一种可选的实施方式中,所述处理模块,还用于若所述路由信息和所述路由信息对应的元数据队列的信息的缓存时间超过缓存有效期,则清除所述路由信息和所述路由信息对应的元数据队列的信息。
一种可选的实施方式中,所述接收模块,还用于接收来自消费终端发送的目标元数据队列的订阅请求,所述订阅请求用于获取所述目标元数据队列中的待消费的消息;
所述处理模块,还用于根据所述目标元数据队列的信息,从所述存储设备中获取所述待消费的消息和所述目标元数据队列的消费进度。
一种可选的实施方式中,所述存储设备包括具有持久化存储结构的设备。
第四方面,本申请还提供一种电子设备,包括:处理器,以及存储器;所述存储器用于存储所述处理器的计算机程序;所述处理器被配置为通过执行所述计算机程序来实现第二方面中任意一种可能的方法。
第五方面,本发明还提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行第二方面中任意一种可能的方法。
第六方面,本公开实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上第二方面以及第一方面各种可能的设计中所述的方法。
本申请实施例提供的一种服务器集群系统、元数据的访问方法及装置,该服务器集群系统包括:多个服务节点、元数据管理节点和存储设备;其中,多个服务节点分别与元数据管理节点和存储设备连接;服务节点用于在接收到访问请求时在服务节点的本地缓存或元数据管理节点中获取目标消息的路由信息和元数据队列的信息,访问请求用于请求向服务器集群发送目标消息;存储设备用于根据路由信息,将目标消息存储到元数据队列对应的存储位置。由于通过元数据管理节点管理元数据,并将目标消息存储到单独的存储设备中,从而使得目标消息不必在服务器集群中全量复制,在避免因单点故障引发的服务器集群的问题的前提下,减少了服务器集群内部的网络带宽的消耗。并且,实现了服务器集群系统的高可用、可扩展和高吞吐的优点。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种服务器集群系统的结构示意图;
图2为本申请实施例提供的一种元数据的访问方法的流程示意图;
图3为本申请实施例提供的一种元数据的访问方法的信令交互图;
图4为本申请实施例提供的另一种元数据的访问方法的信令交互图;
图5为本申请实施例提供的一种元数据的访问装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“多个实施例”;术语“另一实施例”表示“多个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
下面首先对于使用AMQP进行消息代理的消息队列进行说明。
相关技术中,使用AMQP进行消息代理的消息队列的普通集群模式提供了元数据的集群内部同步,集群中所有服务节点均有相同的元数据结构,队列只会同步元数据的信息(例如,队列名称、属性等),而不会同步各服务节点存储的消息。消息只会存储在创建该队列的主服务节点上,其他服务节点只能确定该队列的元数据的信息和指向该主节点的地址。
然而,使用AMQP进行消息代理的消息队列的普通集群模式存在以下三个问题:第一个问题,当客户端在非主节点上访问元数据时,非主节点会将访问请求转发给该元数据所在的主节点,这在一定程度上增大访问的延时。第二个问题,当主节点宕机时,该元数据和消息将不可访问,在主节点恢复之前,都不能重新创建该元数据,依旧存在单点故障问题。第三个问题,虽然可以通过不断扩容节点实现服务器集群的可扩展性,但无法解决可用性不高的问题。
需要说明的是,由于服务器集群的目的是在增加更多服务节点时,可以线性增加性能(处理器、内存)和容量(内存、磁盘),因此,使用AMQP进行消息代理的消息队列的普通集群模式不将元数据复制到所有服务节点。为了平衡服务器集群的高可用性和高性能,提出了镜像集群模式。
在使用AMQP进行消息代理的消息队列的镜像集群模式中,消息会主动在镜像节点之间同步,当元数据的主节点宕机后,会通过选举算法选出新的主节点,继续对外提供服务。
然而,使用AMQP进行消息代理的消息队列的镜像集群模式依旧存在以下四个问题:
第一个问题,由于消息在整个集群中全量同步,会显著降低服务器集群的性能,若镜像队列数量过多,同时进入大量的消息,服务器集群内部的网络带宽会因同步通讯被大大消耗。
第二个问题,消息的存储、消息的点位的提交以及元数据的状态变化(例如,订阅者数量的变化,是否删除等)均会在服务器集群内同步,这对服务器集群内的所有服务节点的性能和存储都会带来一定压力,降低了服务器集群的吞吐量。
第三个问题,客户端通过非主节点访问元数据时,访问请求最终会转发到主节点,这种集群内部的请求转发会在一定程度上增大访问的延时。
第四个问题,镜像集群模式可以提供集群的可用性,但是通过扩容服务节点实现服务器集群的横向扩展时会带来性能和存储问题。
需要说明的是,本申请实施例对于涉及的使用AMQP进行消息代理的消息队列的类型不作限制,示例性的,可以为RabbitMQ。
为解决上述问题,本申请实施例提供一种元数据的访问方法及装置,由于将目标消息存储到单独的存储设备中,并由元数据管理节点管理元数据,从而使得目标消息不必在服务器集群中全量复制,在避免因单点故障引发的服务器集群的问题的前提下,减少了服务器集群内部的网络带宽的消耗。
图1为本申请实施例提供的一种服务器集群系统的结构示意图。如图1所示,服务器集群系统包括服务节点101、服务节点102、服务节点103等服务节点,以及元数据管理节点104和存储设备105。
当发送终端访问服务器集群时,可以向服务器集群发送目标消息。服务器集群中的任意服务节点可以对该目标消息进行处理,并通过服务节点的本地存储或元数据管理节点104获取目标消息的路由信息和路由信息对应的元数据队列的信息。随后,服务器集群中的任意服务节点可以根据路由信息和路由信息对应的元数据队列的信息,将目标消息存储到存储设备105中。
应理解,本申请实施例对于发送终端如何向服务节点发送访问请求不作限制,在一些实施例中,服务器集群系统中还包括有负载均衡器106。发送终端可以通过负载均衡器106向服务器集群发送访问请求,负载均衡器106可以将访问请求分发到服务器集群中的服务节点。
需要说明的是,本申请实施例中服务器集群的各个服务节点对于目标消息的处理效果相同,负载均衡器可以将访问请求分发任意一个服务节点。
应理解,本申请实施例对于目标消息的类型不作限制,示例性的,目标消息可以为人脸识别系统的消息、事件处理系统的消息、对账系统的消息等。
在一些实施例中,访问请求中还可以指示该目标消息的路由关键词(routingKey)和交换器的信息,该路由关键词和交换器的信息可以用于匹配目标消息的路由信息。
应理解,本申请实施例对于如何从服务节点的本地缓存或元数据管理节点104中获取目标消息的路由信息和路由信息对应的元数据队列的信息不作限制。在一些实施例中,当服务节点接收到来自发送终端的访问请求后,可以首先根据访问请求中包含的目标消息的路由关键词和交换器的信息,确定服务节点的本地缓存中是否缓存目标消息的路由信息。若服务节点的本地缓存中未缓存目标消息的路由信息,则向元数据管理节点104发送目标消息的查询请求。随后,数据管理节点查询目标消息的路由信息和路由信息对应的元数据队列的信息,并将路由信息和元数据队列的信息发送给服务节点。
其中,路由信息可以包括目标消息的路由目的地。元数据队列的信息用于表征目标消息所属的元数据队列。
应理解,本申请实施例对于如何确定该服务节点的本地缓存是否存在目标消息的路由信息不作限制,在一些实施例中,服务节点可以将目标消息的路由关键词和交换器的信息,与本地缓存中的路由信息进行对比,从而确定目标消息的路由信息。
应理解,本申请实施例对于元数据管理节点104如何查询路由信息也不做限制,在一些实施例中,查询请求中可以携带路由关键词和交换器的信息,元数据管理节点104可以通过路由关键词和交换器的信息查找匹配的路由信息,再确定路由信息对应的元数据队列的信息。
在另一些实施例中,若服务节点的本地缓存中存储有目标消息的路由信息,则可以直接从服务节点的缓存中获取目标消息的路由信息和路由信息对应的元数据队列的信息。
需要说明的是,上述元数据管理节点104,用于管理路由信息、队列信息等元数据。由于通过元数据管理节点104管理元数据,从而使得服务节点中无需存放全量元数据,只在缓存中存放访问过的元数据。
通过该方式,服务节点形成一种只有被访问才会缓存元数据的懒加载模式,并且服务节点中的元数据的缓存时长到期后会被清除,从而保证了服务节点中时刻存放热数据,使得在大量元数据的情况下各服务节点的内存不会爆满。
在一些实施例中,当在服务节点的本地缓存或元数据管理节点104中获取目标消息的路由信息和元数据队列的信息后,可以在服务节点中缓存路由信息和路由信息对应的元数据队列的信息。
通过该方式,下次访问时,可以直接从缓存中获取该目标消息的路由信息和路由信息对应的元数据队列的信息,从而减轻了服务节点和元数据管理节点104的内存压力,减少了服务器集群的网络带宽的消耗。
需要说明的是,服务节点的本地缓存可以设置缓存时长,当本地缓存的缓存时长到期后,服务节点可以将过期的信息清除,等待下次用户访问时重新加载。
应理解,本申请实施例对于如何在存储设备105中存储目标消息也不作限制,在一些实施例中,路由信息可以指示目标消息的存储位置,元数据队列的信息可以指示目标消息所属的消息队列。通过路由信息和元数据队列的信息可以定位目标消息在存储设备105中的位置,从而对目标消息进行存储。
需要说明的是,本申请实施例涉及的存储设备105,可以为具有持久化存储结构的设备。持久化存储结构可以为一种非易失存储的大容量的队列存储数据结构,并且支持数据进行顺序写随机读的快速访问。通过存储在存储设备105中,可以保证目标消息不会丢失。
在本申请中,通过持久化队列存储结构的存储设备105实现目标消息的高可靠存储,而不必使得目标消息在集群间全量同步,进而实现服务器集群中对于目标消息的存储和计算的分离,大大减少了服务器集群内部网络通信的开销和消息处理链路的延时。
此外,本申请实施例提供的服务器集群,可以通过不断扩容服务节点实现服务器集群的扩展性,实现了更高的集群吞吐量。并且,元数据的变更不会在服务器集群内引起广播行为,使得服务器集群的服务节点近乎无状态,从而使得任意服务节点的宕机均不会给用户的访问带来影响,避免了单点故障引发的服务器集群的问题。
本申请实施例提供的服务器集群系统,该服务器集群系统包括:多个服务节点、元数据管理节点和存储设备;其中,多个服务节点分别与元数据管理节点和存储设备连接;服务节点用于在接收到访问请求时在服务节点的本地缓存或元数据管理节点中获取目标消息的路由信息和元数据队列的信息,访问请求用于请求向服务器集群发送目标消息;存储设备用于根据路由信息,将目标消息存储到元数据队列对应的存储位置。由于通过元数据管理节点管理元数据,并将目标消息存储到单独的存储设备中,从而使得目标消息不必在服务器集群中全量复制,在避免因单点故障引发的服务器集群的问题的前提下,减少了服务器集群内部的网络带宽的消耗。
在上述服务器集群系统的基础上,下面对于如何在该服务器集群系统进行元数据的访问进行说明。
可以理解,本申请实施例涉及的元数据的访问方法可以通过本申请实施例提供的元数据的访问装置实现,元数据的访问装置可以是某个设备的部分或全部,例如为上述服务器集群中的服务节点。
下面以集成或安装有相关执行代码的服务器集群中的服务节点为例,以具体地实施例对本申请实施例的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本申请实施例提供的一种元数据的访问方法的流程示意图。本实施例涉及的是服务器集群中的服务节点如何存储目标消息的具体过程。如图2所示,该元数据的访问方法方法包括:
S201、接收来自发送终端发送的访问请求,该访问请求用于请求向服务器集群发送目标消息。
应理解,本申请实施例对于服务节点如何接收访问请求不作限制,在一些实施例中,服务节点可以接收通过负载均衡器转发的来自发送终端的访问请求。
S202、在服务节点的本地缓存或元数据管理节点中获取目标消息的路由信息和元数据队列的信息。
在一些实施例中,服务节点可以首先根据访问请求中包含的目标消息的路由关键词,确定服务节点的本地缓存中是否缓存目标消息的路由信息。随后,若服务节点的本地缓存中未缓存有目标消息的路由信息,则向元数据管理节点发送目标消息的查询请求,查询请求中包含有目标消息的路由关键词和交换器的信息。最后,服务节点接收元数据管理节点发送的目标消息的路由信息和路由信息对应的元数据队列的信息。
若服务器节点的本地缓存中存在目标消息的路由信息,则从服务节点的缓存中获取目标消息的路由信息和路由信息对应的元数据队列的信息。
S203、根据路由信息,将目标消息发送到存储设备中元数据队列的存储位置进行存储。
应理解,本申请实施例对于如何在存储设备中存储目标消息也不作限制,在一些实施例中,路由信息可以指示目标消息的存储位置,元数据队列的信息可以指示目标消息所属的消息队列。通过路由信息和元数据队列的信息可以定位目标消息在存储设备的位置,从而对目标消息进行存储。
其中,本申请实施例涉及的存储设备,可以为具有持久化存储结构的设备,持久化存储结构可以为一种非易失存储的大容量的队列存储数据结构,并且支持数据进行顺序写随机读的快速访问。通过存储在具有持久化存储结构的存储设备105中,可以保证目标消息不会丢失。
本申请实施例提供的元数据的访问方法,服务器集群中的服务节点首先接收来自发送终端的访问请求,访问请求用于请求向服务器集群发送目标消息。其次,服务器节点在服务节点的本地缓存或元数据管理节点中获取目标消息的路由信息和元数据队列的信息。最后,服务节点根据路由信息,将目标消息发送到存储设备中元数据队列的存储位置进行存储。通过该方式,由于将目标消息存储到单独的存储设备中,从而使得目标消息不必在服务器集群中全量复制,在避免因单点故障引发的服务器集群的问题的前提下,减少了服务器集群内部的网络带宽的消耗。
在上述实施例的基础上,下面对于消费终端如何订阅待消费消息进行说明。图3为本申请实施例提供的一种元数据的访问方法的信令交互图。如图3所示,该元数据的访问方法方法包括:
S301、发送终端向服务节点发送的访问请求,该访问请求用于请求向服务器集群发送目标消息。
S302、服务节点在本地缓存或元数据管理节点中获取目标消息的路由信息和元数据队列的信息。
S303、服务节点根据路由信息,将目标消息发送到存储设备中元数据队列的存储位置进行存储。
步骤S301至步骤S303的技术名词、技术效果、技术特征,以及可选实施方式,可参照图2所示的步骤S201至S203理解,对于重复的信息,在此不再累述。
S304、消费终端向服务节点发送目标元数据队列的订阅请求,订阅请求用于获取目标元数据队列中的待消费的消息。
在本步骤中,当用户需要消费目标元数据队列中的待消费消息时,可以向服务节点发送目标元数据队列的订阅请求。
其中,订阅请求中可以包括目标元数据队列的信息,从而指示出用户想要获取的目标元数据队列。
应理解,本申请实施例对于消费终端如何向服务节点发送目标元数据队列的订阅请求也不做限制,在一些实施例中,消费终端可以通过负载均衡器向服务器集群发送订阅请求,负载均衡器可以将该订阅请求分发给服务器集群中的任意服务节点。
S305、服务节点根据目标元数据队列的信息,从存储设备中获取待消费的消息和目标元数据队列的消费进度。
在本步骤中,当服务节点接收到订阅请求后,可以基于订阅请求中用户待获取的目标元数据队列,向存储设备发送获取请求,从而在存储设备中获取消费的消息和目标元数据队列的消费进度。
其中,目标元数据队列的消费进度,用于指示目标元数据队列中已被消费的信息,或者,用于指示标元数据队列中已被消费的信息的占比。
需要说明的是,在本申请中,发送终端和消费终端可以为同一个终端,也可以为不同的终端,本申请实施例对此不作限制。
S306、服务节点向消费终端发送待消费的消息。
在上述实施例的基础上,下面服务节点和元数据管理节点之间的交互过程进行说明。图4为本申请实施例提供的另一种元数据的访问方法的信令交互图。该元数据的访问方法的执行主体为服务节点,如图4所示,该元数据的访问方法方法包括:
S401、发送终端通过负载均衡器向服务节点发送访问请求,访问请求用于请求向服务器集群发送目标消息。
S402、服务节点根据目标消息的路由关键词和交换器的信息,确定服务节点中是否缓存目标消息的路由信息。
若是,则执行步骤S403,若否,则执行步骤S404。
S403、服务节点从本地缓存中获取目标消息的路由信息和路由信息对应的元数据队列的信息。
在步骤S403之后,执行步骤S407。
S404、服务节点向元数据管理节点发送查询请求,该查询请求中包含有目标消息的路由关键词和交换器的信息。
S405、元数据管理节点根据目标消息的路由关键词和交换器的信息,查询目标消息的路由信息和路由信息对应的元数据队列的信息。
S406、元数据管理节点将目标消息的路由信息和路由信息对应的元数据队列的信息发送给服务节点。
S407、服务节点根据路由信息,将目标消息发送到存储设备中元数据队列的存储位置进行存储。
S408、消费终端向服务节点发送目标元数据队列的订阅请求,订阅请求用于获取目标元数据队列中的待消费的消息。
S409、服务节点根据目标元数据队列的信息,从存储设备中获取待消费的消息和目标元数据队列的消费进度。
S410、服务节点向消费终端发送待消费的消息。
步骤S401至步骤S409的技术名词、技术效果、技术特征,以及可选实施方式,可参照图3所示的步骤S301至S307理解,对于重复的信息,在此不再累述。
本申请实施例提供的元数据的访问方法,服务器集群中的服务节点首先接收来自发送终端的访问请求,访问请求用于请求向服务器集群发送目标消息。其次,服务器节点在服务节点的本地缓存或元数据管理节点中获取目标消息的路由信息和元数据队列的信息。最后,服务节点根据路由信息,将目标消息发送到存储设备中元数据队列的存储位置进行存储。通过该方式,由于将目标消息存储到单独的存储设备中,从而使得目标消息不必在服务器集群中全量复制,在避免因单点故障引发的服务器集群的问题的前提下,减少了服务器集群内部的网络带宽的消耗。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图5为本申请实施例提供的一种元数据的访问装置的结构示意图。该元数据的访问装置可以通过软件、硬件或者两者的结合实现,以执行上述实施例中元数据的访问方法。如图5所示,该元数据的访问装置500包括:接收模块501、处理模块502和发送模块503。
接收模块501,用于接收来自发送终端的访问请求,访问请求用于请求向服务器集群发送目标消息;
处理模块502,用于在服务节点的本地缓存或元数据管理节点中获取目标消息的路由信息和元数据队列的信息;
发送模块503,用于根据路由信息,将目标消息发送到存储设备中元数据队列的存储位置进行存储。
一种可选的实施方式中,处理模块502,具体用于根据访问请求中包含的目标消息的路由关键词和交换器的信息,确定服务节点的本地缓存中是否缓存目标消息的路由信息;
发送模块503,还用于若否,则向元数据管理节点发送目标消息的查询请求,查询请求中包含有目标消息的路由关键词和交换器的信息;
接收模块,还用于接收元数据管理节点发送的目标消息的路由信息和路由信息对应的元数据队列的信息。
一种可选的实施方式中,处理模块502,具体用于若服务节点的本地缓存中存储有目标消息的路由信息,则从服务节点的缓存中获取目标消息的路由信息和路由信息对应的元数据队列的信息。
一种可选的实施方式中,接收模块501,具体用于接收通过负载均衡器转发的来自发送终端的访问请求。
一种可选的实施方式中,处理模块502,还用于在服务节点中缓存路由信息和路由信息对应的元数据队列的信息。
一种可选的实施方式中,处理模块502,还用于若的路由信息和路由信息对应的元数据队列的信息的缓存时间超过缓存有效期,则清除路由信息和路由信息对应的元数据队列的信息。
一种可选的实施方式中,接收模块501,还用于接收来自消费终端发送的目标元数据队列的订阅请求,订阅请求用于获取目标元数据队列中的待消费的消息;
处理模块502,还用于根据目标元数据队列的信息,从存储设备中获取待消费的消息和目标元数据队列的消费进度。
一种可选的实施方式中,存储设备包括具有持久化存储结构的设备。
需要说明的,图5示实施例提供的元数据的访问装置,可用于执行上述任意实施例所提供的元数据的访问方法,具体实现方式和技术效果类似,这里不再进行赘述。
图6为本申请实施例提供的一种电子设备的结构示意图。如图6示,该电子设备可以包括:多个处理器601和存储器602。图6的是以一个处理器为例的电子设备。
存储器602,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器602可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如多个磁盘存储器。
处理器601用于执行存储器602存储的计算机执行指令,以实现上述元数据的访问方法;
其中,处理器601可能是一个处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
可选的,在具体实现上,如果通信接口、存储器602和处理器601独立实现,则通信接口、存储器602和处理器601可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口、存储器602和处理器601集成在一块芯片上实现,则通信接口、存储器602和处理器601可以通过内部接口完成通信。
本申请实施例还提供了一种芯片,包括处理器和接口。其中接口用于输入输出处理器所处理的数据或指令。处理器用于执行以上方法实施例中提供的元数据的访问方法。该芯片可以应用于元数据的访问装置中。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序信息,程序信息用于上述元数据的访问方法。
本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上述的元数据的访问方法。
本申请还提供了一种计算机程序,计算机程序使得计算机执行上述的元数据的访问方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (11)

1.一种服务器集群系统,其特征在于,所述系统包括:多个服务节点、元数据管理节点和存储设备;
其中,所述多个服务节点分别与所述元数据管理节点和所述存储设备连接;
所述服务节点用于在接收到访问请求时在所述服务节点的本地缓存或元数据管理节点中获取目标消息的路由信息和元数据队列的信息,所述访问请求用于请求向所述服务器集群发送目标消息;
所述存储设备用于根据所述路由信息,将所述目标消息存储到所述元数据队列对应的存储位置;
所述服务节点具体用于根据所述访问请求中包含的所述目标消息的路由关键词和交换器的信息,确定所述服务节点的本地缓存中是否缓存所述目标消息的路由信息;若否,则向所述元数据管理节点发送所述目标消息的查询请求,所述查询请求中包含有所述目标消息的路由关键词和交换器的信息;
所述数据管理节点用于根据所述目标消息的路由关键词和交换器的信息,查询所述目标消息的路由信息和所述路由信息对应的元数据队列的信息,并将所述路由信息和所述元数据队列的信息发送给所述服务节点。
2.根据权利要求1所述的服务器集群系统,其特征在于,所述服务节点还用于若所述服务节点的本地缓存中存储有所述目标消息的路由信息,则从所述服务节点的缓存中获取所述目标消息的路由信息和所述路由信息对应的元数据队列的信息。
3.根据权利要求1所述的服务器集群系统,其特征在于,所述服务器集群系统还包括:负载均衡器;
所述负载均衡器用于将来自发送终端的访问请求转发给所述服务器集群系统中的任一服务节点。
4.根据权利要求1所述的服务器集群系统,其特征在于,所述服务节点还用于缓存所述路由信息和所述路由信息对应的元数据队列的信息。
5.根据权利要求4所述的服务器集群系统,其特征在于,所述服务节点还用于若所述路由信息和所述路由信息对应的元数据队列的信息的缓存时间超过缓存有效期,则清除所述路由信息和所述路由信息对应的元数据队列的信息。
6.根据权利要求3所述的服务器集群系统,其特征在于,所述负载均衡器还用于将来自消费终端的订阅请求转发给所述服务器集群系统中的任一服务节点,所述订阅请求用于获取目标元数据队列中的待消费的消息;
所述服务节点还用于根据所述目标元数据队列的信息,从所述存储设备中获取所述待消费的消息和所述目标元数据队列的消费进度。
7.根据权利要求1-6任一项所述的服务器集群系统,其特征在于,所述存储设备包括具有持久化存储结构的设备。
8.一种元数据的访问方法,其特征在于,应用于服务器集群中的服务节点,所述方法包括:
接收来自发送终端的访问请求,所述访问请求用于请求向所述服务器集群发送目标消息;
在所述服务节点的本地缓存或元数据管理节点中获取目标消息的路由信息和元数据队列的信息;
根据所述路由信息,将所述目标消息发送到存储设备中所述元数据队列的存储位置进行存储;
根据所述访问请求中包含的所述目标消息的路由关键词和交换器的信息,确定所述服务节点的本地缓存中是否缓存所述目标消息的路由信息;
若否,则向所述元数据管理节点发送所述目标消息的查询请求,所述查询请求中包含有所述目标消息的路由关键词和交换器的信息;
所述数据管理节点用于根据所述目标消息的路由关键词和交换器的信息,查询所述目标消息的路由信息和所述路由信息对应的元数据队列的信息,并将所述路由信息和所述元数据队列的信息发送给所述服务节点。
9.一种元数据的访问装置,其特征在于,所述装置包括:
接收模块,用于接收来自发送终端的访问请求,所述访问请求用于请求向服务器集群发送目标消息;
处理模块,用于在服务节点的本地缓存或元数据管理节点中获取目标消息的路由信息和元数据队列的信息;
发送模块,用于根据所述路由信息,将所述目标消息发送到存储设备中所述元数据队列的存储位置进行存储;
所述处理模块,具体用于根据所述访问请求中包含的所述目标消息的路由关键词和交换器的信息,确定所述服务节点的本地缓存中是否缓存所述目标消息的路由信息;
所述发送模块,还用于若否,则向所述元数据管理节点发送所述目标消息的查询请求,所述查询请求中包含有所述目标消息的路由关键词和交换器的信息;
所述数据管理节点用于根据所述目标消息的路由关键词和交换器的信息,查询所述目标消息的路由信息和所述路由信息对应的元数据队列的信息,并将所述路由信息和所述元数据队列的信息发送给所述服务节点。
10.一种电子设备,其特征在于,包括:多个处理器和存储器;
所述存储器存储计算机执行指令;
所述多个处理器执行所述存储器存储的计算机执行指令,使得所述多个处理器执行如权利要求8所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求8所述的方法。
CN202210435916.4A 2022-04-24 2022-04-24 服务器集群系统、元数据的访问方法及装置 Active CN114827145B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210435916.4A CN114827145B (zh) 2022-04-24 2022-04-24 服务器集群系统、元数据的访问方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210435916.4A CN114827145B (zh) 2022-04-24 2022-04-24 服务器集群系统、元数据的访问方法及装置

Publications (2)

Publication Number Publication Date
CN114827145A CN114827145A (zh) 2022-07-29
CN114827145B true CN114827145B (zh) 2024-01-05

Family

ID=82507081

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210435916.4A Active CN114827145B (zh) 2022-04-24 2022-04-24 服务器集群系统、元数据的访问方法及装置

Country Status (1)

Country Link
CN (1) CN114827145B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115470008B (zh) * 2022-11-14 2023-03-10 杭州拓数派科技发展有限公司 一种元数据访问方法、装置和存储介质
CN116962446B (zh) * 2023-08-01 2024-02-23 北京志凌海纳科技有限公司 一种NVMe-oF链路动态管理方法及系统
CN116662022B (zh) * 2023-08-02 2024-02-20 苏州浪潮智能科技有限公司 分布式消息处理方法、系统、装置、通信设备及存储介质
CN116760850B (zh) * 2023-08-17 2024-01-12 浪潮电子信息产业股份有限公司 一种数据处理方法、装置、设备、介质及系统
CN116909779B (zh) * 2023-09-11 2024-01-26 中移(苏州)软件技术有限公司 一种消息处理方法、装置及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104050249A (zh) * 2011-12-31 2014-09-17 北京奇虎科技有限公司 分布式查询引擎系统和方法及元数据服务器
CN105681462A (zh) * 2016-03-14 2016-06-15 南京邮电大学 一种基于消息路由的集群系统及数据通信中转方法
CN106034160A (zh) * 2015-03-19 2016-10-19 阿里巴巴集团控股有限公司 分布式计算系统和方法
CN108076103A (zh) * 2016-11-18 2018-05-25 北京优朋普乐科技有限公司 一种消息处理方法、系统及消息生产者集群
CN110290012A (zh) * 2019-07-03 2019-09-27 浪潮云信息技术有限公司 RabbitMQ集群故障的检测恢复系统及方法
CN110457307A (zh) * 2018-05-03 2019-11-15 阿里巴巴集团控股有限公司 元数据管理系统、用户集群创建方法、装置、设备和介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101170416B (zh) * 2006-10-26 2012-01-04 阿里巴巴集团控股有限公司 网络数据存储系统及其数据访问方法
US9569476B2 (en) * 2013-04-02 2017-02-14 International Business Machines Corporation Intelligent data routing and storage provisioning
CN107430606B (zh) * 2014-12-01 2021-06-29 信息科学有限责任公司 具有并行持久性的消息代理系统
US11102125B2 (en) * 2019-06-27 2021-08-24 Citrix Systems, Inc. Securing communications between services in a cluster using load balancing systems and methods
CN111597148B (zh) * 2020-05-14 2023-09-19 杭州果汁数据科技有限公司 用于分布式文件系统的分布式元数据管理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104050249A (zh) * 2011-12-31 2014-09-17 北京奇虎科技有限公司 分布式查询引擎系统和方法及元数据服务器
CN106034160A (zh) * 2015-03-19 2016-10-19 阿里巴巴集团控股有限公司 分布式计算系统和方法
CN105681462A (zh) * 2016-03-14 2016-06-15 南京邮电大学 一种基于消息路由的集群系统及数据通信中转方法
CN108076103A (zh) * 2016-11-18 2018-05-25 北京优朋普乐科技有限公司 一种消息处理方法、系统及消息生产者集群
CN110457307A (zh) * 2018-05-03 2019-11-15 阿里巴巴集团控股有限公司 元数据管理系统、用户集群创建方法、装置、设备和介质
CN110290012A (zh) * 2019-07-03 2019-09-27 浪潮云信息技术有限公司 RabbitMQ集群故障的检测恢复系统及方法

Also Published As

Publication number Publication date
CN114827145A (zh) 2022-07-29

Similar Documents

Publication Publication Date Title
CN114827145B (zh) 服务器集群系统、元数据的访问方法及装置
US7558854B2 (en) Access relaying apparatus
EP3714378B1 (en) Multi-region, multi-master replication of database tables
US7873696B2 (en) Scalable software blade architecture
US7779157B2 (en) Recovering a blade in scalable software blade architecture
CN110149382A (zh) 数据同步的方法、系统、主服务器、同步客户端及介质
JP2007066161A (ja) キャッシュシステム
CN111338806B (zh) 一种业务控制方法及装置
EP1867137A1 (en) Method and apparatus for efficiently expanding a p2p network
CN112948178A (zh) 一种数据处理方法、装置、系统、设备及介质
JP2013156765A (ja) 情報処理装置、分散処理システム、キャッシュ管理プログラムおよび分散処理方法
CN117539915B (zh) 一种数据处理方法及相关装置
WO2012114889A1 (ja) アプリケーション構築配置システム、アプリケーション構築配置方法、およびプログラム
CN112491951B (zh) 对等网络中的请求处理方法、服务器及存储介质
US20230026912A1 (en) Systems and methods for storing content items in secondary storage
CN113760519B (zh) 分布式事务处理方法、装置、系统和电子设备
CN113296968B (zh) 地址列表更新方法、装置、介质及电子设备
CN114238518B (zh) 数据处理方法、装置、设备及存储介质
CN113590507A (zh) 一种分布式存储系统及其缓存层、数据访问方法、设备
CN112565796A (zh) 一种视频内容去中心化存取方法和系统
CN116340431B (zh) 一种分布式系统、数据同步方法、电子设备及存储介质
CN118260304B (zh) 基于缓存一致性目录的请求处理方法、装置、设备及介质
WO2023274267A1 (zh) 内容资源分发方法、内容分发网络、集群及介质
WO2018145739A1 (en) Methods, client and server relating to a distributed database
CN117938809A (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