gydtep 发表于 2022-10-16 15:44:47
又如,使用 Flink 处理 CDC(Change Data Capture) 的场景,如果下游是 MySQL,在 Flink 2PC 完成之前,来自不同 Flink 节点的数据输出后其实已经被 commit,gydtep 发表于 2022-10-17 10:11:15
这也是流计算系统一致性复杂性远远大于批处理系统的原因:批处理系统中的输入是确定的,计算过程中可以通过计算的原子性来保证数据的一致性(如 Spark 中的 RDD 血缘)。gydtep 发表于 2022-10-17 20:31:38
如果定义流计算的输入集合为:E,t 时刻以来的输入集合为 E(t),输出集合为 Sink(t),引擎此时状态为 State(t),State(t) 包括各个算子的状态(包括上面提到的不确定性计算)、数据源的消费偏移量(或文件读取偏移等)等:gydtep 发表于 2022-10-18 13:35:43
正确的结果贯穿着这整个流计算应用的始终:从输入、处理过程、输出,每一个环节都需要保证其自身的数据一致性,同时在整个流计算流程中,作为整体实现了端到端的一致性。gydtep 发表于 2022-10-18 17:29:05
如果定义流计算的输入集合为:E,t 时刻以来的输入集合为 E(t),输出集合为 Sink(t),引擎此时状态为 State(t),State(t) 包括各个算子的状态(包括上面提到的不确定性计算)、数据源的消费偏移量(或文件读取偏移等)等:gydtep 发表于 2022-10-19 08:21:11
众所周知,在云原生开发模式下,可观测性是非常重要的一部分,它通过日志、指标、Trace等数据,让我们可以深入了解系统的运行状态和健康程度。在 CNCF Landscape大图中,可观测性也占据了相当大的一块位置。gydtep 发表于 2022-10-19 14:35:51
例如日志可能会使用 ELK 或者 Splunk,指标会使用 Prometheus,Trace 使用 Skywalking、Jaeger 或者 zipkin。但太多的选择也不见得是好事,在这种情况下,可观测性数据的管理又给我们带来了如下几个痛点:gydtep 发表于 2022-10-20 08:19:15
基于统一的存储,我们可以构建统一的查询和分析语法,从而一套语法适配不同的数据,并且让不同的数据之间进行联合查询也变成了可能。如下图所示,gydtep 发表于 2022-10-20 12:52:07
。如果要全方位的覆盖这些监控对象和指标,需要配置大量的监控规则,并且它们的阈值也可能是各不相同的,因此会有很大的工作量。gydtep 发表于 2022-10-20 16:36:23
海量告警无收敛:另一个问题就是,海量的告警难以收敛,尤其是当告警之间有相互依赖关系的时候。例如主机负载高,导致该主机上服务异常、接口延迟高、HTTP Error 报错多等多种问题并发