比较三种技术:
负荷均匀:对100,000笔,仅有一行的销售订单过账发票。捆大小为1,000。
负荷不均匀:对1000笔,介于1-500行不等的销售订单过账发票。捆大小为100。
大数据量:使用超过2百万个项目进行测试。下面的柱状图表明,项目增大时,“独立任务模式”或“顶级采摘”方案都不会产生剧烈性能波动。
回顾:
批量捆绑:
优点:
- 负载均匀时运行良好
- 不需要暂存表,不需要维护额外代码
- 不会在批处理表中产生大量数据
缺点:
- 在调度作业(通常)时创建固定数量的任务。 批处理框架的设计方式使您可以通过批处理服务器计划自动添加或减少批处理线程数,或由管理员手动添加或减少批处理线程数。 因为任务的数量是预先创建的,所以它不会根据批处理投入资源的多少自动调整
- 对于不均衡的工作负载,您可能需要复杂的算法来找出合适的项目分配方案
- 在某些应用场景中,可能无法平均分配工作负载
独立任务模式:
优点:
- 负载不均匀时运行良好
- 编写简单
- 由于任务的数量不是固定的,所以它会根据批处理调度投入的资源多少自动调整
- 最适合在项目之间创建依赖关系
缺点:
- 完全依赖于批处理框架
- 当任务数量非常大时,由于批量框架而产生的额外开销将严重影响性能
- 它可能对其他批处理作业产生负面影响,因为它对框架表带来了读写压力
顶级采摘:
优点:
- 负载不均匀时运行良好
- 编写简单
- 不会在批处理表中产生大量数据
缺点:
- 需要额外的暂存表跟踪过程和负载
- 因为任务的数量是预先创建的,所以它不会根据批处理投入资源的多少自动调整
- 当需要处理大量简单项目时,通过暂存表跟踪项目会影响性能和吞吐量。
根据工作负载的性质和需要定期完成的工作量,您可以决定一种适合您需要的技术。