Shopee Flink Unaligned Checkpoint:优化策略与实战提升
需积分: 9 192 浏览量
更新于2024-06-26
收藏 10.92MB PDF 举报
Flink Unaligned Checkpoint (UC) 是一个针对大规模分布式流处理系统Flink的优化策略,在Shopee,一个大型电商平台的数据处理环境中,其性能优化和实践经验具有重要意义。Flink的默认Checkpoint机制,即Aligned Checkpoint,存在一些问题,特别是在高并发和流量波动下,可能导致检查点失败、恢复时间过长,从而影响服务可用性和业务连续性。
在Shopee的生产实践中,Flink Unaligned Checkpoint主要解决以下痛点:
1. **Checkpoint失败与恢复时间**:传统的Flink Checkpoint在遇到故障时,由于需要等待所有任务处理完正在进行的数据( Barrier),导致恢复过程漫长。这不仅使服务中断的时间显著增加,还可能引发服务可用率下降和作业陷入死循环的问题。
2. **非幂等性问题**:在某些非事务性场景下,由于数据处理的非幂等性,当检查点失败并重新执行时,可能会导致业务数据重复,造成数据一致性问题。
3. **数据丢失和一致性问题**:当Flink作业被反压(例如,由于下游任务处理速度慢)导致检查点失败,可能导致Kafka中的数据过期丢失,进一步影响数据完整性。
Flink Unaligned Checkpoint的核心思路是改变传统的同步流程,让 Barrier 超越正在进行的数据处理,同时快照这部分已完成但未被消费的数据。这样可以实现以下优化:
- **同步流程优化**:当接收到第一个 Barrier 时,立即对已完成数据进行快照,确保 Barrier 快速发送到下游任务,减少数据延迟。
- **引用管理**:在同步阶段,仅引用算子内部状态和输入/输出缓冲区,而不是等待所有数据处理完成,提高恢复效率。
- **异步阶段处理**:在异步阶段,快照处理的是 Barrier 对齐之前的数据,以及同步阶段引用的所有输入和输出缓冲,进一步减轻了同步压力。
通过实施Unaligned Checkpoint,Shopee在Flink环境中实现了以下收益:
- **性能提升**:通过减少恢复时间,提升了系统的整体吞吐量和响应速度。
- **风险降低**:降低了数据丢失和业务重复的风险,提高了业务稳定性。
- **生产实践与规划**:Unaligned Checkpoint已经成为Shopee生产环境的标准策略,并且正在规划更深层次的优化和扩展。
Flink Unaligned Checkpoint是一种有效的优化策略,它通过改进Flink的检查点机制,解决了传统检查点模式在高并发和动态流量下的挑战,为Shopee的实时大数据处理提供了更高效和可靠的解决方案。在未来,这种优化有望在更多的分布式计算环境中得到广泛应用。
2023-03-21 上传
2023-03-21 上传
2023-03-21 上传
2022-08-03 上传
点击了解资源详情
点击了解资源详情
2023-08-04 上传
2024-11-03 上传
远方有海,小样不乖
- 粉丝: 3681
- 资源: 57
最新资源
- srfi-218
- matlab由频域变时域的代码-BioArgo:Argo处理和分析
- cpp代码-159.4.1.2
- Setistatus-开源
- python-homework
- 简历:用乳胶编写的我的简历(非常过时)
- 13天学会python网络爬虫资料.rar
- Java学生成绩管理系统.zip
- zhidong
- lsaddr:lsaddr-列出活动的IP地址
- zhadn.github.io:Zhadn的游戏音乐播放列表
- RORegister - eAthena-based CP-开源
- 实现PC端的打字小游戏
- TA_08:Unal MedBotánica
- c代码-出租车记价表
- 硕士论文:网络和分布式系统中的计算机科学硕士论文