CN116155922A - 会话数据处理方法、装置、系统、电子设备及存储介质 - Google Patents
会话数据处理方法、装置、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116155922A CN116155922A CN202310403179.4A CN202310403179A CN116155922A CN 116155922 A CN116155922 A CN 116155922A CN 202310403179 A CN202310403179 A CN 202310403179A CN 116155922 A CN116155922 A CN 116155922A
- Authority
- CN
- China
- Prior art keywords
- session data
- key value
- unit
- storage
- message middleware
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/2866—Architectures; Arrangements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种会话数据处理方法、装置、系统、电子设备及存储介质。涉及单元化架构下跨单元的会话数据共享技术,可用于金融科技领域或其他相关领域,通过将消息中间件集群,跨单元部署于单元化架构的机房内,单元化架构下每个单元对应部署一个消息中间件,消息中间件用于为单元的会话数据提供多个存储分区,存储分区用于持久化存储单元的会话数据;每个单元部署一个代理组件,该代理组件与对应的消息中间件连接,代理组件用于响应客户端的会话数据请求,确定与会话数据请求对应的键值,以从键值所属的目标存储分区中拉取会话数据,并写入单元的键值对KV存储组件。可以实现在单元化架构下,降低跨单元访问会话数据的网络延时且提升稳定性。
Description
技术领域
本公开涉及计算机技术,具体涉及单元化架构下跨单元的会话数据共享技术,可用于金融科技领域或其他相关领域,尤其涉及一种会话数据处理方法、装置、系统、电子设备及存储介质。
背景技术
现有跨单元数据同步方案,大多采用副本数据同步复制模型,在跨异地单元场景下主副本节点容易因网络延时大,导致主副本节点之间频繁触发全量同步,影响主节点服务稳定性。
例如,单元化架构下,金融系统中手机银行等业务场景下的会话数据与单元化数据划分策略不统一,导致跨单元访问带来的服务调用和数据同步的高延时、低稳定性问题。
服务调用和数据同步的高延时、低稳定性,又容易带来主副本切换数据丢失的问题,降低用户体验感,并且各单元流量单一流向主节点所在单元,有违单元化架构下单元内闭环原则。
发明内容
本公开提供一种会话数据处理方法、装置、系统、电子设备及存储介质,用以解决单元化架构下,会话数据与单元化数据划分策略不统一的问题,实现降低跨单元访问会话数据的网络延时且提升稳定性的技术效果。
一方面,本公开提供一种会话数据处理系统,上述系统包括:
消息中间件集群,跨单元部署于单元化架构的机房内,上述单元化架构下每个单元对应部署一个消息中间件,上述消息中间件用于为上述单元的会话数据提供多个存储分区,每个上述存储分区用于持久化存储上述单元的会话数据;
多个代理组件,每个上述单元部署一个代理组件,每个单元内部署的代理组件与对应的消息中间件连接,上述代理组件用于响应客户端的会话数据请求,确定与上述会话数据请求对应的键值,以从上述键值所属的目标存储分区中拉取上述会话数据,并写入上述单元的键值对KV存储组件。
进一步地,上述系统还包括:
多个KV存储组件,每个上述单元部署一个与上述代理组件连接的KV存储组件,用于接收上述代理组件写入的上述会话数据。
进一步地,上述代理组件,还用于在将上述会话数据成功写入上述KV存储组件之后,向上述客户端返回会话数据写入成功结果。
进一步地,上述代理组件,还用于对上述会话数据请求进行解析得到上述键值;对上述键值进行哈希槽计算,以得到上述键值所属的上述目标存储分区。
进一步地,上述代理组件,还用于预先根据上述消息中间件的存储分区的数量,确定对应的数据分片数量,以将基于上述数据分片数量将上述会话数据处理为分片后会话数据,并按照键值索引方式将上述分片后会话数据写入对应的上述目标存储分区。
另一方面,本公开提供一种会话数据处理方法,应用于任意一项上述的系统,上述方法包括:
响应于客户端的会话数据请求,确定与上述会话数据请求对应的键值;
确定上述键值在消息中间件中所属的目标存储分区;
从上述键值所属的目标存储分区中拉取上述会话数据;
将上述会话数据写入代理组件所在单元内的键值对KV存储组件。
进一步地,上述方法还包括:
在将上述会话数据成功写入上述KV存储组件之后,向上述客户端返回会话数据写入成功结果。
进一步地,确定上述键值在消息中间件中所属的目标存储分区,包括:
对上述会话数据请求进行解析得到上述键值;
对上述键值进行哈希槽计算,以得到上述键值所属的上述目标存储分区。
进一步地,上述方法还包括:
获取上述消息中间件的存储分区的数量;
根据上述消息中间件的存储分区的数量,确定对应的数据分片数量;
基于上述数据分片数量将上述会话数据处理为分片后会话数据;
按照键值索引方式将上述分片后会话数据写入对应的上述目标存储分区。
另一方面,本公开提供一种会话数据处理装置,上述装置包括:
第一确定模块,用于响应于客户端的会话数据请求,确定与上述会话数据请求对应的键值;
第二确定模块,用于确定上述键值在消息中间件中所属的目标存储分区;
拉取模块,用于从上述键值所属的目标存储分区中拉取上述会话数据;
写入模块,用于将上述会话数据写入代理组件所在单元内的键值对KV存储组件。
另一方面,本公开提供一种电子设备,包括:处理器,以及与上述处理器连接的存储器;上述存储器存储计算机执行指令;上述处理器执行上述存储器存储的计算机执行指令,以实现如任一项上述的方法。
另一方面,本公开提供一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机执行指令,上述计算机执行指令被处理器执行时用于实现如任一项上述的方法。
本公开提供一种会话数据处理方法、装置、系统、电子设备及存储介质,会话数据处理系统,采用消息中间件集群,跨单元部署于单元化架构的机房内,单元化架构下每个单元对应部署一个消息中间件,消息中间件用于为单元的会话数据提供多个存储分区,存储分区用于持久化存储单元的会话数据;多个代理组件,每个单元部署一个代理组件,该代理组件与对应的消息中间件连接,代理组件用于响应客户端的会话数据请求,确定与会话数据请求对应的键值,以从键值所属的目标存储分区中拉取会话数据,并写入单元的键值对KV存储组件。用以解决单元化架构下,会话数据与单元化数据划分策略不统一的问题,实现降低跨单元访问会话数据的网络延时且提升稳定性的技术效果。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为相关技术提供的一种会话数据处理系统的架构示意图;
图2为本公开实施例提供的一种会话数据处理系统的架构示意图;
图3为本公开实施例提供的一种可选的会话数据处理系统的架构示意图;
图4是本公开实施例所提供的一种会话数据处理方法的流程示意图;
图5是本公开实施例所提供的另一种会话数据处理方法的流程示意图;
图6为本公开实施例提供的一种会话数据处理装置的结构框图;
图7为本公开实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
首先对本公开所涉及的名词进行解释:
单元:即单元化应用服务产品层的部署单元,是指一个能完成所有业务操作的自包含集合,在这个集合中包含了所有业务所需的所有服务,以及分配给这个单元的数据。
单元化架构:是把单元作为系统部署的基本单位,在全站所有机房中部署多个单元,每个机房中单元数目不定,任意一个单元都部署了系统所需的所有应用,数据则是全量数据按照某种维度划分的一部分。
KV存储组件:一种以键值对存储数据的数据库,简单来说,它是利用Key做索引来实现数据的存储、修改、查询和删除功能。常用的高性能KV存储组件主要有Redis、Memcached、etcd、Zookeeper等。
由于单元化架构即是将单元作为部署的基本单位,在跨异地所有机房中部署多个单元,任一单元均部署系统所需的全部服务,数据则根据某种维度进行统一的划分规则路由到对应单元。
对于手机银行的会话信息这类无法按单元划分的数据,如何实现跨单元之间的数据共享,并保证每个单元都有全量数据,现有技术大多采用跨单元之间主副本数据同步模式,即所有流量跨单元流向某个主节点单元,再通过主备复制方式同步至其余副本节点所在单元。
为更好的理解本公开所要实现的跨单元会话数据共享,以图1所示一种现有的跨单元会话数据共享场景为例,先对单元化架构进行简要说明。单元化架构将单元作为部署基本单位,在全站所有机房中部署多个单元,每个机房内部署单元数目不固定,任一单元均部署系统所需的全部应用,数据则是全量数据按照某种维度划分后的一部分。其中,每一个单元(逻辑单元),可以独立的完成任务,甚至可以独立的迁移到别的机房。
如图1所示,两个跨异地机房1和机房2,可以按照单元化架构拆分部署为4个单元,分别为Rzone112、Rzone113、Rzone114、Rzone115,流量接入层111根据某种统一划分维度和数据分片算法,将业务交易流量进行路由到对应单元进行交易处理,保障整个业务交易在单元内闭环。而对于像手机银行等应用缓存的会话数据,这类数据无法拆分且被单元内业务系统所依赖,如图1所示的会话共享装置116,在各单元内采用一主三备(一个KV-Master,三个KV-Slave)的存储节点,部署了一份全局共享会话数据,各单元业务系统跨单元访问主节点所在单元,实现会话数据各单元全局共享。
在上述架构体系中,会话共享装置116中主副本数据节点采用跨单元部署,有违单元化架构单元内闭环整体原则;跨异地单元主副本数据节点之间数据同步易因网络延时大带来数据丢失、低稳定性等问题;同时跨异地单元读写访问存在的网络延时,对于网络银行这类低延时要求的应用而言,极大的降低了用户体验感。
本公开提供的会话数据处理方法,旨在解决现有技术的如上技术问题。该会话数据处理方法,涉及单元化架构下跨单元的会话数据共享技术,可用于金融科技领域或其他相关领域,可以适用于图2所示的一种会话数据处理系统。
需要说明的是,本公开所提供的会话数据处理方法、装置、系统、电子设备及存储介质,可以用于金融科技领域或其他相关领域,也可用于除金融科技领域以外的任意领域。可以理解的是,本公开所提供的会话数据处理方法、装置、系统、电子设备及存储介质的应用领域不作限定。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
下面以具体地实施例对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。
图2为本公开实施例提供的一种会话数据处理系统的架构示意图,如图2所示,该会话数据处理系统包括:消息中间件集群100、多个代理组件200(代理组件200-1、200-2)、键值对KV存储组件300(存储组件300-1、300-2),其中:
消息中间件集群100,跨单元部署于单元化架构的机房内,上述单元化架构下每个单元Rzone(如图2所示的Rzone1、Rzone2)对应部署一个消息中间件Broker(如图2所示的Broker1、Broker2),上述消息中间件用于为上述单元的会话数据提供多个存储分区,每个上述存储分区用于持久化存储上述单元的会话数据。
多个代理组件200(代理组件200-1、200-2),每个上述单元部署一个代理组件,每个单元内部署的代理组件与对应的消息中间件连接,上述代理组件用于响应客户端的会话数据请求,确定与上述会话数据请求对应的键值,以从上述键值所属的目标存储分区中拉取上述会话数据,并写入上述单元的键值对KV存储组件300(存储组件300-1、300-2)。
本公开实施例中,针对上述会话共享装置的跨单元数据同步及访问进行优化,实现跨单元数据同步及单元内闭环访问原则。如图2所示,消息中间件集群100,跨单元部署于单元化架构的机房内,上述单元化架构下每个单元Rzone(如图2所示的Rzone1、Rzone2)对应部署一个消息中间件(如图2所示的Broker1、Broker2),上述消息中间件用于为上述单元的会话数据提供多个存储分区,每个上述存储分区用于持久化存储上述单元的会话数据。
多个代理组件200,每个上述单元部署一个代理组件(如图2所示的Rzone1中部署有代理组件200-1、Rzone2中部署有代理组件200-2),每个单元内部署的代理组件与对应的消息中间件连接,上述代理组件用于响应客户端的会话数据请求,确定与上述会话数据请求对应的键值,以从上述键值所属的目标存储分区中拉取上述会话数据,并写入Rzone1中部署的KV存储组件300-1,Rzone2中部署的KV存储组件300-2。
如下以一种可选的实施例,以图3所示的示意图为例,对两个机房之间,跨单元会话数据同步共享实现过程进行描述,如图3所示:机房1中部署有单元Rzone1和Rzone2,机房2中部署有单元Rzone3和Rzone4,需要说明的是,本公开实施例中,机房不限于如图3所示的机房1和机房2,还可以为多个机房,且每个机房内还可以部署有其他更多的单元Rzone。
在Rzone1、Rzone2、Rzone3和Rzone4中,每个单元分别独立部署有一个代理组件200(可以立即为代理节点Proxy)及其键值对KV存储组件300(可以理解为KV存储节点),同时,消息中间件集群100(包括多个消息中间件Broker)跨单元部署于单元化架构的机房内,每个单元Rzone内对应有一个消息中间件Broker(如图3所示的Broker1、Broker2、Broker3、Broker4),分别与本单元Rzone内的代理组件200(如图3所示的200-1、200-2、200-3、200-4)、KV存储组件300(如图3所示的300-1、300-2、300-3、300-4)连接。
本申请实施例中,各单元内业务交易数据优先访问代理组件,代理组件充当生产者角色将会话数据写入消息中间件集群,消息中间件集群负责会话数据的持久化,防止数据丢失;同时代理组件还可以充当消费者角色,用于负责消费消息中间件集群中的会话数据,以写入本单元内的KV存储组件,从而实现每个单元KV存储组件可以存储全量的会话数据,各单元内业务交易无需进行跨单元读写,进而,本公开实施例,还可以满足单元化架构下单元内交易闭环原则。
代理组件采用单元内多节点部署,即每个上述单元部署一个代理组件,用于负责接收本单元内业务系统的会话数据请求,对会话数据请求进行解析对应的键值,确定与上述会话数据请求对应的键值,以从上述键值所属的目标存储分区中拉取上述会话数据,并写入上述单元的键值对KV存储组件。
消息中间件集群,采用跨单元多副本集群的方式部署。并且,可以根据存储及并发访问性能容量,进行多分区存储,支持写入会话数据的持久化及多副本的高可用能力,弥补了KV存储组件中会话数据丢失的问题;同时本公开实施例中的多分区特性,可提升其并发访问性能以及存储容量的横向扩展能力。
采用本公开实施例所提供的路由分片规则,可以处理存储消息中间件集群中对应分区的会话类数据。由代理组件负责拉取目标存储分区中的会话数据,并写入KV存储节点,其中,每个单元包含一主多备的KV存储节点,主存储节点写入成功即返回成功结果,实现单元内的会话数据强一致,异地单元内的会话数据最终一致。
一种可选的实施例中,上述系统中,每个上述单元部署一个与上述代理组件连接的KV存储组件,用于接收上述代理组件写入的上述会话数据。
可选的,每个单元部署一个与上述代理组件,均连接有一个在该单元部署的KV存储组件,每个KV存储组件均用于接收该单元内的该代理组件写入的会话数据。
通过本公开实施例,可以实现每个单元的KV存储组件可以存储全量的会话数据,各单元内业务交易无需进行跨单元读写,并且本公开实施例,可以满足单元化架构下单元内交易闭环原则。
一种示例中,上述代理组件,还用于在将上述会话数据成功写入上述KV存储组件之后,向上述客户端返回会话数据写入成功结果。
通过本公开实施例,在将会话数据成功写入KV存储组件之后,向客户端返回会话数据写入成功结果,避免会话数据同步时的延时响应,可以提升用户体验感。
另一种示例中,上述代理组件,还用于对上述会话数据请求进行解析得到上述键值;对上述键值进行哈希槽计算,以得到上述键值所属的上述目标存储分区。
本公开实施例中,代理组件用于负责对键值的哈希槽计算,例如,可以预先自定义1024个槽,每个目标存储分区对应若干范围内的多个槽位,通过自定义路由算法:CRC32(key)&1023,对会话数据请求的键值进行哈希槽计算,得到会话数据请求的键值所属的目标存储分区。
另一种示例中,上述代理组件,还用于预先根据上述消息中间件的存储分区的数量,确定对应的数据分片数量,以将基于上述数据分片数量得到的分片后会话数据,按照键值索引方式写入对应的存储分区。
本公开实施例中,代理组件充当生产者时,可以将会话数据写入消息中间件的存储分区,通过自定义数据分片数量,将数据分片数量与消息中间件的存储分区的数量一一对应,进而可以按照键值索引方式,将会话数据请求写入对应的存储分区。
本公开实施例中,代理组件充当消费者时,可以从消息中间件中的各个存储分区拉取会话数据,并写入KV存储组件。同时,对于消费写入成功的数据记录消费位移,方便故障恢复时从指定位移开始消费数据,以保障会话数据不丢失。并按照分片路由算法进行分片路由,转发写入消息中间件集群的目标存储分区,以解决单点KV存储组件的承载能力不足问题,且无状态具备高可用能力,可支持水平横向扩展。
本公开实施例为单元化架构下会话数据实现跨单元的数据同步及共享提供解决方案,采用代理组件Proxy、消息中间件Broker集群、KV存储组件等,可保证在进行会话数据同步时,会话数据不丢失、不重传等重要特性;可以实现代理节点和存储节点的横向扩展,提升系统吞吐量;通过跨单元数据同步共享,实现业务请求在单元内闭环,满足单元化架构单元内闭环原则,避免跨单元异地读写高网络延时,提升用户体验感。
本公开提供一种会话数据处理方法,应用于上述的任意一种可选的会话数据处理系统,图4是本公开实施例所提供的一种会话数据处理方法的流程示意图,如图4所示,该方法包括:
S101,响应于客户端的会话数据请求,确定与上述会话数据请求对应的键值。
S102,确定上述键值在消息中间件中所属的目标存储分区。
S103,从上述键值所属的目标存储分区中拉取上述会话数据。
S104,将上述会话数据写入代理组件所在单元内的键值对KV存储组件。
本公开实施例中的执行主体为代理组件,每个单元分别独立部署代理组件及其键值对KV存储组件,同时将消息中间件集群,跨单元部署于单元化架构的机房内。
各单元内业务交易数据优先访问代理组件,代理组件充当生产者角色将会话数据写入消息中间件集群,消息中间件集群负责会话数据的持久化,防止数据丢失;同时代理组件还可以充当消费者角色,用于负责消费消息中间件集群中的会话数据,以写入本单元内的KV存储组件,从而实现每个单元KV存储组件可以存储全量的会话数据,各单元内业务交易无需进行跨单元读写,进而,本公开实施例,还可以满足单元化架构下单元内交易闭环原则。
代理组件,采用单元内多节点部署,即每个上述单元部署一个代理组件,用于负责接收本单元内业务系统的会话数据请求,对会话数据请求进行解析对应的键值,确定与上述会话数据请求对应的键值,以从上述键值所属的目标存储分区中拉取上述会话数据,并写入上述单元的键值对KV存储组件。
消息中间件集群,采用跨单元多副本集群部署。并根据要求的存储及并发访问性能容量多分区存储,支持写入会话数据的持久化及多副本的高可用能力,弥补了KV存储组件中会话数据丢失的问题;同时其多分区特性,可提升其并发访问性能以及存储容量的横向扩展能力。
采用本公开实施例所提供的路由分片规则,可以处理存储消息中间件集群中对应分区的会话类数据。由代理组件负责拉取目标存储分区中的会话数据,并写入KV存储组件,其中,每个单元包含一主多备的KV存储组件,主存储节点写入成功即返回成功结构,实现单元内的会话数据强一致,异地单元内的会话数据最终一致。
一种示例中,如图5所示,上述方法还包括:
S201,在将上述会话数据成功写入上述KV存储组件之后,向上述客户端返回会话数据写入成功结果。
可选的,每个单元部署一个与上述代理组件,均连接有一个在该单元部署的KV存储组件,每个KV存储组件均用于接收该单元内的该代理组件写入的会话数据。
通过本公开实施例,可以实现每个单元KV存储组件可以存储全量的会话数据,各单元内业务交易无需进行跨单元读写,并且本公开实施例,还满足单元化架构下单元内交易闭环原则。
通过本公开实施例,在将会话数据成功写入KV存储组件之后,向客户端返回会话数据写入成功结果,避免会话数据同步时的延时响应,可以提升用户体验感。
一种示例中,确定上述键值在消息中间件中所属的目标存储分区,包括:
S301,对上述会话数据请求进行解析得到上述键值。
S302,对上述键值进行哈希槽计算,以得到上述键值所属的上述目标存储分区。
本公开实施例中,代理组件用于负责对键值的哈希槽计算,例如,可以预先自定义1024个槽,每个目标存储分区对应若干范围内的多个槽位,通过自定义路由算法:CRC32(key)&1023,对会话数据请求的键值进行哈希槽计算,得到会话数据请求的键值所属的目标存储分区。
一种示例中,上述方法还包括:
S401,获取上述消息中间件的存储分区的数量。
S3402,根据上述消息中间件的存储分区的数量,确定对应的数据分片数量。
S403,基于上述数据分片数量将上述会话数据处理为分片后会话数据;
S404,按照键值索引方式将上述分片后会话数据写入对应的上述目标存储分区。
本公开实施例中,代理组件充当生产者时,可以将会话数据写入消息中间件的存储分区,通过自定义数据分片数量,将数据分片数量与消息中间件的存储分区的数量一一对应,进而可以按照键值索引方式,将会话数据请求写入对应的存储分区。
本公开实施例中,代理组件充当消费者时,可以从消息中间件中的各个存储分区拉取会话数据,并写入KV存储组件。同时,对于消费写入成功的数据记录消费位移,方便故障恢复时从指定位移开始消费数据,以保障会话数据不丢失。并按照分片路由算法进行分片路由,转发写入消息中间件集群的目标存储分区,以解决单点KV存储组件的承载能力不足问题,且无状态具备高可用能力,可支持水平横向扩展。
本公开实施例为单元化架构下会话数据实现跨单元的数据同步及共享提供解决方案,采用代理组件Proxy、消息中间件Broker集群、KV存储组件等,可保证在进行会话数据同步时,会话数据不丢失、不重传等重要特性。可实现代理节点和存储节点的横向扩展,提升系统吞吐量;通过跨单元数据同步共享,实现业务请求在单元内闭环,满足单元化架构单元内闭环原则,避免跨单元异地读写高网络延时,提升用户体验感。
根据本公开的一个或多个实施例,提供了一种会话数据处理装置,图6为本公开实施例提供的一种会话数据处理装置的结构框图,如图6所示,上述装置包括:
第一确定模块601,用于响应于客户端的会话数据请求,确定与上述会话数据请求对应的键值;
第二确定模块602,用于确定上述键值在消息中间件中所属的目标存储分区;
拉取模块603,用于从上述键值所属的目标存储分区中拉取上述会话数据;
写入模块604,用于将上述会话数据写入代理组件所在单元内的键值对KV存储组件。
根据本公开的一个或多个实施例,上述装置还包括:
响应单元,用于在将上述会话数据成功写入上述KV存储组件之后,向上述客户端返回会话数据写入成功结果。
根据本公开的一个或多个实施例,上述第二确定模块包括:
解析单元,用于对上述会话数据请求进行解析得到上述键值;
计算单元,用于对上述键值进行哈希槽计算,以得到上述键值所属的上述目标存储分区。
根据本公开的一个或多个实施例,上述装置还包括:
获取单元,用于获取上述消息中间件的存储分区的数量;
确定单元,用于根据上述消息中间件的存储分区的数量,确定对应的数据分片数量;
分片处理单元,用于基于上述数据分片数量将上述会话数据处理为分片后会话数据;
写入单元,用于按照键值索引方式将上述分片后会话数据写入对应的上述目标存储分区。
在示例性实施例中,本公开实施例还提供了一种电子设备,包括:处理器,以及与上述处理器连接的存储器;
上述存储器存储计算机执行指令;
上述处理器执行上述存储器存储的计算机执行指令,以实现如任一项上述的方法。
在示例性实施例中,本公开实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机执行指令,上述计算机执行指令被处理器执行时用于实现如任一项上述的方法。
为了实现上述实施例,本公开实施例还提供了一种电子设备。
参考图7,其示出了适于用来实现本申请实施例的电子设备700的结构示意图,该电子设备700可以为终端设备或服务器。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑(Portable Android Device,简称PAD)、便携式多媒体播放器(Portable MediaPlayer,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700可以包括处理装置(例如中央处理器、图形处理器等)701,其可以根据存储在只读存储器(Read Only Memory ,简称ROM)702中的程序或者从存储装置708加载到随机访问存储器(Random Access Memory ,简称RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有电子设备700操作所需的各种程序和数据。处理装置701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
通常,以下装置可以连接至I/O接口705:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置706;包括例如液晶显示器(Liquid CrystalDisplay ,简称LCD)、扬声器、振动器等的输出装置707;包括例如磁带、硬盘等的存储装置708;以及通信装置709。通信装置709可以允许电子设备700与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备700,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network ,简称LAN)或广域网(Wide Area Network ,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
Claims (12)
1.一种会话数据处理系统,其特征在于,所述系统包括:
消息中间件集群,跨单元部署于单元化架构的机房内,所述单元化架构下每个单元对应部署一个消息中间件,所述消息中间件用于为所述单元的会话数据提供多个存储分区,每个所述存储分区用于持久化存储所述单元的会话数据;
多个代理组件,每个所述单元部署一个代理组件,每个单元内部署的代理组件与对应的消息中间件连接,所述代理组件用于响应客户端的会话数据请求,确定与所述会话数据请求对应的键值,以从所述键值所属的目标存储分区中拉取所述会话数据,并将所述会话数据写入所述单元的键值对KV存储组件。
2.根据权利要求1所述的会话数据处理系统,其特征在于,所述系统还包括:
多个KV存储组件,每个所述单元部署一个与所述代理组件连接的KV存储组件,用于接收所述代理组件写入的所述会话数据。
3.根据权利要求1所述的会话数据处理系统,其特征在于,
所述代理组件,还用于在将所述会话数据成功写入所述KV存储组件之后,向所述客户端返回会话数据写入成功结果。
4.根据权利要求1所述的会话数据处理系统,其特征在于,
所述代理组件,还用于对所述会话数据请求进行解析得到所述键值;对所述键值进行哈希槽计算,以得到所述键值所属的所述目标存储分区。
5.根据权利要求1所述的会话数据处理系统,其特征在于,
所述代理组件,还用于预先根据所述消息中间件的存储分区的数量,确定对应的数据分片数量,以将基于所述数据分片数量将所述会话数据处理为分片后会话数据,并按照键值索引方式将所述分片后会话数据写入对应的所述目标存储分区。
6.一种会话数据处理方法,其特征在于,所述方法包括:
响应于客户端的会话数据请求,确定与所述会话数据请求对应的键值;
确定所述键值在消息中间件中所属的目标存储分区;
从所述键值所属的目标存储分区中拉取所述会话数据;
将所述会话数据写入代理组件所在单元内的键值对KV存储组件。
7.根据权利要求6所述的会话数据处理方法,其特征在于,所述方法还包括:
在将所述会话数据成功写入所述KV存储组件之后,向所述客户端返回会话数据写入成功结果。
8.根据权利要求6所述的会话数据处理方法,其特征在于,确定所述键值在消息中间件中所属的目标存储分区,包括:
对所述会话数据请求进行解析得到所述键值;
对所述键值进行哈希槽计算,以得到所述键值所属的所述目标存储分区。
9.根据权利要求6至8中任意一项所述的会话数据处理方法,其特征在于,所述方法还包括:
获取所述消息中间件的存储分区的数量;
根据所述消息中间件的存储分区的数量,确定对应的数据分片数量;
基于所述数据分片数量将所述会话数据处理为分片后会话数据;
按照键值索引方式将所述分片后会话数据写入对应的所述目标存储分区。
10.一种会话数据处理装置,其特征在于,所述装置包括:
第一确定模块,用于响应于客户端的会话数据请求,确定与所述会话数据请求对应的键值;
第二确定模块,用于确定所述键值在消息中间件中所属的目标存储分区;
拉取模块,用于从所述键值所属的目标存储分区中拉取所述会话数据;
写入模块,用于将所述会话数据写入代理组件所在单元内的键值对KV存储组件。
11.一种电子设备,其特征在于,包括:处理器,以及与所述处理器连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求6至9中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求6至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310403179.4A CN116155922B (zh) | 2023-04-17 | 2023-04-17 | 会话数据处理方法、装置、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310403179.4A CN116155922B (zh) | 2023-04-17 | 2023-04-17 | 会话数据处理方法、装置、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116155922A true CN116155922A (zh) | 2023-05-23 |
CN116155922B CN116155922B (zh) | 2023-07-04 |
Family
ID=86358470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310403179.4A Active CN116155922B (zh) | 2023-04-17 | 2023-04-17 | 会话数据处理方法、装置、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116155922B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100106914A1 (en) * | 2008-10-26 | 2010-04-29 | Microsoft Corporation | Consistency models in a distributed store |
CN103268318A (zh) * | 2013-04-16 | 2013-08-28 | 华中科技大学 | 一种强一致性的分布式键值数据库系统及其读写方法 |
US20170019485A1 (en) * | 2015-01-21 | 2017-01-19 | Oracle International Corporation | System and method for session handling in a multitenant application server environment |
CN108737548A (zh) * | 2018-05-24 | 2018-11-02 | 南京邮电大学 | 分布式web微服务容器集群架构系统及其实现方法 |
CN110209505A (zh) * | 2019-03-06 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种数据请求方法及相关设备 |
CN112527421A (zh) * | 2020-12-28 | 2021-03-19 | 平安普惠企业管理有限公司 | 业务调用方法、装置、设备及存储介质 |
CN112965818A (zh) * | 2021-02-26 | 2021-06-15 | 平安普惠企业管理有限公司 | 一种服务集群单元化分组方法、装置、设备以及介质 |
CN113326030A (zh) * | 2021-05-26 | 2021-08-31 | 北京京东拓先科技有限公司 | 一种业务请求的处理方法和装置 |
US20220232075A1 (en) * | 2014-06-04 | 2022-07-21 | Pure Storage, Inc. | Distributed protocol endpoint services for data storage systems |
-
2023
- 2023-04-17 CN CN202310403179.4A patent/CN116155922B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100106914A1 (en) * | 2008-10-26 | 2010-04-29 | Microsoft Corporation | Consistency models in a distributed store |
CN103268318A (zh) * | 2013-04-16 | 2013-08-28 | 华中科技大学 | 一种强一致性的分布式键值数据库系统及其读写方法 |
US20220232075A1 (en) * | 2014-06-04 | 2022-07-21 | Pure Storage, Inc. | Distributed protocol endpoint services for data storage systems |
US20170019485A1 (en) * | 2015-01-21 | 2017-01-19 | Oracle International Corporation | System and method for session handling in a multitenant application server environment |
CN108737548A (zh) * | 2018-05-24 | 2018-11-02 | 南京邮电大学 | 分布式web微服务容器集群架构系统及其实现方法 |
CN110209505A (zh) * | 2019-03-06 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种数据请求方法及相关设备 |
CN112527421A (zh) * | 2020-12-28 | 2021-03-19 | 平安普惠企业管理有限公司 | 业务调用方法、装置、设备及存储介质 |
CN112965818A (zh) * | 2021-02-26 | 2021-06-15 | 平安普惠企业管理有限公司 | 一种服务集群单元化分组方法、装置、设备以及介质 |
CN113326030A (zh) * | 2021-05-26 | 2021-08-31 | 北京京东拓先科技有限公司 | 一种业务请求的处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116155922B (zh) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12019652B2 (en) | Method and device for synchronizing node data | |
CN110909521B (zh) | 在线文档信息的同步处理方法、装置及电子设备 | |
CN110704000A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114358921A (zh) | 系统切换方法、装置、设备、介质和程序产品 | |
WO2021203918A1 (zh) | 用于处理模型参数的方法和装置 | |
CN111198777A (zh) | 数据处理方法、装置、终端及存储介质 | |
CN110134737A (zh) | 数据变化监听方法及装置、电子设备和计算机可读存储介质 | |
CN111400068B (zh) | 接口的控制方法、装置、可读介质和电子设备 | |
US20240146978A1 (en) | Functional component loading method and data processing method for video live-streaming, and device | |
CN111427918A (zh) | 交易明细数据比对方法及装置 | |
CN111163336A (zh) | 视频资源推送方法、装置、电子设备及计算机可读介质 | |
CN116155922B (zh) | 会话数据处理方法、装置、系统、电子设备及存储介质 | |
CN110545313B (zh) | 消息推送控制方法、装置及电子设备 | |
CN112486825A (zh) | 多泳道环境架构系统、消息消费方法、装置、设备及介质 | |
CN109614089B (zh) | 数据访问代码的自动生成方法、装置、设备及存储介质 | |
CN117130998A (zh) | 日志信息的处理方法、装置、设备及存储介质 | |
WO2020173381A1 (zh) | 数据互通方法、装置、终端及存储介质 | |
CN109840168A (zh) | 软件恢复方法、装置、终端和介质 | |
CN106851535B (zh) | 多系统共享蓝牙的方法及装置 | |
CN113391882B (zh) | 虚拟机内存管理方法、装置、存储介质及电子设备 | |
CN112463410B (zh) | 一种分布式消息架构管理方法、平台及电子设备 | |
CN110324425B (zh) | 混合云交易路由处理方法及装置 | |
CN114625716A (zh) | 数据库分库分表扩容方法、装置及计算机可读存储介质 | |
CN111182062A (zh) | 服务多活调用方法、系统及电子设备 | |
CN112100159A (zh) | 数据处理方法、装置、电子设备和计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |