CN117938805A - 一种访问请求的处理方法和装置 - Google Patents

一种访问请求的处理方法和装置 Download PDF

Info

Publication number
CN117938805A
CN117938805A CN202311863321.XA CN202311863321A CN117938805A CN 117938805 A CN117938805 A CN 117938805A CN 202311863321 A CN202311863321 A CN 202311863321A CN 117938805 A CN117938805 A CN 117938805A
Authority
CN
China
Prior art keywords
unit address
real
difference
access request
time unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311863321.XA
Other languages
English (en)
Inventor
胡东旭
陈存利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Du Xiaoman Technology Beijing Co Ltd
Original Assignee
Du Xiaoman Technology Beijing 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 Du Xiaoman Technology Beijing Co Ltd filed Critical Du Xiaoman Technology Beijing Co Ltd
Priority to CN202311863321.XA priority Critical patent/CN117938805A/zh
Publication of CN117938805A publication Critical patent/CN117938805A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开实施例提供一种访问请求的处理方法和装置,涉及计算资源管理技术领域。该方法的具体实施方式包括:利用预先配备的域名地址生成域名地址解析请求,发送给域名服务器,接收实时单元地址表;将用于响应访问请求的参考单元地址表与实时单元地址表进行对比;在参考单元地址表与实时单元地址表存在差异的情况下,为实时单元地址表开辟更新地址缓存区,将实时单元地址表存储至更新地址缓存区;对于与参考单元地址表处于链接中的访问请求,根据实时单元地址表与参考单元地址表之间的差异类型,采用不同的响应方式。该实施方式能够实时感知容器单元的地址变化,灵活处理各种访问请求,保证访问的连续性,提升用户的资源访问服务体验。

Description

一种访问请求的处理方法和装置
技术领域
本公开涉及计算资源管理技术领域,尤其涉及一种访问请求的处理方法和装置。
背景技术
Kubernetes(简称K8s),是一个开源的、用于管理云平台中多个集群的容器化计算资源、并根据用户需求分配计算资源的容器集群管理系统,可以实现计算资源的统一部署、规划、更新、维护等,包括kube-apiserver、etcd等组件。
etcd存储有各个工作节点的配置信息,kube-apiserver初始启动时配备有etcd对应的各个工作节点的容器单元的单元地址列表,按照单元地址列表为接收的访问请求分配容器单元,并将分配关系写入etcd,etcd会异步推送给各个工作节点,使得工作节点对接容器单元,向各个容器内填充各种计算任务生成各种服务实例。
然而,由于实例故障、单元掉电、单元扩容等种种原因,会导致容器单元下线或上线,使得etcd中的单元地址发生变化,而kube-apiserver的单元地址列表为初始配备、固定不变的,无法实时感知etcd中单元地址的变化,故而kube-apiserver必须重启、重新配置单元地址列表与etcd重连,但重连会导致之前交互的访问请求全部中断,服务访问的连续性大大受阻,降低用户的数据访问服务体验。
发明内容
有鉴于此,本公开实施例提供一种访问请求的处理方法和装置,能够解决接口服务器无法实时感知存储数据库中的地址变化,面对地址变化的情景必须重启,导致与之交互的访问请求全部中断,服务访问的连续性大大受阻,降低用户的数据访问服务体验的问题。
为实现上述目的,根据本公开的一方面,提供了一种访问请求的处理方法,所述方法应用于容器集群管理系统的接口服务器,包括:
利用预先配备的域名地址生成域名地址解析请求,将所述域名地址解析请求发送给域名服务器,接收所述域名服务器返回的实时单元地址表;
将用于响应访问请求的参考单元地址表与所述实时单元地址表进行对比,判断所述参考单元地址表与所述实时单元地址表是否相同;
在所述参考单元地址表与所述实时单元地址表存在差异的情况下,为所述实时单元地址表开辟更新地址缓存区,将所述实时单元地址表存储至所述更新地址缓存区;
对于与所述参考单元地址表处于链接中的访问请求,根据所述实时单元地址表与所述参考单元地址表之间的差异类型,采用不同的处理方式进行响应。
根据本公开的另一方面,提供了一种访问请求的处理装置,所述装置应用于容器集群管理系统的接口服务器,包括:
地址获取模块,用于利用预先配备的域名地址生成域名地址解析请求,将所述域名地址解析请求发送给域名服务器,接收所述域名服务器返回的实时单元地址表;
对比模块,用于将用于响应访问请求的参考单元地址表与所述实时单元地址表进行对比,判断所述参考单元地址表与所述实时单元地址表是否相同;
开辟模块,用于在所述参考单元地址表与所述实时单元地址表存在差异的情况下,为所述实时单元地址表开辟更新地址缓存区,将所述实时单元地址表存储至所述更新地址缓存区;
响应模块,用于对于与所述参考单元地址表处于链接中的访问请求,根据所述实时单元地址表与所述参考单元地址表之间的差异类型,采用不同的处理方式进行响应。
根据本公开的再一方面,提供了一种电子设备,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行所述访问请求的处理方法。
根据本公开实施例的还一个方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行所述访问请求的处理方法。
本申请实施例中提供的一个或多个技术方案,通过配置域名地址,并开辟更新地址缓存区,利用域名地址获取变化的实时单元地址表并存储至更新地址缓存区,根据链接中的访问请求的目标单元地址的变化类型,以不同的方式响应,可以实现实时感知容器单元地址的地址变化,将访问请求路由至新的目标单元地址,无需接口服务器和存储数据库的重连接,保证了用户访问的连续性,提升用户层的透明无感、平滑流畅的资源访问服务体验的技术效果。
附图说明
在下面结合附图对于示例性实施例的描述中,本公开的更多细节、特征和优点被公开,在附图中:
图1示出了根据本公开示例性实施例的访问请求的处理方法的流程图;
图2(a)示出了根据本公开示例性实施例的容器集群管理系统的示意图;
图2(b)示出了根据本公开示例性实施例的容器集群管理系统的示例图;
图3示出了根据本公开示例性实施例的接口服务器和域名服务器的交互流程图;
图4示出了根据本公开示例性实施例的接口服务器的示意图;
图5示出了根据本公开示例性实施例的链接中的访问请求的响应方法的流程图;
图6示出了根据本公开示例性实施例的地址差异的差异类型的确定方法的流程图;
图7示出了根据本公开示例性实施例的不同差异类型的访问请求的响应方法的流程图;
图8示出了根据本公开示例性实施例的一致性校验方法的流程图;
图9示出了根据本公开示例性实施例的健康检测方法的流程图;
图10示出了根据本公开示例性实施例的新的访问请求的处理方法的流程图;
图11示出了根据本公开示例性实施例的访问请求的处理装置的示意性框图;
图12示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“在本公开实施例中”表示“至少一个实施例”;术语“另一示例性实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
Kubernetes(简称K8s):是一个开源的、用于管理云平台中多个集群的容器化计算资源、并根据用户需求分配计算资源的自动化计算引擎,可以实现计算资源的统一部署、规划、更新、维护等。
Kube-apiserver:k8s的核心组件,是k8s中数据资源访问的查询、创建、修改等操作的唯一入口,与etcd交互、调用etcd的接口进行增删改查等操作。
etcd:是一种分布式的Key/Value类型的数据库,由golang语言实现,在k8s中用于存储各种访问请求的分配信息,比如,节点标识、容器单元标识等的创建、分配等操作需要在etcd中持久化。
以下参照附图描述本公开的方案。
图1示出了根据本公开示例性实施例的访问请求的处理方法的流程图,如图1所示,本公开的访问请求的处理方法包括如下步骤:
在本公开实施例中,本公开的访问请求的处理方法由容器集群管理系统的接口服务器执行,如图2(a)所示,容器集群管理系统包括主节点和工作节点,主节点包括接口服务器、存储数据库等,工作节点可以创建一个或多个容器单元,每个容器单元包括一个或多个容器,用于执行服务实例。
进一步地,本公开的访问请求的处理方法由K8s的kube-apiserver执行,如图2(b)所示,K8s包括Master和Node,Master包括kube-apiserver、etcd等,Node可以创建一个或多个Pod,每个Pod包括一个或多个Container,用于执行服务实例。
步骤101,利用预先配备的域名地址生成域名地址解析请求,将所述域名地址解析请求发送给域名服务器,接收所述域名服务器返回的实时单元地址表。
不同于传统的容器集群管理系统的接口服务器,在初始启动时配备存储数据库对应的各个容器单元的单元地址列表,在本公开实施例中,接口服务器配备的是存储数据库对应的各个容器单元所属域名的域名地址,如图3所示,接口服务器定期根据预先配备的域名地址生成域名地址解析请求,向域名服务器请求一次。
进一步地,域名服务器存储了存储数据库对应的各个容器单元的实时的单元地址,如图3所示,接收到接口服务器发起的域名地址解析请求后,域名服务器响应域名地址解析请求,对域名地址进行解析,得到域名地址对应的实时单元地址表,将实时单元地址表返回接口服务器。
更进一步地,定期频率可以根据需要进行选择性设置,比如,每1s、3s请求一次。
步骤102,将用于响应访问请求的参考单元地址表与所述实时单元地址表进行对比,判断所述参考单元地址表与所述实时单元地址表是否相同。
在本公开实施例中,参考单元地址表是接口服务器上一次向域名服务器发起域名地址解析请求、得到的实时单元地址表。需要说明的是,第一个参考单元地址表为容器集群管理系统启动后、接口服务器向域名服务器发起第一个域名地址解析请求后得到的初始的实时单元地址表。
进一步地,参考单元地址表包括各个容器单元的参考单元标识、参考单元地址、参考单元空间、请求计数器一等,实时单元地址表包括各个容器单元的实时单元标识、实时单元地址、实时单元空间、请求计数器二等。接收到实时单元地址表后,接口服务器将参考单元地址表和实时单元地址表进行对比,判断参考单元地址表与实时单元地址表是否相同,包括参考单元地址表中各个容器单元的参考单元标识、参考单元地址、参考单元空间和实时单元地址表中各个容器单元的实时单元标识、实时单元地址、实时单元空间是否相同。
步骤103,在所述参考单元地址表与所述实时单元地址表存在差异的情况下,为所述实时单元地址表开辟更新地址缓存区,将所述实时单元地址表存储至所述更新地址缓存区。
在本公开实施例中,在参考单元标识和实时单元标识的数量不同、或者相同参考单元标识和实时单元标识对应的参考单元地址和实时单元地址中不同的情况下,接口服务器确定参考单元地址表与实时单元地址表存在差异,如图4所示,接口服务器开辟新的内存空间作为更新地址缓存区,用于缓存实时单元地址表。
进一步地,在参考单元地址表和实时单元地址表不存在差异的情况下,接口服务器不开辟新的更新地址缓存区。
步骤104,对于与所述参考单元地址表处于链接中的访问请求,根据所述实时单元地址表与所述参考单元地址表之间的差异类型,采用不同的处理方式进行响应。
在本公开实施例中,在向域名服务器发起域名地址解析请求以前,接口服务器是按照参考单元地址表中的参考单元空间为访问请求分配目标单元地址的,在获取实时单元地址表后,对于与参考单元地址表处于链接中的访问请求,由于参考单元地址表与实时单元地址表存在差异、参考单元地址表中的参考单元地址可能已经变更,会使得按照参考单元地址分配目标单元地址的访问请求的请求结果报错,用户无法访问需要的访问资源。因此,对于与参考单元地址表处于链接中的访问请求,需要根据参考单元地址表与实时单元地址表的差异类型,采用不同的处理方式进行响应。
进一步地,如图5所示,本公开的链接中的访问请求的响应方法包括如下步骤:
步骤501,定位所述实时单元地址表与所述参考单元地址表之间的地址差异,所述地址差异包括参考单元地址差异、和/或实时单元地址差异。
在本公开实施例中,接口服务器定位实时单元地址表与参考单元地址表之间的地址差异,地址差异包括参考单元地址差异和实时单元地址差异中的至少一者。其中,参考单元地址差异包括差异参考单元标识及其对应的参考单元地址,实时单元地址差异包括差异实时单元标识及其对应的实时单元地址。
步骤502,根据所述参考单元地址差异、和/或所述实时单元地址差异,确定所述地址差异的差异类型。
在本公开实施例中,根据地址差异是否仅包括参考单元地址差异或者实时单元地址差异、以及同时存在参考单元地址差异和实时单元地址差异的情况下两者的差异程度,确定地址差异的差异类型,如图6所示,本公开的地址差异的差异类型的确定方法包括如下步骤:
步骤601,判断所述地址差异是否仅包括参考单元地址差异,如果是,转至步骤602;如果否,转至步骤603。
步骤602,确定所述差异类型为缩容类型。
在本公开实施例中,在地址差异仅包括差异参考单元标识及其对应的参考单元地址的情况下,表示K8s缩容,下线了部分容器单元,故而地址差异的差异类型为缩容类型。
步骤603,判断所述地址差异是否仅包括实时单元地址差异,如果是,转至步骤604;如果否,转至步骤605。
步骤604,确定所述差异类型为扩容类型。
在本公开实施例中,在地址差异仅包括差异实时单元标识及其对应的实时单元地址的情况下,表示K8s扩容,新建了部分容器单元,故而地址差异的差异类型为扩容类型。
步骤605,判断所述差异参考单元标识对应的参考单元地址和所述差异实时单元标识对应的实时单元地址是否全部不同,如果是,转至步骤606;如果否,转至步骤607。
步骤606,确定所述差异类型为全切类型。
在本公开实施例中,在差异参考单元标识对应的参考单元地址和差异实时单元标识对应的实时单元地址全部不同的情况下,表示K8s切换至一个新的集群,故而地址差异的差异类型为全切类型。
步骤607,确定所述差异类型为局部替换类型。
在本公开实施例中,在差异参考单元标识对应的参考单元地址和差异实时单元标识对应的实时单元地址部分不同的情况下,表示K8s替换了部分容器单元,故而地址差异的差异类型为局部替换类型。
在本公开实施例中,通过本公开的地址差异的差异类型的确定方法,根据参考单元地址差异和实时单元地址差异的差异内容确定地址差异的差异类型,明确集群的容器单元变化情况,从而后续即可基于不同的差异类型对链接中的访问请求进行不同处理,防止访问请求报错、接口服务器和存储数据库重连导致的访问中断,保证访问请求的全响应,提升访问请求的处理效率和用户资源访问体验。
步骤503,针对不同的差异类型,采用不同的处理方式响应所述链接中的访问请求。
在本公开实施例中,对于链接中的访问请求的目标单元地址来说,扩容类型的地址差异不会对链接中的访问请求造成影响,故而无需进行处理,仍然按照目标单元地址进行转发即可;缩容类型、全切类型和局部替换类型的地址差异由于存在地址的变更,因此,为了保证访问请求的正常响应且不对用户访问体验造成影响,本公开利用重试机制将链接中的访问请求进行拦截,将其目标单元地址更改为新的实时单元地址后分配至更改后的目标单元地址进行访问,如图7所示,本公开的不同差异类型的访问请求的响应方法包括如下步骤:
步骤701,获取与所述参考单元地址表处于链接中的访问请求;其中,所述访问请求包括请求标识。
在本公开实施例中,在链接中的访问请求的目标单元地址的地址差异的差异类型既不是缩容类型、也不是局部替换类型、更不是全切类型的情况下,表示为链接中的访问请求分配的目标单元地址无变化,故而链接中的访问请求仍然按照原先选择的目标单元地址进行资源访问即可。
步骤702,判断所述链接中的访问请求的目标单元地址的地址差异的差异类型是否为缩容类型,如果是,转至步骤703;如果否,转至步骤706。
步骤703,将所述链接中的访问请求挂起,从所述实时单元地址表中重新为所述链接中的访问请求选择目标单元地址。
在本公开实施例中,在链接中的访问请求的目标单元地址的地址差异的差异类型为缩容类型的情况下,表示为链接中的访问请求分配的目标单元地址已下线,故而接口服务器需要从实时单元地址表中重新为链接中的访问请求选择目标单元地址。
在本公开实施例中,在第一元数据和第二元数据的一致性校验的校验结果为校验成功的情况下,表示为链接中的访问请求分配的目标单元地址所属的第一集群已下线,故而接口服务器需要从实时单元地址差异所属的第二集群中重新为链接中的访问请求选择目标单元地址。
步骤704,将重新选择的目标单元地址和所述链接中的访问请求的请求标识的对应关系写入存储数据库。
在本公开实施例中,接口服务器将重新选择的目标单元地址和链接中的访问请求的请求标识的对应关系写入存储数据库,使得存储数据库异步推送缩容类型的访问请求至重新选择的目标单元地址,重新选择的目标单元地址响应链接中的访问请求。
步骤705,递增所述实时单元地址表中与所述链接中的访问请求的请求标识对应的请求计数器二,并递减与所述链接中的访问请求的请求标识对应的请求计数器一。
在本公开实施例中,写入完成后,接口服务器修改实时单元地址表和参考单元地址表中的计数器数据,以便于后续过程中依赖于计数器数据释放参考单元地址表的缓存空间,保证访问请求响应的准确性、节省接口服务器的内存资源。
进一步地,接口服务器将实时单元地址表中与重新选择目标单元地址的访问请求的请求标识对应的请求计数器二+1,并将参考单元地址表中与重新选择目标单元地址的访问请求的请求标识对应的请求计数器一-1,也即,重新选择的目标单元地址访问数+1、重新选择之前的目标单元地址访问数-1。
更进一步地,在参考单元地址表中请求计数器一的数值皆为0(也即请求计数器一清空)的情况下,释放参考单元地址表对应的缓存空间,相应地,更新地址缓存区的实时单元地址表成为接口服务器的参考单元地址表。如此往复,接口服务器会为新的存在差异的实时单元地址表再次开辟新的更新地址缓存区,以此类推。
步骤706,判断所述访问请求的目标单元地址的地址差异的差异类型是否为局部替换类型,如果是,转至步骤707;如果否,转至步骤709。
步骤707,将所述链接中的访问请求挂起,并将所述链接中的访问请求的目标单元地址更改为与所述差异参考单元标识相同的差异实时单元标识的实时单元地址。
在本公开实施例中,在链接中的访问请求的目标单元地址的地址差异的差异类型为局部替换类型的情况下,表示为链接中的访问请求分配的目标单元地址已替换,故而接口服务器从实时单元地址表中,查找与差异参考单元标识相同的差异实时单元标识,作为链接中的访问请求的更改后的目标单元地址。
步骤708,将更改后的目标单元地址和所述请求标识的对应关系写入存储数据库,转至步骤705。
步骤709,判断所述链接中的访问请求的目标单元地址的地址差异的差异类型是否为全切类型,如果是,转至步骤710;如果否,转至步骤701。
步骤710,对所述参考单元地址差异所属的第一集群的第一元数据和所述实时单元地址差异所属的第二集群的第二元数据进行一致性校验。
在本公开实施例中,在链接中的访问请求的目标单元地址的地址差异的差异类型为全切类型的情况下,表示参考单元地址差异所属的集群和实时单元地址差异所属的集群整体切换,因此,为了保证访问请求的访问结果的正确性、也即访问请求所访问的数据一致,需要对两个集群的一致性进行校验,如图8所示,本公开的一致性校验方法包括如下步骤:
步骤801,判断所述差异参考单元标识对应的参考单元地址所属的第一集群的第一主节点是否存活,如果是,转至步骤802;如果否,转至步骤807。
在本公开实施例中,对于全切类型的地址差异来说,差异参考单元标识及其对应的参考单元地址和差异实时单元标识及其对应的实时单元地址分属两个不同的集群,因此,需要根据第一集群的集群主节点是否存活,判断从何处获取第一集群的第一元数据。
步骤802,访问所述第一主节点,从所述第一主节点获取第一元数据。
在本公开实施例中,在第一集群的第一主节点存活的情况下,可以直接从第一主节点获取第一集群的第一元数据。
进一步地,元数据包括集群的节点数、各个节点的命名空间、各个节点包括的容器单元、每个容器单元的容器数目、数据条目数、每条数据的数据版本等。
步骤803,访问所述差异实时单元标识对应的实时单元地址所属的第二集群的第二主节点,从所述第二主节点获取第二元数据。
步骤804,对比所述第一元数据和所述第二元数据是否相同,如果是,转至步骤805;如果否,转至步骤806。
步骤805,确定所述一致性校验的校验结果为校验成功。
在本公开实施例中,在第一元数据和第二元数据相同的情况下,确定一致性校验的校验结果为校验成功。
步骤806,确定所述一致性校验的校验结果为校验失败。
在本公开实施例中,在第一元数据和第二元数据不同的情况下,确定一致性校验的校验结果为校验失败。
步骤807,根据所述第一集群的集群标识,向所述存储数据库发送冷备元数据请求,接收所述存储数据库返回的第一元数据,转至步骤803。
在本公开实施例中,在第一集群的第一主节点未存活的情况下,表示第一集群已宕机,由于存储数据库会实时对包括的各个集群的数据进行备份,故而向存储数据库发送冷备元数据请求,以获取第一集群的第一元数据。
进一步地,存储数据库的实时备份方式为定期全量备份和实时增量备份相结合。
在本公开实施例中,通过本公开的一致性校验方法,能够对参考单元地址差异和实时单元地址差异所属集群的元数据进行一致性校验,以保证数据访问的一致性,防止数据出错导致用户的后续处理无效,提升用户的数据访问体验,保证数据访问的准确性。
步骤711,判断所述一致性校验的校验结果是否为校验成功,如果是,转至步骤703;如果否,转至步骤712。
步骤712,将所述链接中的访问请求转发至人工校验终端。
在本公开实施例中,在第一元数据和第二元数据的一致性校验的校验结果为校验失败的情况下,将链接中的访问请求转发至人工校验终端,由工作人员介入处理,防止访问出错。
在本公开实施例中,通过本公开的不同差异类型的访问请求的响应方法,利用挂起重试机制,对缩容类型、局部替换类型和全切类型的地址差异进行分情况处理,及时更新链接中的访问请求的目标单元地址,实现访问请求的正常响应,可以提升用户的访问体验、访问地址切换的平滑度,使得用户层面对地址切换过程无感,也即,对于用户来说是透明无感、流畅的访问体验,保证访问请求全响应以及访问数据的准确性,降低接口服务器和存储数据库的重连接成本,提升访问响应效率。
在本公开实施例中,通过本公开的链接中的访问请求的响应方法,链接中的访问请求的响应方法,先对两个地址表中的地址差异的差异类型进行定位,从而后续在处理链接中的访问请求时,根据目标单元地址的差异类型,选择不同的处理方式,以保证链接中的访问请求的正常响应,实现平滑、流畅、透明无感的用户访问体验,提升用户访问效率和用户访问满意度,保证访问数据准确性的同时避免了接口服务器和存储数据库的重连接的高昂成本。
在本公开实施例中,在采用不同的处理方式响应链接中的访问请求之前,需要先对实时单元地址表进行健康检测,以确保实时单元地址的正常运行状态,进而保证用户的正常访问,如图9所示,本公开的健康检测方法包括如下步骤:
步骤901,向所述实时单元地址表所属的各个集群的主节点下发写入指令;其中,所述写入指令包括待写入数据。
在本发明实施例中,接口服务器向实时单元地址表所属的各个集群的主节点下发写入指令。比如,写入指令的待写入数据为“hello world”。
步骤902,接收所述各个集群的主节点返回的写入结果,判断所述写入结果是否为写入成功,如果是,转至步骤903;如果否,转至步骤907。
在本发明实施例中,各个集群的主节点响应于写入指令,将待写入数据写入主节点,返回主节点的写入结果,写入结果包括主键标识。
进一步地,主节点写入完毕后,各个主节点会自动向各个从节点同步待写入数据,保证各个节点的数据一致性。
步骤903,从所述各个集群的从节点中读取与所述写入结果的主键标识对应的从节点数据,判断所述从节点数据与所述待写入数据是否相同,如果是,转至步骤904;如果否,转至步骤907。
在本发明实施例中,在写入结果为写入成功的情况下,判断各个集群的主从节点数据是否一致,进而确定各个集群的健康状态。
步骤904,获取所述链接中的访问请求的请求配额,并从所述存储数据库读取所述各个集群的已用配额。
在本发明实施例中,在各个集群的从节点数据与主节点写入的待写入数据相同的情况下,进一步对各个集群的集群配额进行判断。
步骤905,根据全部所述请求配额与所述已用配额,计算预测剩余配额是否大于等于剩余配额阈值,如果是,转至步骤906;如果否,转至步骤907。
在本发明实施例中,存储数据库存储了各个集群的总配额,利用总配额减去各个集群的已用配额、再减去全部链接中的访问请求的请求配额之和,得到预测剩余配额,判断预测剩余配额是否大于等于剩余配额阈值。
步骤906,确定所述健康检测的检测结果为健康。
在本发明实施例中,在预测剩余配额大于等于剩余配额阈值的情况下,表示各个集群的剩余配额满足链接中的访问请求的配额需求,可以正常处理与参考单元地址表处于链接中的访问请求,故而健康检测的检测结果为健康。
步骤907,确定所述健康检测的检测结果为不健康。
在本发明实施例中,在预测剩余配额小于剩余配额阈值的情况下,表示各个集群的剩余配额可能无法满足链接中的访问请求的配额需求,访问请求的处理可能出错,故而健康检测的检测结果为不健康。
或者,在任一集群的主节点返回的写入结果为写入失败、或者任一集群的从节点数据与主节点写入的待写入数据不同的情况下,表示集群无法正常运行,故而健康检测的检测结果为不健康。
进一步地,需要将不健康的检测结果发送给人工校验终端,由人工校验终端的工作人员介入处理。
在本发明实施例中,通过本公开的健康检测方法,在对链接中的访问请求进行处理之前,对各个集群进行健康检测,利用写入数据的节点一致性和配额需求校验的结果确定实时单元地址表所属的各个集群是否健康,以确保地址切换之后访问请求的正常响应,实现单元地址的用户层无感切换。
在本发明实施例中,通过本公开的访问请求的处理方法,利用域名配置获取实时单元地址表,与参考单元地址表进行对比判断是否存在差异,存在差异的情况下为实时单元地址开辟更新地址缓存区进行存放,并对比差异类型确定链接中的访问请求和新的访问请求的不同响应方式,接口服务器能够实时感知存储数据库中的地址变化,面对地址变化灵活处理各种访问请求,保证访问的连续性,提升用户的资源访问服务体验。
进一步地,实时单元地址表存储至更新地址缓存区后,面对新的访问请求,直接利用实时单元地址表进行负载均衡分配即可,如图10所示,本公开的新的访问请求的处理方法包括如下步骤:
步骤1001,接收新的访问请求;其中,所述新的访问请求包括请求标识和请求配额。
步骤1002,从所述实时单元地址表中匹配符合所述新的访问请求的请求配额的目标单元地址。
步骤1003,将所述新的访问请求的目标单元地址和请求标识的对应关系写入存储数据库。
步骤1004,递增所述实时单元地址表中与所述新的访问请求的目标单元地址对应的请求计数器二。
在本发明实施例中,通过本公开的新的访问请求的处理方法,对于新的访问请求,直接轮询实时单元地址表中各个实时单元地址,从中选择满足新的访问请求的配额需求的目标单元地址,并写入存储数据库异步推送、响应新的访问请求即可,保证了数据访问的连续性。
图11是根据本公开实施例的访问请求的处理装置的主要模块的示意图,如图11所示,本公开的访问请求的处理装置1100包括:
地址获取模块1101,用于利用预先配备的域名地址生成域名地址解析请求,将所述域名地址解析请求发送给域名服务器,接收所述域名服务器返回的实时单元地址表。
对比模块1102,用于将用于响应访问请求的参考单元地址表与所述实时单元地址表进行对比,判断所述参考单元地址表与所述实时单元地址表是否相同。
开辟模块1103,用于在所述参考单元地址表与所述实时单元地址表存在差异的情况下,为所述实时单元地址表开辟更新地址缓存区,将所述实时单元地址表存储至所述更新地址缓存区。
响应模块1104,用于对于与所述参考单元地址表处于链接中的访问请求,根据所述实时单元地址表与所述参考单元地址表之间的差异类型,采用不同的处理方式进行响应。
本公开示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本公开实施例的方法。
本公开示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。
本公开示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。
参考图12,现将描述可以作为本公开的服务器或客户端的电子设备1200的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图12所示,电子设备1200包括计算单元1201,其可以根据存储在只读存储器(ROM)1202中的计算机程序或者从存储单元1208加载到随机访问存储器(RAM)1203中的计算机程序,来执行各种适当的动作和处理。在RAM1203中,还可存储设备1200操作所需的各种程序和数据。计算单元1201、ROM1202以及RAM1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
电子设备1200中的多个部件连接至I/O接口1205,包括:输入单元1206、输出单元1207、存储单元1208以及通信单元1209。输入单元1206可以是能向电子设备1200输入信息的任何类型的设备,输入单元1206可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元1207可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元1208可以包括但不限于磁盘、光盘。通信单元1209允许电子设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元1201可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1201的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1201执行上文所描述的各个方法和处理。例如,在一些实施例中,图1、图5至图10的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由ROM1202和/或通信单元1209而被载入和/或安装到电子设备1200上。在一些实施例中,计算单元1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行图1、图5至图10的方法。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
如本公开使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

Claims (16)

1.一种访问请求的处理方法,其特征在于,所述方法应用于容器集群管理系统的接口服务器,包括:
利用预先配备的域名地址生成域名地址解析请求,将所述域名地址解析请求发送给域名服务器,接收所述域名服务器返回的实时单元地址表;
将用于响应访问请求的参考单元地址表与所述实时单元地址表进行对比,判断所述参考单元地址表与所述实时单元地址表是否相同;
在所述参考单元地址表与所述实时单元地址表存在差异的情况下,为所述实时单元地址表开辟更新地址缓存区,将所述实时单元地址表存储至所述更新地址缓存区;
对于与所述参考单元地址表处于链接中的访问请求,根据所述实时单元地址表与所述参考单元地址表之间的差异类型,采用不同的处理方式进行响应。
2.如权利要求1所述的处理方法,其特征在于,所述对于与所述参考单元地址表处于链接中的访问请求,根据所述实时单元地址表与所述参考单元地址表之间的差异类型,采用不同的处理方式进行响应,包括:
定位所述实时单元地址表与所述参考单元地址表之间的地址差异,所述地址差异包括参考单元地址差异、和/或实时单元地址差异;
根据所述参考单元地址差异、和/或所述实时单元地址差异,确定所述地址差异的差异类型;
针对不同的差异类型,采用不同的处理方式响应所述链接中的访问请求。
3.如权利要求2所述的处理方法,其特征在于,所述差异类型包括缩容类型和全切类型;所述针对不同的差异类型,采用不同的处理方式响应所述链接中的访问请求,包括:
在所述链接中的访问请求的目标单元地址的地址差异的差异类型为缩容类型或者全切类型的情况下,将所述链接中的访问请求挂起;
从所述实时单元地址表中重新为所述链接中的访问请求选择目标单元地址;
将重新选择的目标单元地址和所述链接中的访问请求的请求标识的对应关系写入存储数据库。
4.如权利要求3所述的处理方法,其特征在于,在所述链接中的访问请求的目标单元地址的地址差异的差异类型为全切类型、将所述链接中的访问请求挂起之前,还包括:
对所述参考单元地址差异所属的第一集群的第一元数据和所述实时单元地址差异所属的第二集群的第二元数据进行一致性校验;
在所述一致性校验的校验结果为校验成功的情况下,执行所述将所述链接中的访问请求挂起。
5.如权利要求4所述的处理方法,其特征在于,所述一致性校验,包括:
判断所述差异参考单元标识对应的参考单元地址所属的第一集群的第一主节点是否存活,在所述第一主节点存活的情况下,从所述第一主节点读取所述第一集群的第一元数据;
访问所述差异实时单元标识对应的实时单元地址所属的第二集群的第二主节点,从所述第二主节点获取第二元数据;
对比所述第一元数据和所述第二元数据是否相同,确定所述一致性校验的校验结果。
6.如权利要求5所述的处理方法,其特征在于,在所述第一主节点未存活的情况下,所述第一源数据的获取,包括:
根据所述第一集群的集群标识,向所述存储数据库发送冷备元数据请求;
接收所述存储数据库响应于所述冷备元数据请求返回的第一元数据。
7.如权利要求2所述的处理方法,其特征在于,所述差异类型还包括局部替换类型;所述针对不同的差异类型,采用不同的处理方式响应所述链接中的访问请求,包括:
在所述链接中的访问请求的目标单元地址的地址差异的差异类型为局部替换类型的情况下,将所述链接中的访问请求挂起;
将所述链接中的访问请求的目标单元地址更改为与所述差异参考单元标识相同的差异实时单元标识的实时单元地址;
将更改后的目标单元地址和所述请求标识的对应关系写入存储数据库。
8.如权利要求3或7所述的处理方法,其特征在于,还包括:
递增所述实时单元地址表中与所述链接中的访问请求的请求标识对应的请求计数器二,并递减与所述链接中的访问请求的请求标识对应的请求计数器一。
9.如权利要求2所述的处理方法,其特征在于,所述根据所述参考单元地址差异、和/或所述实时单元地址差异,确定所述地址差异的差异类型,包括:
在所述地址差异仅包括参考单元地址差异的情况下,确定所述差异类型为缩容类型;
或者,在所述地址差异仅包括实时单元地址差异的情况下,确定所述差异类型为扩容类型。
10.如权利要求2所述的处理方法,其特征在于,所述根据所述参考单元地址差异、和/或所述实时单元地址差异,确定所述地址差异的差异类型,包括:
判断所述差异参考单元标识对应的参考单元地址和所述差异实时单元标识对应的实时单元地址是否全部不同,在所述差异参考单元标识对应的参考单元地址和所述差异实时单元标识对应的实时单元地址全部不同的情况下,确定所述差异类型为全切类型;
在所述差异参考单元标识对应的参考单元地址和所述差异实时单元标识对应的实时单元地址部分不同的情况下,确定所述差异类型为局部替换类型。
11.如权利要求1所述的处理方法,其特征在于,在所述采用不同的处理方式响应链接中的访问请求之前,还包括:
向所述实时单元地址表所属的各个集群的主节点下发写入指令,接收所述各个集群的主节点返回的写入结果;
获取所述链接中的访问请求的请求配额,并从所述存储数据库读取所述各个集群的已用配额;
根据所述写入结果、所述请求配额和所述已用配额,对所述各个集群进行健康检测。
12.如权利要求11所述的处理方法,其特征在于,所述写入指令包括待写入数据;所述根据所述写入结果、所述请求配额和所述已用配额,判断所述各个集群的健康状态,包括:
判断所述写入结果是否为写入成功;
在所述写入结果为写入成功的情况下,从所述各个集群的从节点中读取与所述写入结果的主键标识对应的从节点数据,判断所述从节点数据与所述待写入数据是否相同;
若所述各个集群的从节点数据与主节点写入的待写入数据相同,根据全部所述请求配额与所述已用配额,计算预测剩余配额是否大于等于剩余配额阈值;
在所述预测剩余配额大于等于剩余配额阈值的情况下,确定所述健康检测的检测结果为健康。
13.如权利要求1所述的处理方法,其特征在于,还包括:
接收新的访问请求;其中,所述新的访问请求包括请求标识和请求配额;
从所述实时单元地址表中匹配符合所述新的访问请求的请求配额的目标单元地址,将所述新的访问请求的目标单元地址和请求标识的对应关系写入存储数据库;
递增所述实时单元地址表中与所述新的访问请求的目标单元地址对应的请求计数器二。
14.一种访问请求的处理装置,其特征在于,所述装置应用于容器集群管理系统的接口服务器,包括:
地址获取模块,用于利用预先配备的域名地址生成域名地址解析请求,将所述域名地址解析请求发送给域名服务器,接收所述域名服务器返回的实时单元地址表;
对比模块,用于将用于响应访问请求的参考单元地址表与所述实时单元地址表进行对比,判断所述参考单元地址表与所述实时单元地址表是否相同;
开辟模块,用于在所述参考单元地址表与所述实时单元地址表存在差异的情况下,为所述实时单元地址表开辟更新地址缓存区,将所述实时单元地址表存储至所述更新地址缓存区;
响应模块,用于对于与所述参考单元地址表处于链接中的访问请求,根据所述实时单元地址表与所述参考单元地址表之间的差异类型,采用不同的处理方式进行响应。
15.一种电子设备,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1-13中任一项所述的访问请求的处理方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-13中任一项所述的访问请求的处理方法。
CN202311863321.XA 2023-12-29 2023-12-29 一种访问请求的处理方法和装置 Pending CN117938805A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311863321.XA CN117938805A (zh) 2023-12-29 2023-12-29 一种访问请求的处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311863321.XA CN117938805A (zh) 2023-12-29 2023-12-29 一种访问请求的处理方法和装置

Publications (1)

Publication Number Publication Date
CN117938805A true CN117938805A (zh) 2024-04-26

Family

ID=90767732

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311863321.XA Pending CN117938805A (zh) 2023-12-29 2023-12-29 一种访问请求的处理方法和装置

Country Status (1)

Country Link
CN (1) CN117938805A (zh)

Similar Documents

Publication Publication Date Title
US10116735B2 (en) Service migration across cluster boundaries
CN111124475B (zh) 存储管理的方法、电子设备和计算机可读存储介质
US11556369B2 (en) Virtual machine deployment method and OMM virtual machine
US20210089379A1 (en) Computer system
CN110520844A (zh) 云管理平台、虚拟机管理方法及其系统
CN112083889A (zh) 数据迁移方法、装置、设备及可读存储介质
CN106874142B (zh) 一种实时数据容错处理方法及系统
CN109743202B (zh) 数据的管理方法、装置、设备及可读存储介质
CN112434008A (zh) 分布式数据库升级方法、设备及介质
CN113934707A (zh) 云原生数据库、数据库扩容方法、数据库缩容方法和装置
CN114371914A (zh) 容器ip地址配置方法、装置、存储介质及电子设备
CN115470303B (zh) 一种数据库访问方法、装置、系统、设备及可读存储介质
CN112711469A (zh) 云主机迁移方法、装置、计算机设备和存储介质
CN114070889B (zh) 配置方法、流量转发方法、设备、存储介质及程序产品
CN117938805A (zh) 一种访问请求的处理方法和装置
EP4227802A1 (en) Method, apparatus and computing device for configuring compute mode
WO2022121387A1 (zh) 数据存储方法、装置、服务器及介质
CN113127430B (zh) 镜像信息处理方法、装置、计算机可读介质及电子设备
CN114143328A (zh) 一种云手机的数据迁移方法、装置、设备和介质
CN116635831A (zh) 一种数据存储方法、装置及相关设备
CN113360689B (zh) 图像检索系统、方法、相关装置及计算机程序产品
CN110022220A (zh) 名片识别中的路由激活方法及系统
CN112506583A (zh) 一种实例控制方法、装置、设备、存储介质以及程序产品
CN114064210A (zh) 数据卷变更方法、装置、设备和存储介质
CN117009068A (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