一种数据读写方法及系统技术方案

技术编号:8489708 阅读:171 留言:0更新日期:2013-03-28 08:49
本发明专利技术公开了一种数据读写方法,包括:划分多个分组,每个分组均能实现读服务和写服务,用户需要读写数据时,查找就近分组;判断查找到的就近分组是否可用,判定查找到的就近分组可用,则访问所述就近分组,通过相应的分组接口进行数据读写;判定查找到的就近分组不可用,则访问其他分组,通过相应的分组接口进行数据读写。本发明专利技术还相应地公开了一种数据读写系统。本发明专利技术能够提高数据写服务的可靠性,提高服务质量及用户体验,且便于扩容升级。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及ー种数据读写方法及系统
技术介绍
随着网络技术的发展,web相关产品越来越多,竞争也越来越激烈,在服务器宕机、互联网数据中兴(IDC)故障、网络故障等情况下,web产品是否仍能提供高质量的服务,是用户在选择web产品时优先考虑的因素之一,換言之,提供高可靠性的容灾服务,是web产品制胜的一大法宝。现有大多数web产品的数据存储服务都是采用主备方式来容灾,或者通过主写备读的方式来处理,但是,现有的主备方式只通过多个备用设备保证了数据读取容灾,而向主用设备写数据仍存在单点隐患,一旦主用设备或其所在的IDC出现故障,就会导致数据写 失败,从而会严重降低服务质量并影响用户体验。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供ー种数据读写方法及系统,能够提高数据写服务的可靠性,提高服务质量及用户体验。为达到上述目的,本专利技术的技术方案是这样实现的ー种数据读写方法,划分多个分组,每个分组均能实现读服务和写服务,该方法包括用户需要读写数据时,查找就近分组;判断查找到的就近分组是否可用,判定查找到的就近分组可用,则访问所述就近分组,通过相应的分组接ロ进行数据读写;判定查找到的就近分组不可用,则访问其他分组,通过相应的分组接ロ进行数据读写。该方法还包括数据在分组存储后,所述分组有选择性地向所述分组以外的至少一个分组同步所述存储的数据。该方法还包括在向分组写入数据的过程中,分组接ロ或接ロ链路发生故障,则所述分组接ロ向其他分组接ロ转发需要写入的数据,或者,切换到其他分组接ロ写入数据。ー种数据读写系统,包括控制模块、多个分组、以及与分组相对应的分组接ロ ;其中,所述控制模块,用于在用户需要读写数据时,查找就近分组,并判断查找到的就近分组是否可用,判定查找到的就近分组可用,则访问所述就近分组,通过相应的分组接ロ进行数据读写;判定查找到的就近分组不可用,则访问其他分组,通过相应的分组接ロ进行数据读写。所述每个分组至少包括读服务和写服务,该方法还包括数据通过写服务在分组存储后,所述分组的写服务有选择性地向所述分组以外的至少ー个分组的写服务同步所述存储的数据。所述分组接ロ,还用于在分组接ロ或接ロ链路发生故障吋,向其他分组接ロ转发需要写入的数据。所述控制模块,还用于在分组写入数据的过程中,分组接ロ或接ロ链路发生故障时,控制切换到其他分组接ロ写入数据。所述分组包括写服务、读服务、主库、备库和缓存;其中,数据写入时,写服务向主库写入数据,数据写入后,主库向备库同步数据,数据读取吋,读服务首先从缓存中读取数据,如果缓存没有,则从备库读取数据,返回结果的同时将该数据同步到缓存中,以供下次读取。所述分组包括写服务、读服务、缓存和数据库;其中,应用程序调用写服务,TTC 数据会自动同步到数据库中,调用读服务时,如果TTC缓存中有则直接返回,如果没有则向数据库查询,然后将结果更新到缓存再返回。所述分组包括写接ロ、读接ロ、数据库、至少ー个读服务和与读服务对应的缓存;其中,写操作直接通过写接ロ更新到数据库中,写接ロ同时将写消息转发给读接ロー份,读接ロ将该写消息转发到对应的读服务,以便将该写消息更新到缓存中。本专利技术提出的数据读写方法及系统,划分多个分组,每个分组均能实现读服务和写服务,用户需要读写数据时,查找就近分组;判断查找到的就近分组是否可用,判定查找到的就近分组可用,则访问所述就近分组,通过相应的分组接ロ进行数据读写;判定查找到的就近分组不可用,则访问其他分组,通过相应的分组接ロ进行数据读写。本专利技术能够提高数据写服务的可靠性,提高服务质量及用户体验,且便于扩容升级。附图说明图1为本专利技术数据读写方法流程示意图;图2为Memchache缓存方式的原理示意图;图3为TTC缓存方式的原理示意图;图4为全量分离缓存方式的原理示意图;图5为本专利技术以两个分组为例,相应于图2的系统结构示意图;图6为本专利技术以两个分组为例,相应于图3的系统结构示意图;图7为本专利技术以两个分组为例,相应于图4的系统结构示意图。具体实施例方式本专利技术的基本思想是划分多个分组,每个分组均能实现读服务和写服务,用户需要读写数据时,查找就近分组;判断查找到的就近分组是否可用,判定查找到的就近分组可用,则访问所述就近分组,通过相应的分组接ロ进行数据读写;判定查找到的就近分组不可用,则访问其他分组,通过相应的分组接ロ进行数据读写。本专利技术结合读写分离、分组(set)模型、分布式策略,针对海量处理、高可靠性等特点提供了一个完整的数据存储方案,本专利技术中,分组是ー组相关的资源的组合,可以提供相对固定的一定数量的用户服务,也是ー个部署単位。图1为本专利技术数据读写方法流程示意图,如图1所示,该方法包括步骤101 :用户需要读写数据。步骤102 :查找就近分组。本专利技术中,划分多个分组,每个分组均能实现读服务和写服务,且每个分组有ー个唯一编号,存储数据时每个数据项的编号(key)都以其分组编号为前缀,这样可以保证数据的全局卩隹一'注。步骤103 :判断查找到的就近分组是否可用,如果查找到的就近分组可用,执行步骤104 ;如果查找到的就近分组不可用,则执行步骤105。需要说明的是,查找到的就近分组可以为ー个也可以为多个,查找到多个就近分组时,依次对各个就近分组进行判断,直到找到可用的就近分组或遍历所有查找到的就近分组,停止判断。 步骤104 :访问所述就近分组,进行数据读写。步骤105 :访问其他分组,进行数据读写。需要说明的是,本专利技术中,数据在某分组存储后,该分组可以有选择性地向该分组以外的至少ー个分组同步所述存储的数据,并有同步失败的重做机制,例如,该分组将同步失败的ニ进制协议包记录到文件中,文件的格式为开始标记(Oxfd58646c)+unix时间戳+包长+消息包+结束标记(0x6c6458fd),文件名为IP地址+端ロ +同步方式(tcp为I或udp为2)+日期+小时(0-23) +序列号(0-3,因为每15分钟ー个文件),然后有消息同步工具根据文件名和文件内的内容进行实时同步,每同步ー个消息包,记录该文件下ー个协议包的文件行数,以便同步工具重启时,可以直接从该行开始处理;如果已经处理到最后ー行,毎秒检查该文件是否有新包写入,直至有下一个失败文件产生;如果同步协议包同步失败,则告警,并不断重试直至成功。需要说明的是,如果在向分组写入数据的过程中,分组接ロ或接ロ链路发生故障,则该分组接ロ需要向其他分组接ロ转发需要写入的数据,或者,系统切换到其他分组接ロ写入数据。一般的,将数据的读写服务分离,使读服务或写服务都方便各自扩展,读写分离根据业务不同主要有下面三种方式图2为Memchache缓存方式的原理示意图,如图2所示,数据写入时,写服务向主库写入数据,数据写入后,主库向备库同步数据,数据读取吋,读服务首先从缓存中读取数据,如果缓存没有,则从备库读取数据,返回结果的同时将该数据同步到缓存中,以供下次读取。图3为TTC(tencent table cache)缓存方式的原理示意图,如图3所示,TTC为公司的数据库缓存服务,有独立的接口和api,应用程序调用写服务,TTC数据会自动同步到数据库中,调用读服务时,如果TTC缓存中有则直接返回,如果没有则向数据库(DB)查询,然后本文档来自技高网...

【技术保护点】
一种数据读写方法,其特征在于,划分多个分组,每个分组均能实现读服务和写服务,该方法包括:用户需要读写数据时,查找就近分组;判断查找到的就近分组是否可用,判定查找到的就近分组可用,则访问所述就近分组,通过相应的分组接口进行数据读写;判定查找到的就近分组不可用,则访问其他分组,通过相应的分组接口进行数据读写。

【技术特征摘要】

【专利技术属性】
技术研发人员:闫清岭沃英杰范禹戴魏巍
申请(专利权)人:腾讯科技北京有限公司
类型:发明
国别省市:

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

1