一种数据传输方法、装置、与服务器制造方法及图纸

技术编号:20369952 阅读:25 留言:0更新日期:2019-02-16 20:05
本发明专利技术提出一种数据处理方法、装置与服务器,所述方法包括如下步骤:接收客户端发送的用户请求;以日志形式记录所述用户请求,并在记录完成之后读取该日志;在抽象网络层的异步远程调用服务框架下进行强一致性的网络收发;调用状态机引擎接收强一致性回调,以使得所述状态机引擎执行所述用户请求。

A Data Transfer Method, Device and Server

The invention provides a data processing method, device and server, which comprises the following steps: receiving user requests sent by clients; recording the user requests in the form of logs and reading the logs after the completion of the logs; sending and receiving network with strong consistency under the asynchronous remote call service framework of abstract network layer; and receiving strong consistency by calling state machine engine. Callback to enable the state machine engine to execute the user request.

【技术实现步骤摘要】
一种数据传输方法、装置、与服务器
本专利技术涉及数据库
,特别涉及一种数据处理方法、装置与服务器。
技术介绍
Redis的主从复制采用异步复制方法,从服务器周期性向主服务器报告复制流的处理进度。Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset--有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是人Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了Master-slave(主从)同步。Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。然而,Redis没有提供强一致同步模式,无法覆盖银行、保险等金融级应用场景中。
技术实现思路
为了解决现有技术中存在的技术问题,本专利技术实施例提供了一种数据处理方法、装置、服务器与存储介质。所述技术方案如下:一方面,提供一种数据处理方法,包括:接收客户端发送的用户请求;以日志形式记录所述用户请求,并在记录完成之后读取该日志;在抽象网络层的异步远程调用服务框架下进行强一致性的网络收发;调用状态机引擎接收强一致性回调,以使得所述状态机引擎执行所述用户请求。一方面,提供一种数据处理装置,包括:接收模块,用于接收客户端发送的用户请求;日志读取模块,用于以日志形式记录所述用户请求,并在记录完成之后读取该日志;强一致收发模块,用于在抽象网络层的异步远程调用服务框架下进行强一致性的网络收发;调用模块,用于调用状态机引擎接收强一致性回调,以使得所述状态机引擎执行所述用户请求。另一方面,提供一种服务器,所述服务器包含前述的装置。另一方面,提供一种存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现前述的数据处理方法。本专利技术实施例提供的技术方案带来的有益效果包括:通过强一致性收发可以保证数据处理的高安全性和高可靠性,保证数据处理过程可以用于银行、保险等金融级应用场景,以及其它需要严格安全等级的场景。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种分布式数据管理单元示意图;图2是本专利技术实施例提供的采用公共强一致性算法和日志库的网络构架示意图;图3是本专利技术实施例提供的与采用公共强一致性算法和日志库的网络构架示意图对应的分布式数据管理单元示意图;图4是本专利技术实施例提供的数据处理方法步骤流程示意图;图5是本专利技术实施例提供的数据处理处理方法的交互过程示意图;图6是本专利技术实施例提供的心跳包发送路径示意图;图7是本专利技术实施例提供的心跳包发送交互过程示意图;图8是本专利技术实施例提供的节点生命周期示意图;图9是本专利技术实施例提供的数据处理装置原理框图;图10是本专利技术实施例提供的接收模块原理框图;图11是本专利技术实施例提供的日志读取模块原理框图;图12是本专利技术实施例提供的强一致收发模块原理框图;图13是本专利技术实施例提供的主从同步模块原理框图;图14是本专利技术实施例提供的调用模块的原理框图;图15是本专利技术实施例提供的包含结果返回模块的数据处理装置原理框图;图16是本专利技术实施例提供的强一致收发模块的其他可选子模块原理框图;图17是本专利技术实施例提供的服务器结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。在本专利技术的一个实施例中,如图1所示,提出一种分布式数据管理单元,每个数据管理单元称为分片(shard),图1展示的是一台机器上的分片情况。每个业务ID(Bid)包含一个副本集(replicatset),一个副本集中又包含若干个分片(shard),每个分片管理一定大小的共享内存块,底层引擎把这些内存快进行组织管理已实现Redis各接口的功能。由分片ID(shardid)可以计算出分片所属服务所在的CPUID。每个副本集的分片原则上分布于不同的机器,即若此时整个副本集中有3台机器A、B、C,创建一个Bid时,分别在A、B、C各创建一个分片,并指定主备角色后,便可以接收用户请求并服务了。根据以上的描述,图1中不同的分片第一分片(shard-0)、第二分片(shard-1)、第三分片(shard-2)、第四分片(shard-3)分属于不同的业务,而用户请求是随机发送到任意CPU的,这时接收用户请求的CPU所属的服务若通过查询路由发现自己并不是目标分片,则把请求通过递交函数(submit)发送到目标CPU,由目标CPU上的服务进行处理。每个分片还对应各自的共享内存第一共享内存(shm-0)、第二共享内存(shm-1)、第三共享内存(shm-2)、第四共享内存(shm-3),共享内存用于存储关键内容(keyvalue)。以下是转发的请求代码片段:Returnsubmit(ctx->CPU(),[this,ctx]){Process(ctx);})在一些金融业务场景中,对于数据各副本集的一致性要求很高,图1所示的构架还无法完全保持副本之间的强一致特性。在一个实施例中,如图2所示,为了保证兼容性,没有直接基于异步远程调用服务框架(RPC)来实现日志复制和一致性算法,而是采用内构公共强一致性算法和日志库(libraft)来实现日志复制和一致性算法协议中的基本逻辑和接口调用。公共强一致性算法和日志库(libraft)提供常规的同步接口,由于异步远程调用服务框架无法直接调用阻塞式的磁盘IO和网络IO,所以强一致逻辑的实现难点主要在于异步框架和同步接口的结合。因此,在强一致的逻辑中,基于异步远程调用服务框架(RPC)的异步磁盘IO、网络IO及状态机引擎,并把这些异步实现封装成同步接口供公共强一致性算法和日志库(libraft)回调,这样可以实现主从分片的强一致复制。与图2所对应,图3展示了一种分布式数据管理单元,结合图2与图3,在分片的相同级别增加一个强一致性分片对象。强一致性分片对象可以被视为一个强一致性传输协议中的节点(Node),具有强一致性传输协议中单个节点的完整功能,在每个强一致性分片包中包含一个公共强一致性算法和日志库(libraft),包含强一致性基本逻辑的同步接口、磁盘和网络IO逻辑、状态机引擎(FSM)实现、供公共强一致性算法和日志库(libra本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,所述方法包括如下步骤:接收客户端发送的用户请求;以日志形式记录所述用户请求,并在记录完成之后读取该日志;在抽象网络层的异步远程调用服务框架(RPC)下进行强一致性的网络收发;调用状态机引擎(FSM)接收强一致性回调,以使得所述状态机引擎执行所述用户请求。

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括如下步骤:接收客户端发送的用户请求;以日志形式记录所述用户请求,并在记录完成之后读取该日志;在抽象网络层的异步远程调用服务框架(RPC)下进行强一致性的网络收发;调用状态机引擎(FSM)接收强一致性回调,以使得所述状态机引擎执行所述用户请求。2.根据权利要求1所述的方法,其特征在于,所述接收客户端发送的用户请求包括:由主节点接收来自客户端的用户请求,当从节点接收到来自客户端的请求时,拒绝所述请求,并向客户端返回所述主节点的网络地址。3.根据权利要求1所述的方法,其特征在于,以日志形式记录所述用户请求,并在记录完成之后读取该日志包括:接收用户请求;将所述用户请求序列化为请求日志;向磁盘读写逻辑发送日志落盘请求;接收磁盘读写逻辑返回的信息,当落盘完成时,读出该落盘日志。4.根据权利要求1所述的方法,其特征在于,在抽象网络层的异步远程调用服务框架(RPC)下进行强一致性的网络收发包括:主节点将读出的日志同步给从节点;所述从节点对所述日志进行落盘操作,并在成功落盘时,通知所述主节点。5.根据权利要求4所述的方法,其特征在于,所述主节点将读出的日志同步给从节点步骤包括:主节点向从节点发送心跳包;当没有需要同步的日志时,心跳包的内容为空;当需要同步日志时,则带上需要同步的日志;主节点判断从节点的...

【专利技术属性】
技术研发人员:燕皓阳赵森苏仙科曹宝山
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1