04.数据中心

数据中心

数据中心是一个数据聚合应用,数据聚合的意思就是聚合来自各个来源的数据对外提供统一的服务,而且需要什么数据由你决定,不多不少,只要把 HSF 服务或者 HTTP 服务接入数据中心,你的服务就可以作为数据中心的一个数据源通过数据聚合的方式对方提供服务,如下图所示:

数据源与消费者

数据中心的定位是面向后端开发,当然也可以对前端提供 HTTP 服务,数据中心也有一些产品和运营在使用,他们经常通过数据中心查询一些基础数据,然后把字段告诉开发完成对接。

数据中心的优势是可以让一个不了解各个数据源开发细节的开发,产品甚至运营,直接通过可视化界面,采用勾选配置的方式,自动化直接聚合出灵活多变的业务数据,并支持异构数据源的装配。在业务多变,组织架构多变,数据来源多元的当下,数据中心可以说是一个强刚需的应用,它可以通过实时配置的方式,自动完成不同数据源的数据路由和装配,帮助技术快速响应需求变化,按需获取自己需要的数据,解放开发资源,并且通过数据的智能并行获取和流量控制,多级缓存优化,达到资源和性能的综合优化与利用。

场景分析

适用场景

  • 数据多样。数据来源多样,你需要的数据来自多个 HSF 或者 Http 服务,这是数据中心的本源,优势就是数据聚合能力,比如会场数据展示就非常建议使用数据中心。

  • 数据拆分。有的数据源考虑到性能问题,会对调用的数据个数进行限制,比如 MKC 的营销接口,一次性最多只能传入 10 个商品 ID,如果数据量比较多的场景直接调用这种接口的话,你需要写数据拆分和多线程并发调用的代码,写起来费时费力,而且不一定有数据中心的写的好,数据中心对这种数据拆分做了很好的支持。

  • DT 数据。DT 都会将数据灌进 oneservice,然后对外提供服务,数据中心底层整合了 oneservice 常用的调用模型,对 oneservice 做了很好的支持,如果有新接入的指标,数据中心只需要增加配置字段,零开发即可直接使用。

  • 流量缓冲。如果你的服务扛不住流量,那么也可以考虑使用数据中心的缓存功能,一个配置即可搞定,有非常多的服务接入数据中心的目的就是用来做流量缓冲的,典型的就是 MKC 的营销活动服务,这个服务本身的流量就很大,面临大促这种场景的突发流量,需要上层进行一个缓冲。

  • 服务降级。这个跟上面的流量缓冲有点类似,但不一样的是,把入口步在数据中心之后,如果服务出现问题,不降级就可能挂掉,那么数据中心可以快速的进行降级,可以从调用方,单机并发量等维度进行快速降级,避免出现雪崩。

不适用场景

数据中心有比较完善的自我保护功能,如果数据源出现问题,会对其进行降级,所以下面几种场景不太适合使用数据中心。

  • RT 敏感。如果不需要数据聚合场景,而且对 RT 要求很高,建议直接调用数据服务,不建议通过数据中心进行一次中转。

  • 不接受降级。数据中心会对慢数据源进行降级,如果数据源不接受降级,或者降级会导致故障,不建议接入数据中心。

  • 交易系统。交易系统不建议使用数据中心,底层数据源出现问题,数据中心的降级很可能导致资损,引发故障。

  • RT 高。RT 高(100ms 以上)的系统接入数据中心,如果长期 RT 很高,一方面数据中心会对其降级,另外也会影响到数据中心的整体性能,所以 RT 比较高的数据源建议进行优化之后再接入。