春季领事领导选举

时间:2019-12-13 13:43:06

标签: spring session locking consul leader

我的应用程序是spring boot应用程序,但是我不能使用spring的领事。因为没有领导选举(即基于KV中的会话锁定)。

用例::实现可在多个节点中运行的侦听器。当执行侦听器时,只有一个节点可以执行操作。该侦听器用于处理Redis键空间事件。

通过在启动时创建会话并将会话ID存储为bean值,在春季之外实施了领导选举。然后使用会话ID和特定密钥选举领导者。这很好。还使用@scheduled批注创建了一个手表,以检查该密钥是否具有与之关联的会话ID,如果没有与该密钥相关联的会话,它将创建一个锁。到现在为止,它都可以正常工作。

当springboot应用程序停止时,由于领事不知道该会话不再存在,因此不会释放该锁。我试图包括运行状况检查,但是运行状况检查会在创建会话后立即被触发,并且由于应用程序未启动而立即失败。因此,该应用程序无法在运行状况检查到位的情况下启动。

正在使用图书馆

value    owner
 100     both
 200     b
 300     both
 400     a

在应用程序停止时如何解除锁定,以及如何使运行状况检查延迟触发? 有没有办法通过spring-cloud-consul实现相同的解决方案,

0 个答案:

没有答案
相关问题