CN113190625A - 请求处理方法、装置、电子设备、介质和程序产品 - Google Patents
请求处理方法、装置、电子设备、介质和程序产品 Download PDFInfo
- Publication number
- CN113190625A CN113190625A CN202110587778.7A CN202110587778A CN113190625A CN 113190625 A CN113190625 A CN 113190625A CN 202110587778 A CN202110587778 A CN 202110587778A CN 113190625 A CN113190625 A CN 113190625A
- Authority
- CN
- China
- Prior art keywords
- site
- processing
- request
- sites
- region
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 37
- 238000012545 processing Methods 0.000 claims abstract description 215
- 230000004044 response Effects 0.000 claims abstract description 100
- 238000000034 method Methods 0.000 claims abstract description 33
- 238000004590 computer program Methods 0.000 claims description 16
- 230000015654 memory Effects 0.000 claims description 16
- 230000000977 initiatory effect Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 11
- 230000000694 effects Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种请求处理方法,包括:接收客户端发送的业务处理请求,业务处理请求用于指示从服务端获得业务处理请求的处理响应信息,服务端包括基于分布式架构部署在m个不同地域内的n个站点,m、n为整数,且n≥m≥2。将业务处理请求路由至n个站点中的第一站点。响应于业务处理请求,读取存储在第一站点的本地元数据来确定第一站点中是否存在处理响应信息,本地元数据用于表征存储在本地站点的业务数据的数据信息。若存在,则基于第一站点的本地元数据,从存储在第一站点的业务数据中获得处理响应信息并发送至客户端。本公开还提供一种请求处理装置、电子设备、介质和程序产品。本公开提供的方法和装置例如可以应用于金融领域或其他领域。
Description
技术领域
本公开涉及分布式技术领域,特别是涉及一种请求处理方法、装置、电子设备、介质和程序产品。
背景技术
本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
随着分布式技术的空前发展,越来越多企业的系统架构纷纷从集中式向分布式转型,相应地,对分布式系统架构的部署要求也越来越高,从同城的双活部署到跨地域的多点多活部署,甚至到未来的全球化部署。在跨地域多点多活的分布式架构系统集群中,首先要保证多个站点的数据之间的一致性,但是为了保证整个分布式系统架构集群的性能,在多个站点数据的一致性上,只做异步数据的同步,而不做同步数据的同步,如果是强一致的话,异地的网络延迟会让整个集群性能慢到无法支撑核心业务。
在实现本公开构思的过程中,发明人发现现有技术中至少存在如下问题:异地的网络延迟是跨地域多点多活架构的最大阻碍,而光纤的传输速度以目前掌握的技术无法突破。
发明内容
有鉴于此,为了至少部分地克服相关技术存在的上述技术问题,本公开提供了一种请求处理方法、装置、电子设备、介质和程序产品。
为了实现上述目标,本公开的一个方面提供了一种请求处理方法,可以包括:接收客户端发送的业务处理请求,其中,上述业务处理请求用于指示从服务端获得上述业务处理请求的处理响应信息,上述服务端包括基于分布式架构部署在m个不同地域内的n个站点,m、n为整数,且n≥m≥2;将上述业务处理请求路由至上述n个站点中的第一站点;响应于上述业务处理请求,读取存储在上述第一站点的本地元数据来确定上述第一站点中是否存在上述处理响应信息,其中,上述本地元数据用于表征存储在本地站点的业务数据的数据信息;以及在确定上述第一站点中存在上述处理响应信息的情况下,基于上述第一站点的本地元数据,从存储在上述第一站点的业务数据中获得上述处理响应信息并发送至上述客户端。
根据本公开的实施例,上述方法还可以包括:在确定上述第一站点中不存在上述处理响应信息的情况下,读取存储在上述第一站点的全局元数据来确定存储有上述处理响应信息的第二站点,其中,上述全局元数据用于表征存储在上述n个站点的业务数据的数据信息,上述第二站点不同于上述第一站点;以及基于上述第二站点的本地元数据,从存储在上述第二站点的业务数据中获得上述处理响应信息并发送至上述客户端。
根据本公开的实施例,上述将上述业务处理请求路由至上述n个站点中的第一站点可以包括:获得上述客户端发送上述业务处理请求的发起位置;确定上述发起位置在上述m个不同地域中所属的第一地域,其中,上述第一地域内部署有p个站点,p为正整数,且n>p;从上述p个站点中选择出第一站点;以及将上述业务处理请求路由至上述第一站点。
根据本公开的实施例,上述从上述p个站点中选择出第一站点可以包括:基于上述p个站点中每个站点所覆盖的地域信息,确定q个覆盖位置,q为正整数;基于上述发起位置和上述q个覆盖位置之间的距离,从上述p个站点中选择出第一候选站点;检测上述第一候选站点是否为可用状态;以及在上述第一候选站点为可用状态的情况下,将上述第一候选站点确定为上述第一站点。
根据本公开的实施例,上述方法还可以包括:响应于接收到第一故障信息,从除上述第一站点之外的其他p-1个站点中选择出处于可用状态的第二候选站点,其中,上述第一故障信息用于表征上述第一地域内的上述第一站点为不可用状态;将上述第二候选站点作为新的第一站点;以及将上述业务处理请求路由至上述新的第一站点来响应于上述业务处理请求。
根据本公开的实施例,上述方法还可以包括:响应于接收到第二故障信息,从除上述第一地域之外的其他m-1个地域中选择出第二地域,其中,上述第二故障信息用于表征上述第一地域内的所有站点为不可用状态,上述第二地域内部署有q个站点,q为正整数,且n>q;从上述q个站点中选择出处于可用状态的第三候选站点;将上述第三候选站点作为新的第一站点;以及将上述业务处理请求路由至上述新的第一站点来响应于上述业务处理请求。
为了实现上述目标,本公开的另一个方面提供了一种请求处理装置,可以包括:接收模块,用于接收客户端发送的业务处理请求,其中,上述业务处理请求用于指示从服务端获得上述业务处理请求的处理响应信息,上述服务端包括基于分布式架构部署在m个不同地域内的n个站点,m、n为整数,且n≥m≥2;第一路由模块,用于将上述业务处理请求路由至上述n个站点中的第一站点;第一确定模块,用于响应于上述业务处理请求,读取存储在上述第一站点的本地元数据来确定上述第一站点中是否存在上述处理响应信息,其中,上述本地元数据用于表征存储在本地站点的业务数据的数据信息;以及第一处理模块,用于在确定上述第一站点中存在上述处理响应信息的情况下,基于上述第一站点的本地元数据,从存储在上述第一站点的业务数据中获得上述处理响应信息并发送至上述客户端。
根据本公开的实施例,上述装置还可以包括:第二确定模块,用于在确定上述第一站点中不存在上述处理响应信息的情况下,读取存储在上述第一站点的全局元数据来确定存储有上述处理响应信息的第二站点,其中,上述全局元数据用于表征存储在上述n个站点的业务数据的数据信息,上述第二站点不同于上述第一站点;以及第二处理模块,用于基于上述第二站点的本地元数据,从存储在上述第二站点的业务数据中获得上述处理响应信息并发送至上述客户端。
根据本公开的实施例,上述第一路由模块可以包括:获得子模块,用于获得上述客户端发送上述业务处理请求的发起位置;确定子模块,用于确定上述发起位置在上述m个不同地域中所属的第一地域,其中,上述第一地域内部署有p个站点,p为正整数,且n>p;选择子模块,用于从上述p个站点中选择出第一站点;以及路由子模块,用于将上述业务处理请求路由至上述第一站点。
根据本公开的实施例,上述选择子模块可以包括:第一确定单元,用于基于上述p个站点中每个站点所覆盖的地域信息,确定q个覆盖位置,q为正整数;选择单元,用于基于上述发起位置和上述q个覆盖位置之间的距离,从上述p个站点中选择出第一候选站点;检测单元,用于检测上述第一候选站点是否为可用状态;以及第二确定单元,用于在上述第一候选站点为可用状态的情况下,将上述第一候选站点确定为上述第一站点。
根据本公开的实施例,上述装置还可以包括:第一选择模块,用于响应于接收到第一故障信息,从除上述第一站点之外的其他p-1个站点中选择出处于可用状态的第二候选站点,其中,上述第一故障信息用于表征上述第一地域内的上述第一站点为不可用状态;第三确定模块,用于将上述第二候选站点作为新的第一站点;以及第二路由模块,用于将上述业务处理请求路由至上述新的第一站点来响应于上述业务处理请求。
根据本公开的实施例,上述装置还可以包括:第二选择模块,用于响应于接收到第二故障信息,从除上述第一地域之外的其他m-1个地域中选择出第二地域,其中,上述第二故障信息用于表征上述第一地域内的所有站点为不可用状态,上述第二地域内部署有q个站点,q为正整数,且n>q;第三选择模块,用于从上述q个站点中选择出处于可用状态的第三候选站点;第四确定模块,用于将上述第三候选站点作为新的第一站点;以及第三路由模块,用于将上述业务处理请求路由至上述新的第一站点来响应于上述业务处理请求。
为了实现上述目标,本公开的另一方面提供了一种电子设备,可以包括:一个或多个处理器,存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的请求处理方法。
为了实现上述目标,本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现如上所述的请求处理方法。
为了实现上述目标,本公开的另一方面提供了一种计算机程序,上述计算机程序包括计算机可执行指令,上述指令在被执行时用于实现如上所述的请求处理方法。
根据本公开的实施例,基于分布式架构部署在m个不同地域内的包含n个站点的服务端,首先可以将客户端发送的业务处理请求路由至n个站点中的第一站点,然后优先访问存储在第一站点中的本地元数据,在本地元数据表征第一站点存在该业务处理请求的处理响应信息的情况下,直接从存储在第一站点的业务数据中获得处理响应信息并将其发送至客户端,而在本地元数据表征第一站点不存在该业务处理请求的处理响应信息的情况下,再去访问全局元数据来确定存储有该处理响应信息的第二站点,并从第二站点中获得处理响应信息并将其发送至客户端,由于对路由到的任一站点来说优先访问其本地元数据,保证每个站点对外服务的时效性,可以至少部分地避免跨地域访问所导致的高网络开销,并因此可以实现业务处理请求优先在本地找到处理响应信息,减少跨地域访问的技术效果。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示意性示出了适用于本公开实施例的请求处理方法、装置、电子设备、介质和程序产品的系统架构;
图2示意性示出了适用于本公开实施例的请求处理方法、装置、电子设备、介质和程序产品的分布式架构部署图;
图3示意性示出了根据本公开实施例的请求处理方法的流程图;
图4示意性示出了根据本公开实施例的分布式系统架构的框图;
图5示意性示出了根据本公开实施例的请求处理装置的框图;
图6示意性示出了根据本公开实施例的适于实现上文描述的请求处理方法的计算机可读存储介质产品的示意图;以及
图7示意性示出了根据本公开实施例的适于实现上文描述的请求处理方法的电子设备的框图。
在附图中,相同或对应的标号表示相同或对应的部分。
应该注意的是,附图并未按比例绘制,并且出于说明目的,在整个附图中类似结构或功能的元素通常用类似的附图标记来表示。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了上述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程请求处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括同件、微代码等)的形式来实现。另外本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
随着信息技术的不断进步,分布式技术空前发展,集支持高并发、高容量、高可用、高容灾等多种优势于一身的分布式系统架构受到越来越多的青睐,许多大型金融企业的系统架构也纷纷从集中式向分布式转型,相应地,对分布式系统架构的要求也越来越高,从同城的双活部署到跨地域的多点多活部署,甚至到未来的全球化部署,但是摆在面前的一大挑战就是超远距离所导致的网络延迟。
本公开考虑到如果降低不了网络延迟那就尽量减少跨地域访问,因此本公开的实施例提供了一种请求处理方法、可以应用该请求处理方法的请求处理装置、电子设备、介质以及程序产品。其中该请求处理方法可以包括请求路由过程和请求处理过程。在请求路由的过程中,接收客户端发送的业务处理请求,该业务处理请求用于指示从服务端获得业务处理请求的处理响应信息,该服务端包括基于分布式架构部署在m个不同地域内的n个站点,m、n为整数,且n≥m≥2,并将业务处理请求路由至n个站点中的第一站点。在完成请求的路由之后,进入请求处理的过程,具体地,响应于业务处理请求,优先读取存储在第一站点的用于表征存储在本地站点的业务数据的数据信息的本地元数据来确定第一站点中是否存在处理响应信息,在确定第一站点中存在处理响应信息的情况下,基于第一站点的本地元数据,从存储在第一站点的业务数据中获得处理响应信息并发送至客户端。
通过本公开提供的请求处理方法,基于分布式架构部署在m个不同地域内的包含n个站点的服务端,首先可以将客户端发送的业务处理请求路由至n个站点中的第一站点,然后优先访问存储在第一站点中的本地元数据,在本地元数据表征第一站点存在该业务处理请求的处理响应信息的情况下,直接从存储在第一站点的业务数据中获得处理响应信息并将其发送至客户端,而在本地元数据表征第一站点不存在该业务处理请求的处理响应信息的情况下,再去访问全局元数据来确定存储有该处理响应信息的第二站点,并从第二站点中获得处理响应信息并将其发送至客户端,由于对路由到的任一站点来说优先访问其本地元数据,保证每个站点对外服务的时效性,可以至少部分地避免跨地域访问所导致的高网络开销,并因此可以实现业务处理请求优先在本地找到处理响应信息,减少跨地域访问的技术效果。
需要说明的是,本公开的实施例所提供的请求处理方法、可以应用该请求处理方法的请求处理装置、电子设备、介质和程序产品可用于金融领域中,也可用于除金融领域之外的任意领域中。因此,对本公开的实施例所提供的请求处理方法、可以应用该请求处理方法的请求处理装置、电子设备、介质和程序产品的应用领域不做限定。
图1示意性示出了适用于本公开实施例的请求处理方法、装置、电子设备、介质和程序产品的系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将用户请求的处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的请求处理方法一般可以由服务器105执行。相应地,本公开实施例所提供的请求处理装置一般可以设置于服务器105中。本公开实施例所提供的请求处理方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的请求处理装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示意性示出了适用于本公开实施例的请求处理方法、装置、电子设备、介质和程序产品的分布式架构部署图。需要注意的是,图2所示仅为可以应用本公开实施例的分布式架构部署方案的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他的分布式架构部署方案。
在本公开中,该分布式架构可以部署在如图1所示的服务器105中,用来向终端设备101、102、103提供分布式服务。
根据本公开的实施例,可以根据不同的划分依据获得m个不同地域的划分结果。划分依据可以包括但不限于行政区域、经济带、地理位置、自然地理、人文地理。例如,可以根据实际业务所覆盖的地域范围进行合理划分。在某一地域范围内可以部署一个站点,也可以部署多个站点,本公开对此不做限定。为了说明方便起见,在本公开的上下文中将以一个地域范围内部署一个站点为例,即m=4,n=4,对适用于本公开的请求处理方法、装置、电子设备、介质和程序产品的分布式架构部署方案进行简要说明。
如图2所示,该分布式架构200可以包括部署在4个不同地域内的4个站点。其中4个不同地域可以包括覆盖西北角区域的第一地域201、覆盖东北角区域的第二地域202、覆盖西南角区域的第三地域203、以及覆盖东南角区域的第四地域204,4个站点可以包括站点1、站点2、站点3、以及站点4,具体地,站点1可以部署在第一地域201内,站点2可以部署在第二地域202内,站点3可以部署在第三地域230内,站点4可以部署在第四地域204内。在每个站点部署服务器集群,例如可以是web服务器集群。
应该理解,本公开中分布式架构系统中不同地域和站点的数目仅仅是示意性的。根据实现需要,可以具有任意数目的地域和站点。
图3示意性示出了根据本公开实施例的请求处理方法的流程图。
如图3所示,该请求处理方法300可以包括操作S310~操作S340。
在操作S310,接收客户端发送的业务处理请求,业务处理请求用于指示从服务端获得业务处理请求的处理响应信息,服务端包括基于分布式架构部署在m个不同地域内的n个站点。
根据本公开的实施例,m、n为整数,且n≥m≥2。客户端可以是如图1所示的任意终端设备,通过客户端用户可以向服务端发送业务处理请求。服务端可以是如图2所示的服务器,具体地为基于分布式架构系统的服务器,通过响应客户端发送的业务处理请求向客户端反馈处理响应信息。针对不同的业务系统,可以具有不同的业务处理请求,以金融业务系统为例,业务处理请求可以是交易处理请求,也可以是转账处理请求,也可以是其他处理请求,本公开对此不做限定。
在操作S320,将业务处理请求路由至n个站点中的第一站点。
根据本公开的实施例,由于分布式系统中部署有多个站点,因此需要将接收到的业务处理请求路由到多个站点中的其中一个站点来实现对该业务处理请求的响应。部属第一站点的地域与业务处理请求的来源地域满足预设关系,该预设关系用于表征部属有第一站点的地域是所有站点对应的地域中与业务处理请求的来源地域之间的距离最近。
在操作S330,响应于业务处理请求,读取存储在第一站点的本地元数据来确定第一站点中是否存在处理响应信息,本地元数据用于表征存储在本地站点的业务数据的数据信息。
根据本公开的实施例,元数据是数据的数据,可以包含但不限于数据的时间戳、版本、位置等一系列信息,在分布式系统中查询数据前需要知道数据的位置,这时候就要去查元数据,而元数据也是分布式部署的,如果查询元数据要跨地域查询,那样会极大的降低性能。所以在本公开中每个站点可以维护一套本地元数据,用于收集站点本地的数据信息,这样当有访问请求时,优先访问本地元数据。
在操作S340,在确定第一站点中存在处理响应信息的情况下,基于第一站点的本地元数据,从存储在第一站点的业务数据中获得处理响应信息并发送至客户端。
在本公开中,若元数据可以在本地找到,则证明数据分布也在本地,那么通过本地访问就能响应该业务处理请求,以完成交易。
通过本公开的实施例,基于分布式架构部署在m个不同地域内的包含n个站点的服务端,首先可以将客户端发送的业务处理请求路由至n个站点中的第一站点,然后优先访问存储在第一站点中的本地元数据,在本地元数据表征第一站点存在该业务处理请求的处理响应信息的情况下,直接从存储在第一站点的业务数据中获得处理响应信息并将其发送至客户端,由于对路由到的任一站点来说优先访问其本地元数据,保证每个站点对外服务的时效性,可以至少部分地避免跨地域访问所导致的高网络开销,并因此可以实现业务处理请求优先在本地找到处理响应信息,减少跨地域访问的技术效果。
作为一种可选的实施例,前述请求处理方法还可以包括:在确定第一站点中不存在处理响应信息的情况下,读取存储在第一站点的全局元数据来确定存储有处理响应信息的第二站点,其中,全局元数据用于表征存储在n个站点的业务数据的数据信息,第二站点不同于第一站点;以及基于第二站点的本地元数据,从存储在第二站点的业务数据中获得处理响应信息并发送至客户端。
根据本公开的实施例,每个站点除了可以维护一套本地元数据,还可以维护一套全局元数据,全局元数据用于收集整个分布式系统中部署的所有站点的数据信息。这样在本地元数据中无法找到该业务处理请求的处理响应信息的情况下,可以再去访问全局元数据,在全局系统中找到所需数据。需要说明的是,如果此时需要的数据在本地,则不需要进行跨地域访问,只需进行本地访问即可,如果此时需要的数据不在本地,那么就需要进行跨地域访问。
通过本公开的实施例,当涉及到跨地域的数据访问时,又不破坏数据一致性,既可以实现性能的兼顾,又可以支持同一集群跨地域全球部署的重要能力。
在本公开中,在将业务处理请求路由至n个站点中的第一站点之前,需要按照先地域后站点的顺序从n个站点确定出第一站点,具体地,可以先从m个不同地域中确定出第一地域,然后在从确定出的第一地域中确定出一个站点作为第一站点。
作为一种可选的实施例,将业务处理请求路由至n个站点中的第一站点包括:获得客户端发送业务处理请求的发起位置;确定发起位置在m个不同地域中所属的第一地域,其中,第一地域内部署有p个站点,p为正整数,且n>p;从p个站点中选择出第一站点;以及将业务处理请求路由至第一站点。
根据本公开的实施例,第一站点可以是n个站点中的一个站点。具体地,第一站点来自n个站点中与业务处理请求所来自的地域最为接近的那个地域。由于与业务处理请求所来自的地域最为接近的那个地域内可以部署一个站点,也可以部署多个站点,因此在该地域内部署一个站点的情况下,一旦地域范围确定,第一站点就随之确定,即为该地域内部署的唯一站点,而在该地域内部署多个站点的情况下,即使地域范围已确定,也需要从多个站点中确定出一个站点作为第一站点。可选地,可以基于不同的筛选规则从多个站点中确定出最终路由的第一站点。筛选规则可以包括但不限于站点的可用性、站点的业务处理请求的历史记录。例如,多个地域包括北方地区、南方地区、西北地区和青藏地区(秦岭、淮河一线是北方地区和南方地区的分界线,大兴安岭-阴山-荷兰山为北方地区和西北地区的分界线),如果确定出业务处理请求所来自的地域为天津,那么可以确定与业务处理请求所来自的地域最为接近的那个地域为北方地区,若北方地区内部署有北京一个站点,则北京站点为第一站点。
作为一种可选的实施例,从p个站点中选择出第一站点可以包括:基于p个站点中每个站点所覆盖的地域信息,确定q个覆盖位置,q为正整数;基于发起位置和q个覆盖位置之间的距离,从p个站点中选择出第一候选站点;检测第一候选站点是否为可用状态;以及在第一候选站点为可用状态的情况下,将第一候选站点确定为第一站点。
根据本公开的实施例,在从m个地域中确定出第一地域的情况下,可以基于业务处理请求的发起位置与每个站点的覆盖位置之间的距离远近确定出第一候选站点,具体地,可以计算业务处理请求的发起位置与q个覆盖位置之间的距离,来获得距离值从小到大排列的q个距离值,将距离值最小的覆盖位置所对应的站点作为第一候选站点。为了确保该候选站点可以正常的提供服务,还可以确定该候选站点的站点状态,在确定出的第一候选站点为可用状态的情况下,将其确定为第一站点,而在确定出的第一候选站点为不可用状态的情况下,将距离值次之的覆盖位置所对应的、且处于可用状态的站点作为第一候选站点,否则继续选择,直到选出第一站点为止。
通过本公开的实施例,通过距离和可用性从p个站点中选择出第一候选站点,可以实现业务处理请求的就近处理,且可以使得跨地域部署的分布式集群内每个站点对外服务时都尽可能的访问本地数据,保证每个站点对外服务的时效性,规避异地的高网络开销。
作为一种可选的实施例,前述请求处理方法还可以包括:响应于接收到第一故障信息,从除第一站点之外的其他p-1个站点中选择出处于可用状态的第二候选站点,其中,第一故障信息用于表征第一地域内的第一站点为不可用状态;将第二候选站点作为新的第一站点;以及将业务处理请求路由至新的第一站点来响应于业务处理请求。
根据本公开的实施例,在第一站点故障的情况下,可以将业务处理请求路由至第一地域内新的第一站点来响应于业务处理请求。具体地,可以由本地流量管理(LocalTraffic Manager),即服务器负载均衡,来实现业务处理请求的路由。在本公开中,LTM负责一个站点内部(即内网)的多个服务器之间的负载均衡。
通过本公开的实施例,在任意站点发生灾难时,可以由其他站点接管业务,实现站点级别的高容灾。
作为一种可选的实施例,前述请求处理方法还可以包括:响应于接收到第二故障信息,从除第一地域之外的其他m-1个地域中选择出第二地域,其中,第二故障信息用于表征第一地域内的所有站点为不可用状态,第二地域内部署有q个站点,q为正整数,且n>q;从q个站点中选择出处于可用状态的第三候选站点;将第三候选站点作为新的第一站点;以及将业务处理请求路由至新的第一站点来响应于业务处理请求。
根据本公开的实施例,在第一地域故障的情况下,可以将业务处理请求路由至第二地域内新的第一站点来响应于业务处理请求。具体地,可以由全局流量管理(GlobalTraffic Manager),即全局负载均衡,来实现业务处理请求的路由。GTM可以满足更高的负载均衡要求,提供不同地域之间全局资源的调配。例如北京和上海分别有一个服务器集群,都是提供相同的页面,那么当上海的web服务器集群负担过重或者宕机时,就可以将流量重定向到北京。GTM负责站点和站点之间(即外网)的负载均衡。例如北京的用户访问被分配到北京的数据中心,南京的用户访问被分配到上海的数据中心。
通过本公开的实施例,在任意地域发生灾难时,可以由其他地域接管业务,实现地域级别的高容灾。分布式架构内所部署的所有站点都可以平等均衡的对外提供服务,并且在任一站点发生灾难处于不可用状态的情况下,处于可用状态的其他站点可以接管该站点的业务,实现站点级别,甚至地域级别的高容灾。
无论是站点级别的高容灾,还是地域级别的高容灾,本公开提供的一种基于分布式系统在跨地域多点多活场景下服务能力提升系统,不仅可以提升分布式系统的跨地域部署能力,构建分布式系统的全球架构,而且可以提升分布式系统的服务能力以及资源利用率,对分布式系统部署能力提升有很大的应用价值。
相关技术中,一套横跨北京和上海两地的基于分布式系统架构部署的集群,上海站点负责处理南方片区的业务,北京站点负责处理北方片区的业务。业务可以包括但不限于柜面、网银、手机银行、自动提款机(Automated Teller Machine,ATM)、以及销售终端(Point of Sale,POS)。一套集群中首先要保证北京和上海两地数据的一致性,但是为了保证整个分布式系统架构集群的性能,在两地数据的一致性上,只做异步数据的同步,而不做同步数据的同步,若要实现同步数据的同步,即强一致,则北京和上海两地之间的超远距离所导致的网络延迟将使得整个分布式系统架构集群的性能下降,甚至无法支撑核心业务。因此在北京和上海这两地中,必然会出现一地(北京或上海)成为做数据读写的读写站点,而另一地(上海或北京)成为做异地灾备的灾备站点的局面,这样无论是来自北京的读写请求,还是来自上海的读写请求都将会被路由到读写站点,而跨地域的网络传输需要承受相当大的网络开销,增加系统负担,对系统性能造成很大的负面影响,并且由于两个站点中其中一个站点仅仅只做异地灾备,并没有做数据读写,也会造成很大的资源浪费。
图4示意性示出了根据本公开实施例的分布式系统架构的框图。
如图4所示,本公开的核心思想是让一套跨地域部署的分布式集群内每个站点对外服务时都尽可能的访问本地数据,保证每个站点对外服务的时效性,规避异地的高网络开销。要让一个分布式系统实现本地事务从表面上看是矛盾的,但其实两者是可以并存的,要实现这个目标需要解决两方面问题:元数据和数据分布策略。
根据本公开的实施例,元数据的分布策略为全局/本地的元数据策略。具体实施时,上海站点和北京站点分别同时维护一套全局元数据和一套本地元数据,其中全局元数据是收集整个系统的数据信息,而本地元数据仅收集本地的数据信息。当有访问请求时,优先访问本地元数据,若元数据能在本地找到,证明数据分布也在本地,那么通过本地访问就能完成交易,若无法本地找到再访问全局元数据,在全局系统中找到所需数据,但如果此时需要的数据不在本地,那么就需要跨地域访问。
根据本公开的实施例,全局/本地的元数据策略可以为分布式系统中实现本地访问提供可能,但是如何让本地访问需求都能在本地找到数据,减少全局跨地域访问,这个就是数据分布策略需要解决的问题。具体实施时,通过时间、地域等多个维度自动将数据进行分片。例如,可以根据地域把业务数据分为北方片区和南方片区,北方片区的数据都放在北京站点,南方片区数据放在上海站点,所有的北方城市发起的业务都去北京站点访问,同理所有的南方城市发起的业务都去上海站点访问,这样从业务逻辑行为上的切分能够极大的保证数据能够本地就近访问,规避异地网络延迟带来的性能影响。
如图4所示,分布式系统架构400包括上海站点和北京站点,以上海站点为例,负载均衡将交易请求分配到计算接入层(包括计算节点1、......、计算节点n),以访问上海站点的元数据管理层,具体地优先访问本地元数据,若元数据能在本地找到,证明数据分布也在本地,那么通过访问本地的数据存储层(包括用于存储本地数据的若干存储节点)就可以找到数据,即通过本地访问就能完成交易,若无法本地找到再访问全局元数据,在全局系统中找到所需数据,但如果此时需要的数据不在本地,那么就需要跨地域访问,通过访问异地同步数据(包括用于存储异地同步数据的若干存储节点)才能完成交易。需要说明的是,分布式系统本身内部提供可靠的基于分布式一致性协议的数据同步机制,提升高可用和高容灾能力。在具体实施时,上海站点所维护的全局元数据和北京站点所维护的全局元数据基于分布式一致性协议的数据同步机制可以实现一致性同步。上海站点的数据存储层中异地同步数据与北京站点的数据存储层中的异地同步数据基于分布式一致性协议的数据同步机制可以实现一致性同步。分布式一致性协议的数据同步机制,结合分布式系统在跨地域多点多活服务能力提升,可以平衡性能一致性、数据一致性、高可用、高容灾等多方面的因素,可以进一步实现分布式系统的全球部署架构。
需要说明的是,全局流量管理用于在上海站点和北京站点之间进行流量的分配,包括将上海站点的流量路由给北京站点,以使得北京站点接管上海站点的流量,也包括将北京站点的流量路由给上海站点,以使得上海站点接管北京站点的流量。负载均衡用于在站点内部进行流量的分配,包括将来自南方片区的业务请求分配到上海站点内部相应的服务节点,也包括将来自北方片区的业务请求分配到在北京站点内部相应的服务节点。
本公开的实施例将不同站点处理的多条业务线集中在一套分布式集群中进行管理,可以降低系统架构的复杂度,同时可以降低运维人员的工作负担,避免烟囱式的数据孤岛,实现每个站点都可以平等均衡地对外提供服务,避免资源闲置和浪费。
图5示意性示出了根据本公开实施例的请求处理装置的框图。
如图5所示,该请求处理装置500可以包括接收模块510、第一路由模块520、第一确定模块530、以及第一处理模块540。
接收模块510,用于接收客户端发送的业务处理请求,其中,业务处理请求用于指示从服务端获得业务处理请求的处理响应信息,服务端包括基于分布式架构部署在m个不同地域内的n个站点,m、n为整数,且n≥m≥2。可选地,接收模块510例如可以用于执行前述操作S310,在此不再赘述。
第一路由模块520,用于将业务处理请求路由至n个站点中的第一站点。可选地,第一路由模块520例如可以用于执行前述操作S320,在此不再赘述。
第一确定模块530,用于响应于业务处理请求,读取存储在第一站点的本地元数据来确定第一站点中是否存在处理响应信息,其中,本地元数据用于表征存储在本地站点的业务数据的数据信息。可选地,第一确定模块530例如可以用于执行前述操作S330,在此不再赘述。
第一处理模块540,用于在确定第一站点中存在处理响应信息的情况下,基于第一站点的本地元数据,从存储在第一站点的业务数据中获得处理响应信息并发送至客户端。可选地,第一处理模块540例如可以用于执行前述操作S340,在此不再赘述。
作为一种可选的实施例,前述请求处理装置还可以包括:第二确定模块,用于在确定第一站点中不存在处理响应信息的情况下,读取存储在第一站点的全局元数据来确定存储有处理响应信息的第二站点,其中,全局元数据用于表征存储在n个站点的业务数据的数据信息,第二站点不同于第一站点;以及第二处理模块,用于基于第二站点的本地元数据,从存储在第二站点的业务数据中获得处理响应信息并发送至客户端。
作为一种可选的实施例,前述第一路由模块可以包括:获得子模块,用于获得客户端发送业务处理请求的发起位置;确定子模块,用于确定发起位置在m个不同地域中所属的第一地域,其中,第一地域内部署有p个站点,p为正整数,且n>p;选择子模块,用于从p个站点中选择出第一站点;以及路由子模块,用于将业务处理请求路由至第一站点。
作为一种可选的实施例,前述选择子模块可以包括:第一确定单元,用于基于p个站点中每个站点所覆盖的地域信息,确定q个覆盖位置,q为正整数;选择单元,用于基于发起位置和q个覆盖位置之间的距离,从p个站点中选择出第一候选站点;检测单元,用于检测第一候选站点是否为可用状态;以及第二确定单元,用于在第一候选站点为可用状态的情况下,将第一候选站点确定为第一站点。
作为一种可选的实施例,前述请求处理装置还可以包括:第一选择模块,用于响应于接收到第一故障信息,从除第一站点之外的其他p-1个站点中选择出处于可用状态的第二候选站点,其中,第一故障信息用于表征第一地域内的第一站点为不可用状态;第三确定模块,用于将第二候选站点作为新的第一站点;以及第二路由模块,用于将业务处理请求路由至新的第一站点来响应于业务处理请求。
作为一种可选的实施例,前述请求处理装置还可以包括:第二选择模块,用于响应于接收到第二故障信息,从除第一地域之外的其他m-1个地域中选择出第二地域,其中,第二故障信息用于表征第一地域内的所有站点为不可用状态,第二地域内部署有q个站点,q为正整数,且n>q;第三选择模块,用于从q个站点中选择出处于可用状态的第三候选站点;第四确定模块,用于将第三候选站点作为新的第一站点;以及第三路由模块,用于将业务处理请求路由至新的第一站点来响应于业务处理请求。
需要说明的是,本公开中请求处理装置部分实施例中各模块的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与请求处理方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
根据本公开的实施例的模块、子模块、单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FNGA)、可编程逻辑阵列(NLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,接收模块、第一路由模块、第一确定模块、第一处理模块、第二确定模块、第二处理模块、获得子模块、确定子模块、选择子模块、路由子模块、第一确定单元、选择单元、检测单元、第二确定单元、第一选择模块、第三确定模块、第二路由模块、第二选择模块、第三选择模块、第四确定模块以及第三路由模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,接收模块、第一路由模块、第一确定模块、第一处理模块、第二确定模块、第二处理模块、获得子模块、确定子模块、选择子模块、路由子模块、第一确定单元、选择单元、检测单元、第二确定单元、第一选择模块、第三确定模块、第二路由模块、第二选择模块、第三选择模块、第四确定模块以及第三路由模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FNGA)、可编程逻辑阵列(NLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,接收模块、第一路由模块、第一确定模块、第一处理模块、第二确定模块、第二处理模块、获得子模块、确定子模块、选择子模块、路由子模块、第一确定单元、选择单元、检测单元、第二确定单元、第一选择模块、第三确定模块、第二路由模块、第二选择模块、第三选择模块、第四确定模块以及第三路由模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的适于实现上文描述的请求处理方法的计算机可读存储介质产品的示意图。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在设备上运行时,程序代码用于使设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的请求处理方法中的前述各项操作(或步骤),例如,电子设备可以执行如图3中所示的操作S310~操作S340。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ENROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图6所示,描述了根据本发明的实施方式的请求处理的程序产品600,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备,如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、系统或者器件使用或者与其结合使用的程序。可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言-诸如Java,C++等,还包括常规的过程式程序设计语言-诸如“C”,语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAA)或广域网(WAA)一连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
图7示意性示出了根据本公开实施例的适于实现上文描述的请求处理方法的电子设备的框图。图7示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,根据本公开实施例的电子设备700包括处理器701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如CNU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器701还可以包括用于缓存用途的板载存储器。处理器701可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 703中,存储有电子设备700操作所需的各种程序和数据。处理器701、ROM702以及RAM 703通过总线704彼此相连。处理器701通过执行ROM 702和/或RAM 703中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 702和RAM 703以外的一个或多个存储器中。处理器701也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例图3中所示的操作S310~操作S340。
根据本公开的实施例,电子设备700还可以包括输入/输出(I/O)接口705,输入/输出(I/O)接口705也连接至总线704。系统700还可以包括连接至I/O接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAA卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被处理器701执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的请求处理方法,包括图3中所示的操作S310~操作S340。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ENROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 702和/或RAM 703和/或ROM 702和RAM 703以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目标,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (10)
1.一种请求处理方法,包括:
接收客户端发送的业务处理请求,其中,所述业务处理请求用于指示从服务端获得所述业务处理请求的处理响应信息,所述服务端包括基于分布式架构部署在m个不同地域内的n个站点,m、n为整数,且n≥m≥2;
将所述业务处理请求路由至所述n个站点中的第一站点;
响应于所述业务处理请求,读取存储在所述第一站点的本地元数据来确定所述第一站点中是否存在所述处理响应信息,其中,所述本地元数据用于表征存储在本地站点的业务数据的数据信息;以及
在确定所述第一站点中存在所述处理响应信息的情况下,基于所述第一站点的本地元数据,从存储在所述第一站点的业务数据中获得所述处理响应信息并发送至所述客户端。
2.根据权利要求1所述的方法,其中,所述方法还包括:
在确定所述第一站点中不存在所述处理响应信息的情况下,读取存储在所述第一站点的全局元数据来确定存储有所述处理响应信息的第二站点,其中,所述全局元数据用于表征存储在所述n个站点的业务数据的数据信息,所述第二站点不同于所述第一站点;以及
基于所述第二站点的本地元数据,从存储在所述第二站点的业务数据中获得所述处理响应信息并发送至所述客户端。
3.根据权利要求1所述的方法,其中,所述将所述业务处理请求路由至所述n个站点中的第一站点包括:
获得所述客户端发送所述业务处理请求的发起位置;
确定所述发起位置在所述m个不同地域中所属的第一地域,其中,所述第一地域内部署有p个站点,p为正整数,且n>p;
从所述p个站点中选择出第一站点;以及
将所述业务处理请求路由至所述第一站点。
4.根据权利要求3所述的方法,其中,所述从所述p个站点中选择出第一站点包括:
基于所述p个站点中每个站点所覆盖的地域信息,确定q个覆盖位置,q为正整数;
基于所述发起位置和所述q个覆盖位置之间的距离,从所述p个站点中选择出第一候选站点;
检测所述第一候选站点是否为可用状态;以及
在所述第一候选站点为可用状态的情况下,将所述第一候选站点确定为所述第一站点。
5.根据权利要求3所述的方法,其中,所述方法还包括:
响应于接收到第一故障信息,从除所述第一站点之外的其他p-1个站点中选择出处于可用状态的第二候选站点,其中,所述第一故障信息用于表征所述第一地域内的所述第一站点为不可用状态;
将所述第二候选站点作为新的第一站点;以及
将所述业务处理请求路由至所述新的第一站点来响应于所述业务处理请求。
6.根据权利要求3所述的方法,其中,所述方法还包括:
响应于接收到第二故障信息,从除所述第一地域之外的其他m-1个地域中选择出第二地域,其中,所述第二故障信息用于表征所述第一地域内的所有站点为不可用状态,所述第二地域内部署有q个站点,q为正整数,且n>q;
从所述q个站点中选择出处于可用状态的第三候选站点;
将所述第三候选站点作为新的第一站点;以及
将所述业务处理请求路由至所述新的第一站点来响应于所述业务处理请求。
7.一种请求处理装置,包括:
接收模块,用于接收客户端发送的业务处理请求,其中,所述业务处理请求用于指示从服务端获得所述业务处理请求的处理响应信息,所述服务端包括基于分布式架构部署在m个不同地域内的n个站点,m、n为整数,且n≥m≥2;
第一路由模块,用于将所述业务处理请求路由至所述n个站点中的第一站点;
第一确定模块,用于响应于所述业务处理请求,读取存储在所述第一站点的本地元数据来确定所述第一站点中是否存在所述处理响应信息,其中,所述本地元数据用于表征存储在本地站点的业务数据的数据信息;以及
第一处理模块,用于在确定所述第一站点中存在所述处理响应信息的情况下,基于所述第一站点的本地元数据,从存储在所述第一站点的业务数据中获得所述处理响应信息并发送至所述客户端。
8.一种电子设备,包括:
一个或多个处理器;以及
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1至6中任一项所述的方法。
9.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时使处理器执行根据权利要求1至6中任一项所述的方法。
10.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时执行根据权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110587778.7A CN113190625B (zh) | 2021-05-25 | 2021-05-25 | 请求处理方法、装置、电子设备、介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110587778.7A CN113190625B (zh) | 2021-05-25 | 2021-05-25 | 请求处理方法、装置、电子设备、介质和程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113190625A true CN113190625A (zh) | 2021-07-30 |
CN113190625B CN113190625B (zh) | 2024-06-25 |
Family
ID=76985526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110587778.7A Active CN113190625B (zh) | 2021-05-25 | 2021-05-25 | 请求处理方法、装置、电子设备、介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113190625B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113992680A (zh) * | 2021-11-10 | 2022-01-28 | 中国工商银行股份有限公司 | 应用于分布式多活系统的调度方法、装置、设备及介质 |
CN113986258A (zh) * | 2021-11-17 | 2022-01-28 | 建信金融科技有限责任公司 | 业务发布方法、装置、设备及存储介质 |
CN114629806A (zh) * | 2022-04-13 | 2022-06-14 | 腾讯科技(成都)有限公司 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
CN114884946A (zh) * | 2022-04-28 | 2022-08-09 | 抖动科技(深圳)有限公司 | 基于人工智能的异地多活实现方法及相关设备 |
CN115481187A (zh) * | 2022-09-28 | 2022-12-16 | 北京亚控科技发展有限公司 | 一种数据读写方法、装置及存储介质 |
WO2023138463A1 (zh) * | 2022-01-24 | 2023-07-27 | 阿里云计算有限公司 | 通信系统、通道调度方法、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100136A (zh) * | 2014-04-29 | 2015-11-25 | 国际商业机器公司 | 用于访问存储集群中的逻辑存储的方法和装置 |
CN109901949A (zh) * | 2019-02-25 | 2019-06-18 | 中国工商银行股份有限公司 | 双活数据中心的应用灾备系统及方法 |
CN110933160A (zh) * | 2019-11-27 | 2020-03-27 | 北京字节跳动网络技术有限公司 | 一种数据访问方法、服务器、终端和存储介质 |
CN111212138A (zh) * | 2019-12-31 | 2020-05-29 | 曙光信息产业(北京)有限公司 | 一种跨站点存储系统及数据信息访问方法 |
CN111984191A (zh) * | 2020-08-05 | 2020-11-24 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 一种支持分布式存储的多客户端缓存方法及系统 |
-
2021
- 2021-05-25 CN CN202110587778.7A patent/CN113190625B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100136A (zh) * | 2014-04-29 | 2015-11-25 | 国际商业机器公司 | 用于访问存储集群中的逻辑存储的方法和装置 |
CN109901949A (zh) * | 2019-02-25 | 2019-06-18 | 中国工商银行股份有限公司 | 双活数据中心的应用灾备系统及方法 |
CN110933160A (zh) * | 2019-11-27 | 2020-03-27 | 北京字节跳动网络技术有限公司 | 一种数据访问方法、服务器、终端和存储介质 |
CN111212138A (zh) * | 2019-12-31 | 2020-05-29 | 曙光信息产业(北京)有限公司 | 一种跨站点存储系统及数据信息访问方法 |
CN111984191A (zh) * | 2020-08-05 | 2020-11-24 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 一种支持分布式存储的多客户端缓存方法及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113992680A (zh) * | 2021-11-10 | 2022-01-28 | 中国工商银行股份有限公司 | 应用于分布式多活系统的调度方法、装置、设备及介质 |
CN113992680B (zh) * | 2021-11-10 | 2024-02-02 | 中国工商银行股份有限公司 | 应用于分布式多活系统的调度方法、装置、设备及介质 |
CN113986258A (zh) * | 2021-11-17 | 2022-01-28 | 建信金融科技有限责任公司 | 业务发布方法、装置、设备及存储介质 |
WO2023138463A1 (zh) * | 2022-01-24 | 2023-07-27 | 阿里云计算有限公司 | 通信系统、通道调度方法、设备及存储介质 |
CN114629806A (zh) * | 2022-04-13 | 2022-06-14 | 腾讯科技(成都)有限公司 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
CN114629806B (zh) * | 2022-04-13 | 2023-12-12 | 腾讯科技(成都)有限公司 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
CN114884946A (zh) * | 2022-04-28 | 2022-08-09 | 抖动科技(深圳)有限公司 | 基于人工智能的异地多活实现方法及相关设备 |
CN114884946B (zh) * | 2022-04-28 | 2024-01-16 | 抖动科技(深圳)有限公司 | 基于人工智能的异地多活实现方法及相关设备 |
CN115481187A (zh) * | 2022-09-28 | 2022-12-16 | 北京亚控科技发展有限公司 | 一种数据读写方法、装置及存储介质 |
CN115481187B (zh) * | 2022-09-28 | 2023-11-21 | 北京亚控科技发展有限公司 | 一种数据读写方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113190625B (zh) | 2024-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113190625B (zh) | 请求处理方法、装置、电子设备、介质和程序产品 | |
CN114172966B (zh) | 单元化架构下的服务调用方法、服务处理方法及装置 | |
US9736272B2 (en) | Generation and distribution of named, definable, serialized tokens | |
CN109783151B (zh) | 规则变更的方法和装置 | |
US12164949B2 (en) | Migration speed-up for multiple virtual machines | |
CN112905486B (zh) | 一种服务集成测试方法、装置和系统 | |
CN117762898A (zh) | 数据迁移方法、装置、设备及存储介质 | |
CN112565340B (zh) | 分布式应用的服务调度方法、装置、计算机系统及介质 | |
US20170124156A1 (en) | Search system | |
CN116599855A (zh) | 数据传输方法、系统、电子设备及存储介质 | |
CN116468555A (zh) | 应用于分布式服务器系统的服务器熔断方法、装置、设备、介质和产品 | |
CN115037729B (zh) | 数据汇聚方法、装置、电子设备及计算机可读介质 | |
CN114363339B (zh) | 流量切换方法、装置、系统、设备、介质和程序产品 | |
CN114844957B (zh) | 链路报文转换方法、装置、设备、存储介质和程序产品 | |
CN114363172B (zh) | 用于容器组的解耦管理方法、装置、设备、介质 | |
US20190141112A1 (en) | Cognitive storage management for a mobile computing device | |
CN118590537B (zh) | 数据处理方法、业务系统及电子设备 | |
CN114268558B (zh) | 监控图的生成方法、装置、设备、介质 | |
CN112965763B (zh) | 一种业务处理系统、方法、装置和存储介质 | |
CN113821519B (zh) | 一种数据处理方法以及领域驱动设计架构 | |
CN111626787B (zh) | 资源发放方法、装置、介质和设备 | |
CN114741103A (zh) | 业务处理方法、装置、设备、介质和程序产品 | |
CN116629443A (zh) | 一种网点选址方法、装置、设备及存储介质 | |
Prasanthi Gottumukkala | THE STUDY OF MOBILE CLOUD COMPUTING: DESIGN, USES, AND METHODS | |
CN115757417A (zh) | HBase表的运维方法、装置、设备、存储介质和程序产品 |
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 |