CN113760901A - 数据处理方法、装置、设备及存储介质 - Google Patents
数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113760901A CN113760901A CN202110189405.4A CN202110189405A CN113760901A CN 113760901 A CN113760901 A CN 113760901A CN 202110189405 A CN202110189405 A CN 202110189405A CN 113760901 A CN113760901 A CN 113760901A
- Authority
- CN
- China
- Prior art keywords
- data
- access request
- service agent
- data access
- processing method
- 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
Links
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据处理方法、装置、设备及存储介质,涉及计算机技术,应用于服务代理,服务代理用于拦截服务间的网络通信。此数据处理方法包括:服务代理获取数据访问请求,数据访问请求携带目标表的标识信息;服务代理确定标识信息对应的数据分片;服务代理发送数据访问请求给数据分片对应的服务器。本申请可以简化分库分表客户端组件的升级过程,并降低分库分表客户端组件升级对业务性能的影响。
Description
技术领域
本申请涉及计算机技术,尤其涉及一种数据处理方法、装置、设备及存储介质。
背景技术
随着业务快速发展,业务对应的数据库中的数据量猛增,导致数据库性能降低。这时就需要将对应数据库中的数据分散在不同的数据库中,并且将大表也拆分为若干小表,即通过分库分表来解决由于数据量过大而导致数据库性能降低的问题。
目前,分库分表客户端组件在处理数据分片、读写分离时,需要在业务应用程序中集成诸如MyCat、ShardingSphere等依赖包,形成业务应用程序依赖版本。
在实现本申请过程中,发明人发现现有技术中至少存在如下问题:在分库分表客户端组件需要升级时,需要修改业务应用程序依赖版本,然后重新启动业务应用程序,从而导致影响对应业务的性能。
发明内容
本申请提供一种数据处理方法、装置、设备及存储介质,用以简化分库分表客户端组件的升级过程,降低对业务性能的影响。
第一方面,本申请实施例提供一种数据处理方法,其中,应用于服务代理,服务代理用于拦截服务间的网络通信。该数据处理方法包括:服务代理获取数据访问请求,数据访问请求携带目标表的标识信息;服务代理确定标识信息对应的数据分片;服务代理发送数据访问请求给数据分片对应的服务器。通过设置服务代理拦截服务间的网络通信,解决现有架构中业务应用程序与分库分表客户端组件之间的强耦合关系,从而简化分库分表客户端组件的升级过程,并降低分库分表客户端组件升级对业务性能的影响。
一种可能的实施方式中,上述服务代理确定标识信息对应的数据分片,包括:服务代理确定标识信息对应的哈希值;基于预设分片规则,服务代理确定哈希值对应的数据分片。
一种可能的实施方式中,数据分片与服务器间的对应关系,和/或,预设分片规则是由控制中心配置的。
一种可能的实施方式中,数据访问请求为写请求,服务器包括主节点。服务代理发送数据访问请求给数据分片对应的服务器,包括:服务代理发送数据访问请求给数据分片对应的主节点,数据访问请求用于指示将携带第一目标数据写入主节点。
一种可能的实施方式中,数据访问请求为读请求,服务器包括主节点。服务代理发送数据访问请求给数据分片对应的服务器,包括:服务代理发送数据访问请求给数据分片对应的主节点,数据访问请求用于指示从主节点读取第二目标数据。
一种可能的实施方式中,数据访问请求为读请求,服务器包括从节点。服务代理发送数据访问请求给数据分片对应的服务器,包括:服务代理发送数据访问请求给数据分片对应的从节点,数据访问请求用于指示从节点读取第三目标数据。
一种可能的实施方式中,服务代理与业务应用部署在不同的容器或进程中。
第二方面,本申请实施例提供一种数据处理装置,应用于服务代理,服务代理用于拦截服务间的网络通信。数据处理装置包括:
获取模块,用于获取数据访问请求,数据访问请求携带目标表的标识信息;
确定模块,用于确定标识信息对应的数据分片;
发送模块,发送数据访问请求给数据分片对应的服务器。
一种可能的实施方式中,确定模块可以具体用于:确定标识信息对应的哈希值;基于预设分片规则,确定哈希值对应的数据分片。
一种可能的实施方式中,数据分片与服务器间的对应关系,和/或,预设分片规则是由控制中心配置的。
一种可能的实施方式中,数据访问请求为写请求,服务器包括主节点。发送模块可具体用于:发送数据访问请求给数据分片对应的主节点,数据访问请求用于指示将携带第一目标数据写入主节点。
一种可能的实施方式中,数据访问请求为读请求,服务器包括主节点。发送模块可具体用于:发送数据访问请求给数据分片对应的主节点,数据访问请求用于指示从主节点读取第二目标数据。
一种可能的实施方式中,数据访问请求为读请求,服务器包括从节点。发送模块可具体用于:发送数据访问请求给数据分片对应的从节点,数据访问请求用于指示从节点读取第三目标数据。
一种可能的实施方式中,服务代理与业务应用部署在不同的容器或进程中。
第三方面,本申请实施例提供一种电子设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如第一方面所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当计算机程序在电子设备上运行时,使得电子设备执行如第一方面所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序在电子设备上运行时,使得电子设备执行如第一方面所述的方法。
本申请实施例提供的数据处理方法、装置、设备及存储介质,应用于服务代理,服务代理用于拦截服务间的网络通信,该数据处理方法包括:服务代理获取数据访问请求,数据访问请求携带目标表的标识信息;服务代理确定标识信息对应的数据分片;服务代理发送数据访问请求给数据分片对应的服务器。通过设置服务代理拦截服务间的网络通信,解决现有架构中业务应用程序与分库分表客户端组件之间的强耦合关系,从而简化分库分表客户端组件的升级过程,并降低分库分表客户端组件升级对业务性能的影响。
本申请的这些和其它方面在以下(多个)实施例的描述中会更加简明易懂。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请一实施例提供的架构示意图;
图2为本申请一实施例提供的应用场景示意图;
图3为本申请一实施例提供的数据处理方法的流程示意图;
图4为本申请另一实施例提供的数据处理方法的流程示意图;
图5为本申请一实施例提供的交互示意图;
图6为本申请一实施例提供的数据处理装置的结构示意图;
图7为本申请一实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先,对本申请涉及的部分术语进行解释说明:
数据分片,是指分布式数据库中的数据可以被复制在网络场地的各个物理数据库中。数据分片是通过关系代数的基本运算实现的。
边车(Sidecar)模式,把一个业务应用的不同组件部署到不同的进程或容器中,以提供隔离的各个组件各自维护更新。
服务网格(ServiceMesh),本质上就是主机独立进程模式。具体地,业务应用程序进程共享一个服务代理,服务代理除了负责服务发现和负载均衡,还负责动态路由、容错限流、监控度量和安全日志等功能,这些功能是具体业务无关的。其中,Istio是一个服务网格标准化工作组。
Envoy,是一款开源项目,也是Istio中默认的数据面板(data plane)代理。 Envoy本身无法构成一个完整的服务网络(Service Mesh),但是它可以作为服务网格中的应用间流量的代理,负责服务网格中的数据层。
EnvoyFilter,是Istio中自定义的一种网络资源对象,用来更新配置Envoy 中的过滤器(filter),为服务网格控制面提供了更强大的扩展能力,使Envoy 中过滤链(filterchain)具备自定义配置的能力。
Pod,就是一组容器的集合,在Pod里面的容器共享网络/存储等,容器之间可以通过本地主机(localhost)进行内部的通信。虽然网络/存储都是共享的,但是中央处理器(Central Processing Unit,简称CPU)和内存(memory)就不是。多容器之间可以有属于自己的控制组群(control groups,简称Cgroup),也就是说我们可以单独的对Pod中的容器做资源(MEM/CPU)使用的限制。
Pod就像是一个”专有主机”,上面除了运行业务应用程序之外,还可以运行一个与该业务应用程序紧密相关的进程。如日志收集工具、配置文件更新重启器等。
针对现有技术存在的问题,本申请提供一种数据处理方法、装置、设备及存储介质,通过引入服务代理这一新组件,解耦现有架构中业务应用程序和分库分表客户端组件之间的强耦合关系,简化分库分表客户端组件的升级过程,并降低分库分表客户端组件升级对业务性能的影响。
示例地,服务代理可以具体为Istio。只需很少更改甚至无需更改业务应用程序,Istio即可以轻松地创建一个已经部署了服务的网络。通过在整个环境中部署一个特殊的边车模式的服务代理为服务添加Istio的支持,而服务代理会拦截服务(包括但不限于微服务)之间的网络通信,然后使用服务代理控制平面的功能来配置和管理Istio,这包括:
为超文本传输协议(Hypertext Transfer Protocol,简称HTTP)、Google 远程过程调用(Google Remote Procedure Call,简称gRPC)、WebSocket和传输控制协议(Transmission Control Protocol,简称TCP)流量自动负载均衡;
通过丰富的路由规则、重试、故障转移和故障注入对流量行为进行细粒度控制;
可插拔的策略层和配置应用程序接口(Application Programming Interface,简称API),支持访问控制、速率限制和配额;
集群内(包括集群的入口和出口)所有流量的自动化度量、日志记录和追踪;
在具有强大的基于身份验证和授权的集群中实现安全的服务间通信。
考虑到Pilot中已经支持了MySQL协议,但功能较弱,只能为MySQL 代理配置一个缺省路由,而且不支持MySQL分库分表模式,无法实现MySQL filter的数据分片、读写分离等高级功能。具体可以通过修改让EnvoyFilter配置相关代码,以使得Istio控制中心可以将MySQL分库分表相关的配置下发到Envoy上,实现在Envoy支持MySQL的分库分表、读写分离策略。
图1为本申请一实施例提供的架构示意图。参考图1,业务Pod中包含业务应用容器和Evnoy容器;数据分片以3个数据分片为例进行说明,分别标识为:数据分片1、数据分片2和数据分片3,其中每个数据分片对应有至少一个主节点和从节点。部署如图1所示的架构后,在支持业务应用程序和分库分表逻辑解耦的基础上,同时提供动态调整功能,在Istio控制中心,可随时修改关于分库分表、读写分离的逻辑并实时更新到Evnoy。该架构中,Evnoy(即服务代理)与业务应用部署在不同的容器(或进程)中,分别为 Evnoy容器和业务应用容器。
需要说明的是,附图1仅是本申请实施例提供的一种架构的示意图,本申请实施例不对图1中包括的业务容器个数及数据分片个数进行限定,也不对图1中主节点和从节点的个数进行限定。
示例性地,图2为本申请一实施例提供的应用场景示意图。如图2所示,该应用场景可以包括:客户端11、服务代理12和服务器13。可选地,客户端11和服务代理12可以通过网络与服务器13进行通信。其中,服务代理 12可以拦截服务间的网络通信。进一步地,本申请涉及的“服务”包括但不限于“微服务”。
示例地,在实际应用中,当用户有从数据库读数据和/或写数据到数据库的需求时,通过键盘和/或鼠标、触控笔等输入设备在客户端11输入读取操作或写入操作(为便于描述,本文将读取操作和写入操作统称为数据访问操作);响应于用户输入的数据访问操作,客户端11发送数据访问请求给服务代理12,由服务代理12基于负载均衡等原则进行数据访问请求的分配,将数据访问请求发送给对应的服务器13。相应地,服务器13接收该数据访问请求,对其进行解析并执行相应的数据访问操作。
或者,在实际应用中,当用户访问客户端11中的业务时,该业务对应的业务应用程序会向服务器13执行相应的写入操作和/或读取操作,此时,服务代理12会拦截业务应用程序发起的数据访问请求,由服务代理12基于负载均衡等原则进行数据访问请求的分配,将数据访问请求发送给对应的服务器13。相应地,服务器13接收该数据访问请求,对其进行解析并执行相应的数据访问操作。
需要说明的是,附图2仅是本申请实施例提供的一种应用场景的示意图,本申请实施例不对图2中包括的设备及设备个数进行限定,也不对图2中设备之间的位置关系进行限定,例如,在图1所示的应用场景中,服务代理12 可以是客户端嵌入式代理,或者,服务代理12可以是集中式代理,或者,服务代理12可以是主机独立进程代理。另外,服务器13可以是独立的服务器,或者,服务器13也可以是服务器集群等。可选地,服务器集群中包含主节点和从节点。
下面,通过具体实施例对本申请的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图3为本申请一实施例提供的数据处理方法的流程示意图。本申请实施例提供一种数据处理方法,应用于服务代理,该服务代理可以拦截服务间的网络通信。
如图3所示,该数据处理方法包括如下步骤:
S301、服务代理获取数据访问请求,数据访问请求携带目标表的标识信息。
在现有架构中,数据访问请求是由客户端直接发送给服务器的;而在本申请提供的架构中,数据访问请求是通过服务代理发送给服务器的。
实际应用中,客户端中安装有各种业务应用程序。用户对业务应用程序的访问反映到后台即体现为对表中数据的读取和/或写入。这里为便于描述,将当前访问的表称为“目标表”,因此,本申请实施例提到的“目标表”并非表名。
由于数据库中包含的表的种类可以有至少一种,因此,通常情况下,数据访问请求中携带有目标表的标识信息,以快速找到当前访问的目标表,便于明确当前操作对象。
S302、服务代理确定标识信息对应的数据分片。
由于分库分表是将一个数据库中的数据分到不同数据库,或者,将一个表中的数据分到不同表中,因此,不同数据库/不同表中包含的数据仅为之前一个数据库/一个表中数据的一部分,即数据分片。
具体应用中,一个服务器可以存储有不同表的数据分片,因此,需要根据目标表的标识信息(例如表的ID)确定该标识信息对应的数据分片。
S303、服务代理发送数据访问请求给数据分片对应的服务器。
服务代理中存储有数据分片与服务器的对应关系,因此,可以进一步根据数据分片确定对应的服务器,进而将数据访问请求发送给对应的服务器。服务器接收数据访问请求之后的读写等操作,与相关技术类似,此处不再赘述。
本申请实施例提供的数据处理方法,应用于服务代理,服务代理用于拦截服务间的网络通信,该数据处理方法包括:服务代理获取数据访问请求,数据访问请求携带目标表的标识信息;服务代理确定标识信息对应的数据分片;服务代理发送数据访问请求给数据分片对应的服务器。通过设置服务代理拦截服务间的网络通信,解决现有架构中业务应用程序与分库分表客户端组件之间的强耦合关系,从而简化分库分表客户端组件的升级过程,并降低分库分表客户端组件升级对业务性能的影响。
在上述实施例的基础上,如图4所示,S302、服务代理确定标识信息对应的数据分片,可以进一步包括:
S3021、服务代理确定标识信息对应的哈希(hash)值。
S3022、基于预设分片规则,服务代理确定哈希值对应的数据分片。
此处列举了一种具体的确定标识信息对应的数据分片的实现方式,但本申请不以此为限制,例如,服务代理还可以基于一致性hash(consistent hash) 或者按照数据范围(range based)等方式确定标识信息对应的数据分片。其中,标识信息例如为ID。
可选地,数据分片(Shard)与服务器间的对应关系,和/或,预设分片规则是由控制中心配置的。
例如,参考图5,预设分片规则(或称为“分片逻辑”)为:
Slot=hash(key)
数据分片1(Shard[0]):0 to 5460
数据分片2(Shard[1]):5461 to 10922
数据分片3(Shard[2]):10923 to 16383
在图1所示架构中,Envoy提供了“envoy.clusters.mysql”类型的 Envoy集群(Cluster)来连接后端的服务器集群,例如1所示的MySQL集群(包括各数据分片对应的主节点和从节点),Envoy会通过该Envoy集群获取后端MySQL集群的拓扑结构,包括有多少个数据分片,预设分片规则,每个数据分片负责哪些数据范围,以及数据分片中包含哪些节点,以将来自客户端的数据访问请求分发到正确的MySQL节点上。
控制中心可以动态调整预设分片规则,并将调整后的预设分片规则配置同步到Envoy,而无需修改业务应用程序,从而简化分库分表客户端组件的升级过程,并降低分库分表客户端组件升级对业务性能的影响。
由于本申请提及的数据访问请求包括读请求和写请求,且分布式数据库中对应多个服务器,其中包括主节点和从节点,因此,接下来,参考图5,分别说明数据访问请求为读请求或写请求时的具体实例。
实例一、数据访问请求为写请求,服务器包括主节点。
该实例中,S303、服务代理发送数据访问请求给数据分片对应的服务器,可以包括:服务代理发送数据访问请求给数据分片对应的主节点,数据访问请求用于指示将携带第一目标数据写入主节点。
在将第一目标数据写入主节点之后,通过主从复制,实现第一目标数据在对应从节点的备份。因此,在后续读取操作时,既可以从主节点读取数据,也可以从从节点读取数据。
若无特殊说明,写请求只在主节点写入数据。作为一种示例,用户在客户端输入以下SQL语句:
Insert into test_db.test_table(id,name,title)values(123,"test","test");
此处SQL语句中id的值为123(即标识信息的值为123),通过在Envoy Filter中计算,123的hash值为123_hash,根据预设分片规则,计算出此写请求应该路由到数据分片1中,在数据分片1中的主节点写入后,此次写请求完成。
实例二、数据访问请求为读请求,服务器包括主节点。
该实例中,S303、服务代理发送数据访问请求给数据分片对应的服务器,可以包括:服务代理发送数据访问请求给数据分片对应的主节点,数据访问请求用于指示从主节点读取第二目标数据。
作为另一种示例,用户在客户端输入以下SQL语句,以读MySQL主节点中的数据:
Select/*read_master*/id,name,title from test_db.test_table;
通过在select类型的SQL语句加入hint标识,来区分该次读请求需要转发到的服务器时是主节点还是从节点。例如:
/*read_slave*/表示从节点请求hint;
/*read_master*/表示主节点请求hint。
实例三、数据访问请求为读请求,服务器包括从节点。
该实例中,S303、服务代理发送数据访问请求给数据分片对应的服务器,可以包括:服务代理发送数据访问请求给数据分片对应的从节点,数据访问请求用于指示从节点读取第三目标数据。
作为另一种示例,用户在客户端输入以下SQL语句,以读MySQL从节点中的数据:
Select/*read_slave*/id,name,title from test_db.test_table;
本申请实施例通过上述方式,实现读写分离逻辑。
综上,本申请实施例利用Istio、Envoy提供的服务代理,动态配置等功能解决现有架构中业务应用程序和分库分表客户端组件之间的强耦合关系。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图6为本申请一实施例提供的数据处理装置的结构示意图。本申请实施例提供一种数据处理装置,该数据处理装置应用于服务代理,服务代理用于拦截服务间的网络通信。如图6所示,数据处理装置60包括:获取模块61、确定模块62和发送模块63。其中:
获取模块61,用于获取数据访问请求,数据访问请求携带目标表的标识信息;
确定模块62用于确定标识信息对应的数据分片;
发送模块63发送数据访问请求给数据分片对应的服务器。
本申请实施例提供的装置,可用于执行图3所示实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
一些实施例中,确定模块62可以具体用于:确定标识信息对应的哈希值;基于预设分片规则,确定哈希值对应的数据分片。
可选地,数据分片与服务器间的对应关系,和/或,预设分片规则是由控制中心配置的。
一种实现方式中,数据访问请求为写请求,服务器包括主节点。发送模块63可具体用于:发送数据访问请求给数据分片对应的主节点,数据访问请求用于指示将携带第一目标数据写入主节点。
另一种实现方式中,数据访问请求为读请求,服务器包括主节点。发送模块63可具体用于:发送数据访问请求给数据分片对应的主节点,数据访问请求用于指示从主节点读取第二目标数据。
又一种实现方式中,数据访问请求为读请求,服务器包括从节点。发送模块63可具体用于:发送数据访问请求给数据分片对应的从节点,数据访问请求用于指示从节点读取第三目标数据。
进一步地,服务代理与业务应用部署在不同的容器或进程中。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,处理模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上处理模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(Microprocessor),或,一个或者多个现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如CPU或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(System-On-a-Chip,简称SOC)的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等) 方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质 (例如固态硬盘solid state disk(SSD))等。
图7为本申请一实施例提供的电子设备的结构示意图。如图7所示,该电子设备80可以包括:处理器81、存储器82、通信接口83和系统总线84。其中,存储器82和通信接口83通过系统总线84与处理器81连接并完成相互间的通信,存储器82用于存储指令,通信接口83用于和其他设备进行通信,处理器81用于调用存储器中的指令以执行如上述危险品识别方法实施例所述的方案。
该图7中提到的系统总线84可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该系统总线84可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口83用于实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信。
存储器82可能包含随机存取存储器(Random Access Memory,简称 RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器81可以是通用处理器,包括中央处理器、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当计算机程序在电子设备上运行时,使得电子设备执行如上任一方法实施例所述的方法。
本申请实施例还提供一种运行指令的芯片,芯片用于执行如上任一方法实施例所述的方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,至少一个处理器可以从该计算机可读存储介质中读取计算机程序,该至少一个处理器执行所述计算机程序时可实现如上任一方法实施例所述的方法。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A 和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个) 或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中,a,b,c可以是单个,也可以是多个。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。在本申请的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (11)
1.一种数据处理方法,其特征在于,应用于服务代理,所述服务代理用于拦截服务间的网络通信,所述数据处理方法包括:
所述服务代理获取数据访问请求,所述数据访问请求携带目标表的标识信息;
所述服务代理确定所述标识信息对应的数据分片;
所述服务代理发送所述数据访问请求给所述数据分片对应的服务器。
2.根据权利要求1所述的数据处理方法,其特征在于,所述服务代理确定所述标识信息对应的数据分片,包括:
所述服务代理确定所述标识信息对应的哈希值;
基于预设分片规则,所述服务代理确定所述哈希值对应的数据分片。
3.根据权利要求1所述的数据处理方法,其特征在于,数据分片与服务器间的对应关系、预设分片规则是由控制中心配置的。
4.根据权利要求1所述的数据处理方法,其特征在于,所述数据访问请求为写请求,所述服务器包括主节点,所述服务代理发送所述数据访问请求给所述数据分片对应的服务器,包括:
所述服务代理发送所述数据访问请求给所述数据分片对应的主节点,所述数据访问请求用于指示将携带第一目标数据写入所述主节点。
5.根据权利要求1所述的数据处理方法,其特征在于,所述数据访问请求为读请求,所述服务器包括主节点,所述服务代理发送所述数据访问请求给所述数据分片对应的服务器,包括:
所述服务代理发送所述数据访问请求给所述数据分片对应的主节点,所述数据访问请求用于指示从所述主节点读取第二目标数据。
6.根据权利要求1所述的数据处理方法,其特征在于,所述数据访问请求为读请求,所述服务器包括从节点,所述服务代理发送所述数据访问请求给所述数据分片对应的服务器,包括:
所述服务代理发送所述数据访问请求给所述数据分片对应的从节点,所述数据访问请求用于指示从所述从节点读取第三目标数据。
7.根据权利要求1至6中任一项所述的数据处理方法,其特征在于,所述服务代理与业务应用部署在不同的容器或进程中。
8.一种数据处理装置,其特征在于,应用于服务代理,所述服务代理用于拦截服务间的网络通信,所述数据处理装置包括:
获取模块,用于获取数据访问请求,所述数据访问请求携带目标表的标识信息;
确定模块,用于确定所述标识信息对应的数据分片;
发送模块,发送所述数据访问请求给所述数据分片对应的服务器。
9.一种电子设备,包括处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的数据处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在电子设备上运行时,使得电子设备执行如权利要求1至7中任一项所述的数据处理方法。
11.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序在电子设备上运行时,使得电子设备执行如权利要求1至7中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110189405.4A CN113760901A (zh) | 2021-02-19 | 2021-02-19 | 数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110189405.4A CN113760901A (zh) | 2021-02-19 | 2021-02-19 | 数据处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113760901A true CN113760901A (zh) | 2021-12-07 |
Family
ID=78786651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110189405.4A Pending CN113760901A (zh) | 2021-02-19 | 2021-02-19 | 数据处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113760901A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553959A (zh) * | 2022-02-21 | 2022-05-27 | 南京航空航天大学 | 基于态势感知的云原生服务网格配置按需下发方法及应用 |
CN115334153A (zh) * | 2022-08-12 | 2022-11-11 | 北京百度网讯科技有限公司 | 服务网格的数据处理方法和装置 |
CN115378993A (zh) * | 2022-07-26 | 2022-11-22 | 上海道客网络科技有限公司 | 支持命名空间感知的服务注册与发现的方法和系统 |
CN116886497A (zh) * | 2023-07-28 | 2023-10-13 | 中科驭数(北京)科技有限公司 | 基于dpu的服务网格业务集中代理切换方法及处理系统 |
CN117118939A (zh) * | 2023-10-24 | 2023-11-24 | 腾讯科技(深圳)有限公司 | 一种数据处理方法,装置、设备以及存储介质 |
CN116886497B (zh) * | 2023-07-28 | 2024-06-07 | 中科驭数(北京)科技有限公司 | 基于dpu的服务网格业务集中代理切换方法及处理系统 |
-
2021
- 2021-02-19 CN CN202110189405.4A patent/CN113760901A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553959A (zh) * | 2022-02-21 | 2022-05-27 | 南京航空航天大学 | 基于态势感知的云原生服务网格配置按需下发方法及应用 |
CN115378993A (zh) * | 2022-07-26 | 2022-11-22 | 上海道客网络科技有限公司 | 支持命名空间感知的服务注册与发现的方法和系统 |
CN115378993B (zh) * | 2022-07-26 | 2023-07-21 | 上海道客网络科技有限公司 | 支持命名空间感知的服务注册与发现的方法和系统 |
CN115334153A (zh) * | 2022-08-12 | 2022-11-11 | 北京百度网讯科技有限公司 | 服务网格的数据处理方法和装置 |
CN115334153B (zh) * | 2022-08-12 | 2023-10-27 | 北京百度网讯科技有限公司 | 服务网格的数据处理方法和装置 |
CN116886497A (zh) * | 2023-07-28 | 2023-10-13 | 中科驭数(北京)科技有限公司 | 基于dpu的服务网格业务集中代理切换方法及处理系统 |
CN116886497B (zh) * | 2023-07-28 | 2024-06-07 | 中科驭数(北京)科技有限公司 | 基于dpu的服务网格业务集中代理切换方法及处理系统 |
CN117118939A (zh) * | 2023-10-24 | 2023-11-24 | 腾讯科技(深圳)有限公司 | 一种数据处理方法,装置、设备以及存储介质 |
CN117118939B (zh) * | 2023-10-24 | 2024-01-30 | 腾讯科技(深圳)有限公司 | 一种数据处理方法,装置、设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10944688B2 (en) | Distributed catalog service for data processing platform | |
US10999353B2 (en) | Beacon-based distributed data processing platform | |
US9971823B2 (en) | Dynamic replica failure detection and healing | |
CN113760901A (zh) | 数据处理方法、装置、设备及存储介质 | |
EP3360057B1 (en) | Relational database organization for sharding | |
US11106816B2 (en) | Database public interface | |
CN114787781B (zh) | 用于启用高可用性受管理故障转移服务的系统和方法 | |
US9015177B2 (en) | Dynamically splitting multi-tenant databases | |
US9026655B2 (en) | Method and system for load balancing | |
US10791063B1 (en) | Scalable edge computing using devices with limited resources | |
AU2013347972B2 (en) | Distributed caching cluster management | |
US10462250B2 (en) | Distributed caching cluster client configuration | |
US10152500B2 (en) | Read mostly instances | |
US20220188170A1 (en) | Multi-Tenant Control Plane Management on Computing Platform | |
JP2014142945A (ja) | 分散リソース管理のためのバランスしたコンシステント・ハッシュ | |
WO2012054192A2 (en) | Web service patterns for globally distributed service fabric | |
JP2007025785A (ja) | データベース処理方法、システム及びプログラム | |
WO2017113962A1 (zh) | 访问分布式数据库的方法和分布式数据服务的装置 | |
SG189890A1 (en) | Routing traffic in an online service with high availability | |
CN112199427A (zh) | 一种数据处理方法和系统 | |
KR101527634B1 (ko) | 샤딩 서비스를 제공하는 방법 및 장치 | |
CN111400404A (zh) | 一种节点初始化方法、装置、设备及存储介质 | |
CN111221857A (zh) | 从分布式系统中读数据记录的方法和装置 | |
US20230028407A1 (en) | In-band modification of event notification preferences for server events | |
US11665167B2 (en) | Dynamically deployed limited access interface to computational resources |
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 |