数据子系统之数据代理

数据子系统中的数据代理是为了屏蔽数据子系统中的复杂性,为使用者提供一个统一入口和友好界面。本篇简介数据代理的相关设计。

1. 数据代理功能

(一)接受数据使用者数据请求。这是数据代理最为常用的功能,也是对外提供最为基础功能。数据代理根据请求数据包中给出的数据Key检索本机房数据与数据节点映射数据,找到所承载的数据节点,将请求数据包转发至数据节点。如果映射中没有该数据信息,则向中控发起资源申请,在本机房建立该数据存储。

(二)接受数据发布者数据发布请求。代理在接收到数据发布注册请求后,遍历本机房该数据是否存在,如已存在,则返回数据Key及其他相关数据,如本机房数据不存在,则将数据发布请求发送给中控,中控将全局检测是否存在,根据检测结果,返回数据Key或新建数据Key并分配资源返回相关数据,代理将该数据返回给请求者,完成数据发布流程。

(三)接受数据销毁请求。代理在接收到数据销毁请求后,直接将该数据包转发至中控,由中控完成数据销毁相关逻辑。

2. 映射数据获取

数据代理和一般意义上的代理服务功能一致,是数据子系统的使用者和子系统内部服务之间上行数据转发。数据代理在进行数据转发时必要有映射数据才能正常转发,该部分映射数据是代理所在机房数据Key与数据节点之间对应关系数据。通用平台设计该部分数据存放在数据子系统内部,代理启动后从中控获取存放该部分数据的数据节点信息,加载完数据就能开始对外正常工作。之后一直会与该数据节点进行数据同步,保持映射数据是最新数据。

3. 与通用代理的差异

通用平台提倡模块构件的复用,但是为何数据子系统会使用独立代理而不是复用通用代理呢?仔细区分通用代理和数据代理,两者之间还是有较大差异。

(一)服务对象不同。通用代理服务对象是客户端,数据代理服务对象是服务。这两者差异较大,通用代理面对的情况较为复杂,数据代理因为面对的是数据使用方,相对较为简单。

(二)功用不同。两者除了代理功能一致外,通用代理是为了模块构件复用,且是屏蔽各业务产品客户端的差异,是屏蔽外部差异。数据代理是为了屏蔽数据子系统内部复杂性,是屏蔽内部差异。

(三)运行环境和运行模式不同。通用代理用于数据包上下行转发,只有后向连接是处于通信子系统中。而数据代理,正是由于双向都采用了通信子系统,只进行上行数据转发,下行数据由通信子系统直接下达,不再由数据代理转发,减少了服务节点环节,降低了数据代理的处理压力。

4. 特殊处理

数据代理既然已经独立出来,除了以上所述与通用代理的差异外,还有其他的特殊处理需要应对。如本机房数据采用分片方式进行存储,外部使用方数据并未分片,那么就面临一个数据合并和使用方与多个数据节点间同步信息问题。数据代理需要将并未数据分片的数据请求,发送给承载分片的所有数据节点,才能算是一个完整的数据请求。

本篇简介了数据代理相关设计,比较了与通用代理之间的差异,数据代理并未被设计成过多的参与业务,帮助完成部分子系统功能,这是由于代理角色决定不适合承担较多的业务,更多较为复杂交互还是沉淀于协议中,子系统内部还是由数据节点来承担复杂性。至此,数据子系统从数据中控、数据节点、数据代理完整地将数据子系统各个模块构件设计简略的介绍,希望各位读者能从中有所收获。数据子系统是通用平台数据纳身之所,是平台核心之一,平台数据及后续的运维子系统数据都由数据子系统负责存储。设计该子系统的出发点,就是要解决通常业务系统中数据存储访问及数据同步问题,通用平台自身的数据存储访问和同步都由该子系统负责。

 

数据子系统--概述

通用服务平台之总体架构设计

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值