CN112055039A - 数据访问方法、装置、系统及计算设备 - Google Patents
数据访问方法、装置、系统及计算设备 Download PDFInfo
- Publication number
- CN112055039A CN112055039A CN201910491783.0A CN201910491783A CN112055039A CN 112055039 A CN112055039 A CN 112055039A CN 201910491783 A CN201910491783 A CN 201910491783A CN 112055039 A CN112055039 A CN 112055039A
- Authority
- CN
- China
- Prior art keywords
- service
- service node
- request
- data
- node
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据访问方法,包括:第一服务节点接收请求调用第一服务的第一请求;在第一服务节点处理第一请求期间,确定需要调用第二服务;以及基于第一请求中携带的调用标识,确定调用的第二服务节点。本发明实施例还公开了相应的数据访问装置、系统和计算设备。
Description
技术领域
本发明涉及网络技术领域,特别涉及一种数据访问方法、装置、系统及计算设备。
背景技术
随着互联网技术与应用的飞速发展、以及互联网用户的快速增长,传统的单体应用已难以应对日益复杂的服务内容和不断增长的并发访问量。分布式的服务架构,例如微服务架构,被广泛使用。其中,微服务架构是将一个应用拆分成一套小而相互关联的微服务,微服务之间通过暴露出来的API被其他微服务或系统所调用。
在分布式架构的高并发场景下,需要通过缓存来减少数据库的压力,使得大量的访问能够命中缓存,只有少量的需要到数据库。然而当应用由十几个甚至数十个部署在不同服务节点上的微服务组成,服务之间通常需要互相调用来完成特定的功能时,传统缓存策略的缓存命中率较低,仍然给数据库带来很大压力。
因此,需要提供一种更先进的数据访问方案,以提高缓存命中率。
发明内容
为此,本发明实施例提供了一种数据访问方法、装置、设备及系统,以力图解决或者至少缓解上面存在的至少一个问题。
根据本发明实施例的一个发明,提供了一种数据访问方法,包括:第一服务节点接收请求调用第一服务的第一请求;在第一服务节点处理第一请求期间,确定需要调用第二服务;基于第一请求中携带的调用标识,确定调用的第二服务节点。
可选地,在根据本发明实施例的数据访问方法中,在基于第一请求中携带的调用标识,确定调用的第二服务节点的步骤之前,还包括:判断第一请求是否携带有调用标识;若第一请求未携带调用标识,则生成调用标识;基于生成的调用标识,确定调用的第二服务节点。
根据本发明实施例的另一方面,提供了一种数据访问装置,包括:通信单元,适于在第一服务节点处接收请求调用第一服务的第一请求;服务路由单元,适于在第一服务节点处理所述第一请求期间,确定需要调用第二服务;还适于基于第一请求中携带的调用标识,确定调用的第二服务节点。
根据本发明实施例的另一方面,提供了一种分布式服务系统,包括服务注册中心和多个服务节点集群,其中服务节点集群包括多个提供服务的服务节点,服务节点驻留有根据本发明实施例的数据访问装置;服务注册中心适于管理服务节点的注册和查询提供服务的服务节点。
根据本发明实施例的还有一个方面,提供了一种计算设备,包括:一个或多个处理器;和存储器;一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,该一个或多个程序包括用于执行根据本发明实施例的数据访问方法的指令。
根据本发明实施例的还有一个方面,提供了一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,该指令当计算设备执行时,使得计算设备执行根据本发明实施例的数据访问方法。
根据本发明实施例的数据访问方案通过调用标识将具有该调用标识的所有服务调用者路由到同一个服务提供者上,极大地提高了缓存命中率,降低了数据库的访问压力。其中,通过在服务节点内设置本地缓存,实现了对建立单机内存缓存的支持。
进一步地,通过缓存调用服务得到的数据、并采用调用标识和所调用的对象签名来查询缓存,实现了对服务的同步调用和异步调用的支持。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的分布式服务系统100的示意图;
图2示出了根据本发明一个实施例的计算设备200的示意图;
图3示出了根据本发明一个实施例的数据访问方法300的流程图;
图4示出了根据本发明一个实施例的数据访问方法400的交互流程图;
图5示出了根据本发明一个实施例的数据访问装置500的结构框图;
图6示出了根据本发明一个实施例的数据访问方法600的流程图;以及
图7示出了根据本发明一个实施例的数据访问装置700的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的分布式服务系统100的示意图。如图1所示,分布式服务系统100包括服务注册中心110和多个服务节点集群120(图1中服务节点集群的数目仅为示例)。其中,各服务节点集群120包括多个服务节点,同一服务节点集群内的服务节点可以提供相同服务。不同的服务节点集群可以提供不同的服务。例如,第一服务节点集群所包括的第一服务节点提供第一服务,第二服务节点集群所包括的第二服务节点提供第二服务。
服务注册中心110则可以管理上述服务节点的注册和查询提供服务的服务节点。各服务节点可以通过诸如局域网(LAN)或者广域网(WAN)之类的一个或多个网络与服务注册中心110进行通信。
具体地,服务注册中心110可以维护服务注册表,服务注册表记录有提供各服务的服务节点信息。服务节点信息通常包括访问服务节点的路径,例如服务节点的网络地址等等。在一些实施例中,服务节点可以向服务注册中心110发送服务注册请求,以进行服务注册。服务注册中心110可以响应于服务注册请求,将该服务节点记录在服务注册表中。相应地,服务节点还可以向服务注册中心110发送服务注销请求,以进行服务注销。服务注册中心110可以响应于服务注销请求,将该服务节点的记录从服务注册表中删除。此外,服务节点还可以定期向服务注册中心110发送心跳信号,以表明该服务节点的可用性。
在另一些实施例中,服务节点也可以经由第三方服务管理中心来向服务注册中心进行服务注册和服务注销。本发明对此不做限制。
当服务节点需要调用其他服务节点提供的服务时,通常可以先向服务注册中心110请求获取提供此服务的所有服务节点,再从中选择调用的服务节点进行访问。例如,当第一服务节点需要调用第二服务节点提供的第二服务时,第一服务节点可以向服务注册中心110发送服务查询请求,以获取提供第二服务的服务节点。服务注册中心110响应于服务查询请求,查询服务注册表,将提供第二服务的所有第二服务节点返回至第一服务节点。第一服务节点从服务注册中心110所返回的多个第二服务节点中选择调用的第二服务节点进行访问。
应当指出,上述分布式服务系统100可以是分布式微服务系统,所提供的服务可以是微服务,提供服务的服务节点可以是提供微服务的服务实例。
可以理解地,面对分布式服务系统100的高并发场景,服务节点通常可以设置缓存来减少对服务节点对应的数据库的访问压力。然而,服务之间通常需要互相调用来完成特定的功能,并且经常出现对为得到同一数据而对同一服务的多次本地或远程调用。例如,为了处理某请求,服务A需要调用服务B得到数据b、以及需要调用服务C得到数据c,服务B同样也需要调用服务C得到数据c。又例如,为了处理某请求,服务A可能需要多次调用服务C得到数据c。此时,这些服务以及服务之间的调用关系均可形成服务调用的调用链。
显然地,在这两个示例的调用链中,不同(服务A和服务B)和相同(服务A)的调用方均需要多次调用服务C得到相同的数据c。而服务C通常具有多个提供服务C的服务节点。如果按照传统缓存策略,随机访问其中一个服务节点,则可能出现两次调用访问的是不同的服务节点的情况。这样,会极大地降低缓存命中率,给数据库带来压力。
根据本发明的实施方式,上述服务节点中可以驻留有数据访问装置500。数据访问装置500可以控制服务节点对本地服务或者非本地的其他服务的调用,从而提高缓存命中率。
在根据本发明的实施方式中,上述分布式服务系统100中的各部件均可以通过如下所述的计算设备200来实现。
图2示出了根据本发明一个实施例的计算设备200的示意图。如图2所示,在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理器,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据224。在一些实施方式中,应用222可以布置为在操作系统上由一个或多个处理器204利用程序数据224执行指令。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以是这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备200可以实现为服务器,例如数据库服务器、应用程序服务器和WEB服务器等,也可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。当然,计算设备200也可以实现为小尺寸便携(或者移动)电子设备的一部分。
在根据本发明的实施例中,计算设备200实现为数据访问装置500/700,并被配置为执行根据本发明的数据访问方法300/600。其中,计算设备200的应用222中包含执行根据本发明的数据访问方法300/600的多条程序指令,而程序数据224还可以存储数据访问装置500/700的配置数据等内容。
图3示出了根据本发明一个实施例的数据访问方法300的流程图。方法300在第一服务节点中驻留的数据访问装置500中执行。
如图3所示,数据访问方法300始于步骤S310。在步骤S310中,第一服务节点可以接收请求调用第一服务的第一请求。根据本发明的实施方式,第一服务节点可以响应于第一请求,调用第一服务得到第一数据。
在一些实施例中,第一服务节点可以从第一服务节点的数据库处获取第一数据。但优选地,在从第一服务节点的数据库处获取第一数据之前,可以先查询第一服务节点的缓存处是否存在第一数据。如果存在,则从第一服务节点的缓存处获取第一数据。如果第一服务节点的缓存处不存在第一数据,再从第一服务节点的数据库处获取第一数据,并同时将第一数据存储至第一服务节点的缓存。其中,优选地,缓存为本地缓存,例如可以实现为(基于SpringCache框架)Guava Cache、Ehcache等等。本地缓存与服务在同一个进程内部,因此请求缓存非常快速,没有过多的网络开销。当然,缓存也可以为与服务分离的远端缓存,例如可以实现为memcached、Redis等等。
如果第一服务节点响应第一请求期间需要调用第二服务,则可以在步骤S320中,获取提供第二服务的多个第二服务节点。具体地,第一服务节点可以向服务注册中心110发送服务查询请求,并接收服务注册中心110返回的提供第二服务的多个第二服务节点。
需要注意的是,第一服务节点与第二服务节点为相对概念,第一服务节点可以是分布式服务系统100中的任一服务节点集群中的服务节点,第二服务节点则可以是除了提供第一服务的第一服务节点集群之外的任一服务节点集群中的服务节点。
而后,在步骤S330中,第一服务节点可以判断第一请求是否携带有调用标识。调用标识通常可以用于唯一标识前文所描述的调用链。
若第一请求携带有调用标识,可以认为第一服务节点为该调用标识对应的调用链的中间节点,则可以在步骤S340中,基于所携带的调用标识从多个第二服务节点中选择调用的第二服务节点。需要注意的是,为便于描述,后文将此处所选择的调用的第二服务节点简称为目标第二服务节点。
若第一请求未携带调用标识,可以认为第一服务节点为调用链的起始节点,则可以为该调用链生成调用标识,并基于生成的调用标识从多个第二服务节点中选择目标第二服务节点。其中,通常可以随机生成调用标识。
在一些实施例中,可以采用一致性哈希算法,基于调用标识从多个第二服务节点中选择目标第二服务节点。具体地,可以利用哈希函数计算调用标识的哈希值,再利用分布式哈希映射表(Distributed Hash Table,DHT),实现调用标识到第二服务节点的哈希映射。其中,可以构造一个0到2N-1的整数环,并计算各个第二服务节点的哈希值,将计算得到的哈希值标记在该整数环上。该整数环可以称为是一致性哈希环,一致性哈希环上的节点可以依次进行0-2N-1的编号,每个编号的节点可以代表一个第二服务节点。接着计算调用标识的哈希值。最后,在构造的整数环上,按照指定方向查找距离调用标识的哈希值在整数环上的位置距离最近的第二服务节点所在的节点,作为目标第二服务节点。
本发明实施例可以采用任何映射算法来实现调用标识到第二服务节点的映射。可以理解的是,采用相同映射算法基于相同调用标识所选择的目标第二服务节点必然相同。
在选择目标第二服务节点之后,可以在步骤S350中,生成请求调用第二服务、并携带有上述调用标识的第二请求。接着在步骤S360中将第二请求发送至目标第二服务节点,以便目标第二服务节点调用第二服务后将得到的第二数据返回至第一服务节点。
第二服务节点可以以各种方式接收第一服务节点的请求。例如,第二服务节点可以提供具有预定格式定义的应用程序接口(API),以方便第一服务节点根据定义来组织服务调用请求,并发送到第二服务节点。
与第一服务节点调用第一服务相类似地,目标第二服务节点在接收到第二请求之后,可以响应于第二请求,调用第二服务得到第二数据。在一些实施例中,目标第二服务节点可以从目标第二服务节点的数据库处获取第二数据。但优选地,在从目标第二服务节点的数据库处获取第二数据之前,可以先查询目标第二服务节点的缓存处是否存在第二数据。如果存在,则从目标第二服务节点的缓存处获取第二数据。如果不存在,则从目标第二服务节点的数据库处获取第二数据,并将第二数据存储至目标第二服务节点的缓存。在一些实施例,缓存可以为本地缓存或者远端缓存。
其中,服务节点在将数据存储至缓存时可以基于所调用的对象签名和调用标识来存储数据,例如基于对象签名和调用标识生成key,以数据为value。对象签名通常可以基于所调用的方法参数和/或方法名来生成。相应地,服务节点在查询缓存处是否存在数据时则也可以基于所调用的对象签名和调用标识来查询。这样,可以实现对服务的异步调用和同步调用。
此外,根据本发明的一个实施方式,服务节点还可以向服务注册中心110发送服务注册请求进行服务注册,还可以向服务注册中心110发送服务注销请求进行服务注销。
图4示出了根据本发明一个实施例的数据访问方法400的交互流程图。如图4所示,方法400在分布式服务系统100中进行,并始于步骤S410。
在步骤S410中,第一服务节点响应接收到的第一请求,第一请求请求调用第一服务。具体地,可以先查询第一服务节点的缓存处是否存在调用第一服务所要得到的第一数据。如果存在,则从第一服务节点的缓存处获取第一数据,否则从第一服务节点的数据库处获取第一数据,并写入缓存。
由于第一服务节点响应第一请求期间还需要调用第二服务,因此在步骤S420中,第一服务节点向服务注册中心110发送服务查询请求,请求获取提供第二服务的第二服务节点。服务注册中心110在步骤S430中,将提供第二服务的多个第二服务节点返回至第一服务节点。
而后,在步骤S440中,第一服务节点获取第一请求所携带的调用标识,或者在第一请求未携带调用标识的情况下生成调用标识。接着在步骤S450中,第一服务节点基于调用标识从上述多个第二服务节点中选择目标第二服务节点。接着第一服务节点在步骤S460中,生成请求调用第二服务、并携带有该调用标识的第二请求,并在步骤S470中,将第二请求发送至目标第二服务节点。
在步骤S480中,目标第二服务节点查询目标第二服务节点的缓存处是否存在调用第二服务所要得到的第二数据。接着在步骤S490中,如果目标第二服务节点的缓存处存在第二数据,则返回第二数据。如果目标第二服务节点的缓存处不存在第二数据,则返回指示第二数据不存在的消息。
目标第二服务节点如果接收到指示第二数据不存在的消息,则目标第二服务节点可以在步骤S491中从目标第二服务节点的数据库处获取第二数据,在步骤S492中将第二数据写入目标第二服务节点的缓存。
最后,目标第二服务节点在步骤S493中将第二数据返回至第一服务节点。
关于数据访问方法400中各步骤的详细处理逻辑和实施过程可以参见前文结合图1-图3对数据访问方法300的相关描述,此处不再赘述。
综上所述,根据本发明实施例的数据访问方案,通过调用标识将具有该调用标识的所有服务调用者路由到同一个服务提供者上,解决了为得到同一数据而对同一服务的多次远程调用、以及单个服务发生多次本地调用等情况下缓存命中率低的问题。其中,通过设置本地缓存,实现了对建立单机内存缓存的支持
进一步地,通过缓存数据并采用调用标识和所调用的对象签名来查询缓存,实现了对服务的同步调用和异步调用的支持。
图5示出了根据本发明一个实施例的数据访问装置500的结构框图。图5是以功能模块划分的方式对数据访问装置500进行了描述。
如图5所示,数据访问装置500可以包括通信单元510、服务查询单元520、服务路由单元530和服务调用单元540。
通信单元510适于在第一服务节点处接收请求调用第一服务的第一请求。服务查询单元520适于在第一服务节点响应第一请求期间需要调用第二服务的情况下,获取提供第二服务的多个第二服务节点。服务路由单元530与服务查询单元520相连接,并适于判断第一请求是否携带有调用标识。若第一请求携带有调用标识,则服务路由单元530基于所携带的调用标识从多个第二服务节点中选择目标第二服务节点。服务调用单元540则与服务路由单元530相连接,并适于生成请求调用第二服务、并携带有所述调用标识的第二请求。服务调用单元540还与通信单元510相连接,并适于经由通信单元510将第二请求发送至目标第二服务节点。通信单元510还适于接收目标第二服务节点调用第二服务后返回的第二数据。
数据访问装置500还可以包括请求响应单元550(图5未示出),请求响应单元550适于响应于第一请求,调用第一服务得到第一数据。
关于数据访问装置500中各单元的详细处理逻辑和实施过程可以参见前文结合图1-图3对数据访问方法300的相关描述,此处不再赘述。
图6示出了根据本发明一个实施例的数据访问方法600的流程图。方法600在第一服务节点中驻留的数据访问装置700中执行。
在步骤S610中,第一服务节点接收请求调用第一服务的第一请求。根据本发明的一个实施方式,第一服务节点可以响应于第一请求,调用第一服务得到第一数据。例如,从第一服务节点的数据库、或者缓存处获取第一数据。
在步骤S620中,在第一服务节点处理第一请求期间,确定需要调用第二服务。那么可以在步骤S630中,基于第一请求中携带的调用标识,确定调用的第二服务节点。
根据本发明的一个实施方式,在步骤S630之前,可以先判断第一请求是否携带有调用标识。若第一请求未携带调用标识,则生成调用标识。基于生成的调用标识,确定调用的第二服务节点。若第一请求携带有调用标识,则基于第一请求中携带的调用标识,确定调用的第二服务节点。
具体地,可以先获取提供第二服务的多个第二服务节点,例如向服务注册中心发送服务查询请求来获取。再基于第一请求中携带的调用标识、或者生成的调用标识,从多个第二服务节点中选择调用的第二服务节点。其中,在一些实施例中,可以采用一致性哈希算法,基于调用标识从多个第二服务节点中选择调用的第二服务节点。
在确定调用的第二服务节点之后,还可以生成请求调用第二服务、并携带有上述调用标识的第二请求。将第二请求发送至所确定的调用的第二服务节点,以便该调用的第二服务节点调用第二服务后将得到的第二数据返回至第一服务节点。
关于数据访问方法600中各步骤的详细处理逻辑和实施过程可以参见前文结合图1-图3对数据访问方法300的相关描述,此处不再赘述。
图7示出了根据本发明一个实施例的数据访问装置700的结构框图。图7是以功能模块划分的方式对数据访问装置700进行了描述。
如图7所示,数据访问装置700可以包括通信单元710和服务路由单元720。通信单元710适于在第一服务节点处接收请求调用第一服务的第一请求。服务路由单元720适于在第一服务节点处理第一请求期间,确定需要调用第二服务,还适于基于第一请求中携带的调用标识,确定调用的第二服务节点。
根据本发明的一个实施方式,数据访问装置700还可以包括服务调用单元730。服务调用单元730与服务路由单元720相连接,并适于生成请求调用第二服务、并携带有调用标识的第二请求,还适于经由通信单元710将第二请求发送至调用的第二服务节点,以便调用的第二服务节点调用第二服务后将得到的第二数据返回至第一服务节点。
关于数据访问装置700中各单元的详细处理逻辑和实施过程可以参见前文结合图1-图3对数据访问方法300的相关描述,此处不再赘述。
应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (18)
1.一种数据访问方法,包括:
第一服务节点接收请求调用第一服务的第一请求;
在所述第一服务节点处理所述第一请求期间,确定需要调用第二服务;
基于所述第一请求中携带的调用标识,确定调用的第二服务节点。
2.如权利要求1所述的方法,其中,在基于所述第一请求中携带的调用标识,确定调用的第二服务节点的步骤之前,还包括:
判断所述第一请求是否携带有调用标识;
若所述第一请求未携带调用标识,则生成调用标识;
基于生成的调用标识,确定调用的第二服务节点。
3.如权利要求1或2所述的方法,其中,基于所述第一请求中携带的调用标识、或者生成的调用标识,确定调用的第二服务节点的步骤包括:
获取提供所述第二服务的多个第二服务节点;
基于所述第一请求中携带的调用标识、或者生成的调用标识,从所述多个第二服务节点中选择调用的第二服务节点。
4.如权利要求3所述的方法,其中,基于所述第一请求中携带的调用标识、或者生成的调用标识,从所述多个第二服务节点中选择调用的第二服务节点的步骤包括:
采用一致性哈希算法,基于所述调用标识从所述多个第二服务节点中选择调用的第二服务节点。
5.如权利要求1或2所述的方法,其中,在基于所述第一请求中携带的调用标识、或者生成的调用标识,确定调用的第二服务节点的步骤之后,还包括:
生成请求调用第二服务、并携带有所述调用标识的第二请求;
将所述第二请求发送至所述调用的第二服务节点,以便所述调用的第二服务节点调用第二服务后将得到的第二数据返回至所述第一服务节点。
6.如权利要求1所述的方法,其中,还包括:
响应于所述第一请求,调用第一服务得到第一数据。
7.如权利要求6所述的方法,其中,调用第一服务得到第一数据的步骤包括:
从所述第一服务节点的数据库处获取所述第一数据。
8.如权利要求5所述的方法,其中,调用第一服务得到第一数据的步骤包括:
在从所述第一服务节点的数据库处获取所述第一数据之前,查询所述第一服务节点的缓存处是否存在所述第一数据;
如果存在,则从所述缓存处获取所述第一数据。
9.如权利要求8所述的方法,其中,调用第一服务得到第一数据的步骤包括:
如果所述第一服务节点的缓存处不存在所述第一数据,则从所述第一服务节点的数据库处获取所述第一数据,并将所述第一数据存储至所述缓存。
10.如权利要求9所述的方法,其中,将所述第一数据存储至所述缓存的步骤包括:基于所调用的对象签名和所述调用标识来存储所述第一数据;
查询所述第一服务节点的缓存处是否存在所述第一数据的步骤包括:
基于所调用的对象签名和所述调用标识来查询所述第一数据。
11.如权利要求8-10中任一项所述的方法,其中,所述缓存为本地缓存或者远端缓存。
12.如权利要求3所述的方法,其中,获取提供所述第二服务的多个第二服务节点的步骤包括:
向服务注册中心发送服务查询请求,以获取所述多个第二服务节点。
13.如权利要求1所述的方法,其中,还包括:
向服务注册中心发送服务注册请求,以注册第一服务。
14.一种数据访问装置,包括:
通信单元,适于在第一服务节点处接收请求调用第一服务的第一请求;
服务路由单元,适于在所述第一服务节点处理所述第一请求期间,确定需要调用第二服务;还适于基于所述第一请求中携带的调用标识,确定调用的第二服务节点。
15.如权利要求14所述的装置,其中,还包括:
服务调用单元,适于生成请求调用第二服务、并携带有所述调用标识的第二请求;还适于经由所述通信单元将所述第二请求发送至所述调用的第二服务节点,以便所述调用的第二服务节点调用第二服务后将得到的第二数据返回至所述第一服务节点。
16.一种分布式服务系统,包括服务注册中心和多个服务节点集群,其中所述服务节点集群包括多个提供服务的服务节点,所述服务节点驻留有如权利要求14或15所述的数据访问装置;
所述服务注册中心适于管理服务节点的注册和查询提供服务的服务节点。
17.一种计算设备,包括:
一个或多个处理器;和
存储器;
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行根据权利要求1-13所述方法中的任一方法的指令。
18.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当计算设备执行时,使得所述计算设备执行根据权利要求1-13所述方法中的任一方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910491783.0A CN112055039B (zh) | 2019-06-06 | 2019-06-06 | 数据访问方法、装置、系统及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910491783.0A CN112055039B (zh) | 2019-06-06 | 2019-06-06 | 数据访问方法、装置、系统及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112055039A true CN112055039A (zh) | 2020-12-08 |
CN112055039B CN112055039B (zh) | 2022-07-26 |
Family
ID=73609618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910491783.0A Active CN112055039B (zh) | 2019-06-06 | 2019-06-06 | 数据访问方法、装置、系统及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112055039B (zh) |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1677488A1 (en) * | 2005-01-04 | 2006-07-05 | Microsoft Corporation | Web application architecture |
CN101937467A (zh) * | 2010-09-17 | 2011-01-05 | 北京开心人信息技术有限公司 | 一种服务器的高效缓存方法与系统 |
CN102333130A (zh) * | 2011-10-31 | 2012-01-25 | 北京蓝汛通信技术有限责任公司 | 一种访问缓存服务器的方法、系统及缓存智能调度器 |
CN102882939A (zh) * | 2012-09-10 | 2013-01-16 | 北京蓝汛通信技术有限责任公司 | 负载均衡方法、设备及泛域名加速访问系统 |
CN104980478A (zh) * | 2014-05-28 | 2015-10-14 | 深圳市腾讯计算机系统有限公司 | 内容分发网络中缓存共享方法、设备及系统 |
US20160072789A1 (en) * | 2014-02-07 | 2016-03-10 | Oracle International Corporation | Mobile cloud service architecture |
CN105447092A (zh) * | 2015-11-09 | 2016-03-30 | 联动优势科技有限公司 | 一种缓存方法及装置 |
CN106131102A (zh) * | 2016-06-01 | 2016-11-16 | 乐视控股(北京)有限公司 | 一种分配服务器的方法及装置 |
CN107315761A (zh) * | 2017-04-17 | 2017-11-03 | 阿里巴巴集团控股有限公司 | 一种数据更新方法、数据查询方法及装置 |
CN107483538A (zh) * | 2017-07-06 | 2017-12-15 | 聚好看科技股份有限公司 | 一种在微服务集群的节点上处理访问请求包的方法和装置 |
CN107528878A (zh) * | 2017-07-03 | 2017-12-29 | 阿里巴巴集团控股有限公司 | 数据处理系统、数据处理控制装置及方法 |
CN107623729A (zh) * | 2017-09-08 | 2018-01-23 | 华为技术有限公司 | 一种缓存方法、设备及缓存服务系统 |
CN107948284A (zh) * | 2017-11-24 | 2018-04-20 | 泰康保险集团股份有限公司 | 一种基于微服务架构的服务下线方法、设备和系统 |
CN108429777A (zh) * | 2017-02-15 | 2018-08-21 | 腾讯科技(北京)有限公司 | 一种基于缓存的数据更新方法及服务器 |
US10102080B1 (en) * | 2015-06-30 | 2018-10-16 | EMC IP Holding Company LLC | Accessing de-duplication services from an application using a file system filter driver for backup and restore |
CN109684358A (zh) * | 2017-10-18 | 2019-04-26 | 北京京东尚科信息技术有限公司 | 数据查询的方法和装置 |
CN109815214A (zh) * | 2018-12-29 | 2019-05-28 | 深圳云天励飞技术有限公司 | 数据库访问方法、系统、装置及存储介质 |
-
2019
- 2019-06-06 CN CN201910491783.0A patent/CN112055039B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1677488A1 (en) * | 2005-01-04 | 2006-07-05 | Microsoft Corporation | Web application architecture |
CN101937467A (zh) * | 2010-09-17 | 2011-01-05 | 北京开心人信息技术有限公司 | 一种服务器的高效缓存方法与系统 |
CN102333130A (zh) * | 2011-10-31 | 2012-01-25 | 北京蓝汛通信技术有限责任公司 | 一种访问缓存服务器的方法、系统及缓存智能调度器 |
CN102882939A (zh) * | 2012-09-10 | 2013-01-16 | 北京蓝汛通信技术有限责任公司 | 负载均衡方法、设备及泛域名加速访问系统 |
US20160072789A1 (en) * | 2014-02-07 | 2016-03-10 | Oracle International Corporation | Mobile cloud service architecture |
CN105900396A (zh) * | 2014-02-07 | 2016-08-24 | 甲骨文国际公司 | 移动云服务体系架构 |
CN104980478A (zh) * | 2014-05-28 | 2015-10-14 | 深圳市腾讯计算机系统有限公司 | 内容分发网络中缓存共享方法、设备及系统 |
US10102080B1 (en) * | 2015-06-30 | 2018-10-16 | EMC IP Holding Company LLC | Accessing de-duplication services from an application using a file system filter driver for backup and restore |
CN105447092A (zh) * | 2015-11-09 | 2016-03-30 | 联动优势科技有限公司 | 一种缓存方法及装置 |
CN106131102A (zh) * | 2016-06-01 | 2016-11-16 | 乐视控股(北京)有限公司 | 一种分配服务器的方法及装置 |
CN108429777A (zh) * | 2017-02-15 | 2018-08-21 | 腾讯科技(北京)有限公司 | 一种基于缓存的数据更新方法及服务器 |
CN107315761A (zh) * | 2017-04-17 | 2017-11-03 | 阿里巴巴集团控股有限公司 | 一种数据更新方法、数据查询方法及装置 |
CN107528878A (zh) * | 2017-07-03 | 2017-12-29 | 阿里巴巴集团控股有限公司 | 数据处理系统、数据处理控制装置及方法 |
CN107483538A (zh) * | 2017-07-06 | 2017-12-15 | 聚好看科技股份有限公司 | 一种在微服务集群的节点上处理访问请求包的方法和装置 |
CN107623729A (zh) * | 2017-09-08 | 2018-01-23 | 华为技术有限公司 | 一种缓存方法、设备及缓存服务系统 |
CN109684358A (zh) * | 2017-10-18 | 2019-04-26 | 北京京东尚科信息技术有限公司 | 数据查询的方法和装置 |
CN107948284A (zh) * | 2017-11-24 | 2018-04-20 | 泰康保险集团股份有限公司 | 一种基于微服务架构的服务下线方法、设备和系统 |
CN109815214A (zh) * | 2018-12-29 | 2019-05-28 | 深圳云天励飞技术有限公司 | 数据库访问方法、系统、装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
倪友聪等: "基于随机搜索规则的软件体系结构层性能演化优化方法", 《计算机科学》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112055039B (zh) | 2022-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9237190B2 (en) | Node and method for generating shortened name robust against change in hierarchical name in content-centric network (CCN) | |
US10515058B2 (en) | Unified file and object data storage | |
US8689280B2 (en) | DNS-based content routing | |
CN114025021B (zh) | 一种跨Kubernetes集群的通信方法、系统、介质和电子设备 | |
CN107370811B (zh) | 一种cdn网络的资源分发方法、计算设备及可读存储介质 | |
CN111563024B (zh) | 一种宿主机上监控容器进程的方法、装置及计算设备 | |
WO2020228038A1 (zh) | 域名处理方法、装置、电子设备以及存储介质 | |
US20150088995A1 (en) | Method and apparatus for sharing contents using information of group change in content oriented network environment | |
CN111064804B (zh) | 网络访问方法和装置 | |
CN110795343A (zh) | 测试系统、测试方法和计算设备 | |
CN108829753A (zh) | 一种信息处理方法及装置 | |
US10701159B2 (en) | Method and apparatus for implementing device sharing | |
WO2016101759A1 (zh) | 一种数据路由方法、数据管理装置和分布式存储系统 | |
CN111651374A (zh) | 一种数据处理方法、装置、计算设备及可读存储介质 | |
US20140302828A1 (en) | Mobile terminal, server and calling method based on cloud contact list | |
CN110830492B (zh) | 一种基于CoreDNS注册服务的边缘应用相互调度的方法及系统 | |
WO2016095644A1 (zh) | 数据库的高可用解决方法和装置 | |
CN112055039B (zh) | 数据访问方法、装置、系统及计算设备 | |
CN110837499A (zh) | 数据访问处理方法、装置、电子设备和存储介质 | |
WO2021063204A1 (zh) | 服务发现方法、装置及功能网元 | |
CN114356456A (zh) | 业务处理方法、装置、存储介质和电子设备 | |
CN110753082B (zh) | 服务调用方法及终端设备 | |
CN114048028A (zh) | 服务调用方法、装置、存储介质和电子设备 | |
CN112671843A (zh) | 数据请求方法、系统及计算设备 | |
US10394628B1 (en) | In-line event handlers across domains |
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 |