此篇介绍一下数据聚合类业务系统的通用架构设计方法。

在业务中,常会遇到一些需要做数据聚合的服务,通俗的讲就是把多个系统的数据展示到统一的系统上。常见的比如聚合多个业务线的订单数据,做一个订单中心,或者聚合多个频道的推荐信息,做一个信息中心。

针对此类数据聚合的服务,一般如何架构呢?

数据对接方式

在跟多个外部系统进行数据对接时,是Pull的方式好一些还是Post的方式好一些?

根据实际业务的情况考虑,如果大部分数据都是需要聚合第三方数据再展示,那么比较推荐让第三方Post数据,本业务自身设计统一的数据规则接口。这种情况下,需要做好数据准确性验证,并保证自身服务的稳定性。

如果只有少部分数据来自第三方,那么也可以考虑Pull的方式。

相比较而言,Post时效性高,数据交互少。还可以在接入时使用MQ提高自身系统的吞吐能力,在读的时候用Cache抗高并发。只要在前期考虑好数据量级和存储选型,保证具有良好的扩展性即可。

完整方案

  1. 按业务隔离,不同的业务相互不影响
  2. 使用Post/Pull的方式来获取数据
  3. 使用Cache和MQ保障高性能
  4. 对数据进行聚合或分析进行对外展示