我有一个大约有100k - 200k行的MySQL DB表。表行每5-10秒被频繁地创建、更新、删除。目前,单个JVM应用程序实例读取所有行,并处理表中发现处于特定状态的所有实体。处理任务每1-2分钟调度一次,处理时间约为1-2分钟。现在,我想让这个JVM应用程序成为一个集群容错服务。一种选择是让多个实例获取一个分布式Hazelcast锁,而获取该锁的任何一个实例都会处理实体。但是,理想情况下,我希望参与服务的所有JVM实例都在处理某些行,但同时要确保每行至少在给定的5分钟间隔内处理一次。
有没有办法可以使用Hazelcast来分担多个节点实例之间表行的子集的责任?
PS :替换MySQL不是一个选择,替代Hazelcast的开源选择是一个选择。
发布于 2014-12-30 20:35:14
我认为用Hazelcast分布式锁来解决这个问题是不必要的。
Quartz是解决您的问题的最佳选择。
http://quartz-scheduler.org/
https://stackoverflow.com/questions/27511600
复制相似问题