使用(最好是Hazelcast)分布式同步原语,有效地同步MySQL表访问

时间:2014-12-16 18:34:58

标签: java mysql distributed-computing hazelcast

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

有没有办法可以使用Hazelcast分担多个节点实例中表行子集的责任?

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

1 个答案:

答案 0 :(得分:0)

我认为用Hazelcast分布式锁解决这个案例的问题是不必要的。
Quartz是您的问题的最佳选择。
http://quartz-scheduler.org/