从数据库读取时的spring引导水平缩放

disho6za  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(233)

我有一个spring启动应用程序在3个容器上运行。我需要设计一个服务,从数据库读取每5分钟,然后执行一些数据计算。
我可以使用@schedule annotation编写一个函数,每5分钟运行一次。但如何确保所有容器都不是在处理相同的数据呢。有没有办法,我可以把货物分给所有的集装箱?
支持数据库中有1800条记录,我需要每5分钟对其执行一次计算。因此,每个容器每5分钟可以处理600条记录,并且在任何时间点,如果一个容器发生故障,那么其他两个容器可以管理负载。

cwtwac6a

cwtwac6a1#

一种方法是使用 SKIP LOCKED . 您可以找到一个很好的解释,说明如何以最佳方式使用db表作为作业队列(即批处理队列或消息队列)。

相关问题