目录
- 一、多系统订阅数据回顾
- 二、核心数据的监控系统
- 三、电商库存数据如何监控
- 四、数据计算链路追踪
- 五、百亿流量下的数据链路追踪
- 六、自动化数据链路分析
- 七、下篇预告
上篇文章《为什么我建议线上高并发量的代码,一定要注意数据可能会不一致?》,初步给大家分析了一下,一个复杂的分布式系统中,数据不一致的问题是怎么产生的。
简单来说,就是一个分布式系统中的多个子系统(或者服务)协作处理一份数据,但是最后这个数据的最终结果却没有符合期望。
这是一种非常典型的数据不一致的问题。当然在分布式系统中,数据不一致问题还有其他的一些情况。
比如说多个系统都要维护一份数据的多个副本,结果某个系统中的数据副本跟其他的副本不一致,这也是数据不一致。
但是这几篇文章,说的主要是我们上篇文章分析的那种数据不一致的问题到底应该如何解决。
一、多系统订阅数据回顾
我们先来看一张图,是之前讲系统架构解耦的时候用的一张图。
好!通过上面这张图,我们来回顾一下之前做了系统解耦之后的一个架构图。
其实,实时计算平台会把数据计算的结果投递到一个消息中间件里。
然后,数据查询平台、数据质量监控系统、数据链路追踪系统,各个系统都需要那个数据计算结果,都会去订阅里面的数据。
这个就是当前的一个架构,所以这个系列文章分析到这里,大家也可以反过来理解了之前为什么要做系统架构的解耦了。
因为一份核心数据,是很多系统都可能会需要的。通过引入MQ对架构解耦了之后,各个系统就可以按需订阅数据了。
二、核心数据的监控系统
如果要解决核心数据的不一致问题,首先就是要做核心数据的监控。
有些同学会以为这个监控就是用falcon之类的系统,做业务metrics监控就可以了,但是其实并不是这样。
这种核心数据的监控,远远不是做一个metrics监控可以解决的。
在我们的实践中,必须要自己开发一个核心数据的监控系统,在里面按照自己的需求,针对复杂的数据校验逻辑开发大量的监控代码。
我们用那个数据平台项目来举例,自己写的数据质量监控系统,需要把核心的一些数据指标从MQ里消费出来,这些数据指标都是实时计算平台计算好的。
那么此时,就需要自定义一套监控逻辑了,这种监控逻辑,不同