- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我们有一个带有 block 处理的 Spring 批处理应用程序,它从数据库中读取记录,处理它们并调用服务/执行一些插入/更新数据库中的一些表作为编写器的一部分。
JDBCPagingItemReader
已被使用,因为当 saveState 为 false 时它是线程安全的。已设置排序键,因此线程不会相互交叉。此外,隔离级别 ISOLATION_READ_COMMITTED
已用于 Oracle 数据源和 Spring 批处理的 JobRepository
配置。
使用 ThreadPoolTaskExecutor
的多线程目前在单个实例中运行良好。
我们最终应该在 OpenShift 中部署这个 Spring Boot 应用程序,应用程序将在多个 PODS 中运行,即应用程序的多个实例都从同一个表中读取。
有知识的人可以让我知道在多个 pod(实例)中使用上述组合是否会出现任何问题,或者是否会出现必须处理的并发问题。
非常感谢在此场景中的任何最佳实践。
感谢您的宝贵时间。
最佳答案
您可以对表进行分区并将每个分区分配给一个 pod。然后,每个分区由一个多线程作业处理。所以这里有两个并行度:跨 pod(多个 JVM)和每个 pod 内(多个线程)。
Could someone who has the knowledge, let me know if there would be any problem using the above combination in multiple pods ( instances ) or if there would be concurrency issues which have to be dealt with .
如果数据集正确分区并且分区之间没有重叠,就不会有并发问题。
关于java - Spring batch JDBCPagingItemReader、ThreadPoolTaskExecutor 和 OpenShift 中的多个 pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56949161/
我面临的问题是记录从查询和分页配置返回,我给出了不正确的记录。分页配置不正确。 分页返回较少的记录。 查询相当于分页配置 select * from SOME_TABLE where CLIENT_F
我使用 Spring Batch 来做数据迁移工作。由于数据很多,所以我决定使用JdbcPagingItemReader来按页读取数据。以下是我如何定义读者: private JdbcPagingIt
我正在开发一款从 Oracle 数据库中提取记录然后导出为单个表格文件的应用程序。 但是,当我尝试使用 JdbcPagingItemReader 从数据库中读取数据并写入文件时,我只获得了 pageS
我正在运行 Spring Batch 并使用 JdbcPagingItemReader .使用示例配置: 我收到与以下相关的错误: Column 'id' in order clause
我需要扫描数据库中的某些实体并每隔 n 分钟更新一次过期(“isexpired”)标志。在此之后,我会将整个实体作为 json 发布到指定为同一实体的属性的 url。 此代码运行批处理作业并更新数据库
我正在尝试读取包含数百万条记录的数据库表,因此我正在使用 JdbcPagingItemReader。 但是,我现在处于测试阶段,我正在尝试限制使用 JdbcPagingItemReader 可以读取的
我需要使用 Spring Batch 中的 ItemReader 访问一些 SQL 数据。我以为JdbcPagingItemReader/PagingQueryProvider将是完美的选择。 我从中
我们有一个带有 block 处理的 Spring 批处理应用程序,它从数据库中读取记录,处理它们并调用服务/执行一些插入/更新数据库中的一些表作为编写器的一部分。 JDBCPagingItemRead
我已经使用注释在 Spring Boot 中实现了批处理过程,它为我提供了服务。我正在使用 SimpleAsyncTaskExecutor 以及读取器、处理器和写入器从数据库读取并在进程中进行验证,然
为 JdbcPagingItemReader 查询设置自定义参数的最佳方法是什么? 我的自定义JdbcPagingItemReader实现: public class CustomItemReader
该表有超过2亿条记录,但我需要限制选择前500万条记录。我已经尝试使用 jdbcCursorItemReader,它需要大约 2-3 小时来选择并使用单步逐 block 处理将其写入 csv 文件,所
我是一名优秀的程序员,十分优秀!