数据获取方法和装置制造方法及图纸

技术编号:10964205 阅读:62 留言:0更新日期:2015-01-28 16:32
本公开是关于一种数据获取方法和装置。所述方法包括:从用户发送的数据请求中解析出用户标识;获取所述用户标识对应的数据版本;根据所述数据版本获取所述数据请求所请求的数据;将所述数据返回给用户。本公开在实现灰度发布的过程中,通过将数据版本获取的逻辑过程与数据版本的存储分离,可以指定任意发布对象,可用性强。

【技术实现步骤摘要】
【专利摘要】本公开是关于一种数据获取方法和装置。所述方法包括:从用户发送的数据请求中解析出用户标识;获取所述用户标识对应的数据版本;根据所述数据版本获取所述数据请求所请求的数据;将所述数据返回给用户。本公开在实现灰度发布的过程中,通过将数据版本获取的逻辑过程与数据版本的存储分离,可以指定任意发布对象,可用性强。【专利说明】数据获取方法和装置
本公开涉及通信
,尤其涉及一种数据获取方法和装置。
技术介绍
在互联网产品发布新版本时,通常会采用灰度发布的方式,让一部分用户继续使用老版本,一部分用户开始使用新版本。针对开始使用新版本的用户,可以在其获取数据时,通过将新版本的数据返回给用户以实现新版本的发布。如果这部分用户对发布的新版本没有什么反对意见,那么可以将所有用户都迁移到新版本上。灰度发布可以保证整体系统的稳定,能够在早期就发现、解决问题。 要实现灰度发布,相关技术中可以在代理服务器的Nginx配置文件中进行配置,根据用户IP地址的权重或IP哈希值来区分使用老版本和新版本的用户。然而,这样的实现方式只能将用户进行大致分类,无法针对特定的用户发布新版本,可用性较差。 相关技术还可以利用Lua作为Nginx插件,在Lua中进行配置,比如:在Lua中配置需要使用新版本的用户IP地址。然而,这样的实现方案需要事先确定好配置,发布的对象较为单一、固定,当需要更改发布对象时,需要修改配置,可用性也较差。同时,如果配置出现故障,将直接导致新版本发布失败。
技术实现思路
为克服相关技术中存在的问题,本公开提供一种数据获取方法和装置,以解决灰度发布可用性差的问题。 根据本公开实施例的第一方面,提供一种数据获取方法,包括: 从用户发送的数据请求中解析出用户标识; 获取所述用户标识对应的数据版本; 根据所述数据版本获取所述数据请求所请求的数据; 将所述数据返回给用户。 可选的,所述获取所述用户标识对应的数据版本包括: 判断内存数据库中是否保存有所述用户标识对应的数据版本; 如果内存数据库中保存有所述用户标识对应的数据版本,则在所述内存数据库中获取所述用户标识对应的数据版本。 可选的,还包括: 如果内存数据库中没有保存所述用户标识对应的数据版本,则获取默认数据版本以作为所述用户标识对应的数据版本。 可选的,所述根据所述数据版本获取所述数据请求所请求的数据包括: 判断是否存在支持所述数据版本的业务服务器; 如果存在支持所述数据版本的业务服务器,则从支持所述数据版本的业务服务器上获取所述数据请求所请求的数据。 可选的,还包括: 如果不存在支持所述数据版本的业务服务器,则从支持默认数据版本的业务服务器上获取所述数据请求所请求的数据。 可选的,所述从用户发送的数据请求中解析出用户标识包括: 从所述数据请求中解析出用户的IP地址或者cookie作为所述用户标识。 根据本公开实施例的第二方面,提供一种数据获取装置,包括: 标识解析单元,用于从用户发送的数据请求中解析出用户标识; 版本获取单元,用于获取所述用户标识对应的数据版本; 数据获取单元,用于根据所述数据版本获取所述数据请求所请求的数据; 数据返回单元,用于将所述数据返回给用户。 可选的,所述版本获取单元包括: 第一判断子单元,用于判断内存数据库中是否保存有所述用户标识对应的数据版本; 第一获取子单元,用于在内存数据库中保存有所述用户标识对应的数据版本时,在所述内存数据库中获取所述用户标识对应的数据版本。 可选的,所述版本获取单元还包括: 第二获取子单元,用于在内存数据库中没有保存所述用户标识对应的数据版本时,获取默认的数据版本以作为所述用户标识对应的数据版本。 可选的,所述数据获取单元包括: 第二判断子单元,用于判断是否存在支持所述数据版本的业务服务器; 第三获取子单元,用于在存在支持所述数据版本的业务服务器时,则从支持所述数据版本的业务服务器上获取所述数据请求所请求的数据。 可选的,所述数据获取单元还包括: 第四获取子单元,用于在不存在支持所述数据版本的业务服务器时,从支持默认的数据版本的业务服务器上获取所述数据请求所请求的数据。 可选的,所述标识解析单元包括: 标识解析子单元,用于从所述数据请求中解析出用户的IP地址或者cookie作为所述用户标识。 根据本公开实施例的第三方面,提供一种数据获取装置,包括: 处理器; 用于存储处理器可执行指令的存储器; 其中,所述处理器被配置为: 从用户发送的数据请求中解析出用户标识; 获取所述用户标识对应的数据版本; 根据所述数据版本获取所述数据请求所请求的数据; 将所述数据返回给用户。 本公开的实施例提供的技术方案可以包括以下有益效果: 本公开在接收到用户发送的数据请求时,根据从所述数据请求中解析出的用户标识以获取对应的数据版本,进而可以为用户获取该数据版本的数据,本公开在实现灰度发布的过程中,将数据版本获取的逻辑过程与数据版本的存储分离,可以指定任意发布对象,可用性强。 本公开可以将用户标识和数据版本的对应关系存储在内存数据库中,能够实现持久化存储,更加安全。 本公开可以从内存数据库中获取用户标识对应的数据版本,读取速度快,不会影响用户数据请求的响应时间。同时,在本实施例中,由于数据版本获取的逻辑过程与数据版本的存储分离,当开发人员想要调整新的数据版本的发布对象时,开发人员仅需更改内存数据库中用户标识与数据版本的对应关系即可,操作方便。 本公开在获取到用户标识对应的数据版本后,判断是否存在支持所述数据版本的业务服务器,并在不存在支持所述数据版本的业务服务器时,可以从支持默认数据版本的业务服务器获取数据,以避免没有及时更新内存数据库而导致的数据获取失败。 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。 【专利附图】【附图说明】 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。 图1是根据一示例性实施例示出的一种数据获取方法的流程图。 图2是根据一示例性实施例示出的一种获取用户标识对应的数据版本的流程图。 图3是根据一示例性实施例示出的一种根据数据版本获取数据请求所请求的数据的流程图。 图4是根据一示例性实施例示出的一种数据获取应用场景示意图。 图5是根据一示例性实施例示出的一种数据获取装置框图。 图6是根据一示例性实施例示出的另一种数据获取装置框图。 图7是根据一示例性实施例示出的另一种数据获取装置框图。 图8是根据一示例性实施例示出的另一种数据获取装置框图。 图9是根据一示例性实施例示出的另一种数据获取装置框图。 图10是根据一示例性实施例示出的另一种数据获取装置框图。 图11是根据一示例性实施例示出的用于一种数据获取装置的一结构示意图。 【具体实施方式】 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式本文档来自技高网...

【技术保护点】
一种数据获取方法,其特征在于,包括:从用户发送的数据请求中解析出用户标识;获取所述用户标识对应的数据版本;根据所述数据版本获取所述数据请求所请求的数据;将所述数据返回给用户。

【技术特征摘要】

【专利技术属性】
技术研发人员:张旭华谭国斌马哲
申请(专利权)人:小米科技有限责任公司
类型:发明
国别省市:北京;11

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

1