java - 使用(最好是 Hazelcast)分布式同步原语来高效地同步 MySQL 表访问

标签 java mysql distributed-computing hazelcast

我有一个包含大约 100k - 200k 行的 MySQL 数据库表。表行每 5-10 秒频繁创建、更新和删除。目前,单个 JVM 应用程序实例读取所有行并处理表中被发现处于特定状态的所有实体。处理任务每 1-2 分钟安排一次,处理本身大约需要 1-2 分钟。现在我想让这个 JVM 应用程序成为集群容错服务。一种选择是让多个实例获取分布式 Hazelcast 锁,无论哪个实例获取锁都会处理实体。然而理想情况下,我希望参与服务的所有 JVM 实例都处理一些行,但同时确保每行在给定的 5 分钟间隔内至少处理一次。

有没有一种方法可以使用 Hazelcast 在多个节点实例之间分担表行子集的责任?

PS:替换 MySQL 不是一个选项,Hazelcast 的开源替代品是一个选项。

最佳答案

我觉得用Hazelcast分布式锁来解决这个case的问题是没有必要的。
Quartz 是解决您问题的最佳选择。
http://quartz-scheduler.org/

关于java - 使用(最好是 Hazelcast)分布式同步原语来高效地同步 MySQL 表访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27511600/

相关文章:

java - Solr WordDelimiterFilter + Lucene 荧光笔

java - Flink DataSet join inside map 函数

java - 带有java的特定语言虚拟键盘

java - 我们如何从 fragment 启动 Activity

php - 在保存到数据库之前我应该​​担心 Richtext 编辑器的内容吗?

mysql - 在后台复制大型 MySQL 表

docker - 我们可以在多个计算机(主机)上运行单个容器吗?

security - Erlang通过cookie的安全性是否足够?

java - Grails + quartz : Threads don't stop properly

mysql - 在表中输入整条记录会自动更新其他表中的相应字段