Spring Batch 基本的批处理指导原则

下面是一些关键的指导原则,能够在构批量处理解决方案能够参考:数据库

  • 请记住,一般皮脸处理体系结构将会影响在线应用的体系结构,同时反过来也是同样的。在你为批量任务和在线应用进行设计架构和环境的时候请尽量的使用公共的模块。
  • 越简单越好,尽可能在一个单独的批量应用中构建简单的批量处理,并避免复杂的逻辑结构。
  • 尽可能的保持存储的数据和进程存储在同一个地方(换句话说就是尽可能将数据保存到你程序运行的地方)。
  • 最小化系统资源的使用,尤为针对 I/O。尽可能在内存中执行尽量多的操做。
  • 检查应用的 I/O(分析 SQL 语句)来避免没必要要的的物理 I/O 使用。特别是如下四个常见的缺陷(flaws)须要避免:
    1. 在数据能够只读一次就能够缓存起来的状况下,针对每个事务都来读取数据
    2. 屡次读取/查询同一事务中已经读取过的数据
    3. 产生没必要要的表格或者索引扫描
    4. 在 SQL 查询中不指定 WHERE 查询的值。
  • 在批量运行的时候不要将一件事重复 2 次。例如,若是你须要针对你须要报表的数据汇总,请在处理每一条记录时使用增量来存储,尽量不要再去遍历一次一样的数据。
  • 为批量进程在开始的时候就分配足够的内存,以免在运行的时候再次分配内存。
  • 老是将数据完整性假定为最坏状况。对数据进行适当的检查和数据校验以保持数据完整性(integrity)。
  • 可能的话,请实现内部校验(checksums )。例如,针对文本文件,应该有一条结尾记录,这个记录将会说明文件中的总记录数和关键字段的集合(aggregate)。
  • 尽量早地在模拟生产环境下使用真实的数据量,以便于进行计划和执行压力测试。
  • 在大数据量的批量中,数据备份可能会很是复杂和充满挑战,尤为是你的系统要求不间断(24 - 7)运行的系统。数据库备份一般在设计时就考虑好了,可是文件备份也应该提高到一样的重要程度。若是系统依赖于文本文件,文件备份程序不只要正确设置和造成文档,还要按期进行测试。

https://www.cwiki.us/display/SpringBatchZH/General+Batch+Principles+and+Guidelines缓存

相关文章
相关标签/搜索