spring-data-jpa Spring Boot :如何更新大型数据集?

u0njafvf  于 2022-11-10  发布在  Spring
关注(0)|答案(1)|浏览(184)

我有微服务架构(在Kubernetes上运行)。
假设我有一个名为“Product”的实体,在我的服务版本1.0中有超过100万条记录。
现在,我正尝试将服务器更新到2.0版本,2.0引入了名为'ProductAnalysis'新实体为了使2.0正常工作,我需要在版本更新时迭代所有100万条'Product'记录并一次性计算一些数字
我尝试创建一个隐藏的REST API,它使用JPA分页触发对所有100万条记录的循环,但是当我这样做时,服务器内存不足。
我看到一些帖子建议使用“Spring Batch”,但我不确定我是否可以在我的情况下使用。
任何帮助都是感激不尽的。
谢谢你

yftpprvb

yftpprvb1#

考虑到Spring作为一种技术,这可能不是一个完美的答案,但我试图在微服务的背景下给予答案。

  • 对于这样的场景,你必须决定几件事,并根据这一点,你可以选择的方法.
  • 这是一次性工作还是需要经常执行?
  • 如果这是从1.0迁移到2.0的一次性作业,则可以创建执行此作业的实用程序。如果由于更新了大量数据而出现超时问题,也可以创建此实用程序。请采取以下方法。
  • 可能不是所有的产品都在一次使用,所以更新那些处于活动状态或这种状态的产品。确定批次(比如每批100件产品)
  • 如果没有此类标准,则根据您的意愿进行处理,但选择小批量以及研究中心对最终用户不太活跃的时间。
  • 隐藏的REST API
  • 这是完全好的方法,只要它是受保护的,而不是由最终用户直接消费在任何情况下出于安全原因。
  • 大多数类型的端点称为“私有端点”,可在服务内部使用,但不可在外部使用。

相关问题