如何获取Consul中可用锁的列表以及会话ID?

时间:2019-07-17 06:45:25

标签: consul consul-kv

我通过领事试图建立锁,但是在建立之前,我需要检查锁是否已经建立。如何获取锁的详细信息。 我必须在2个服务器上尝试获取锁,最后一个服务器将获取锁。假设server1是否已获得锁定,而server1在未释放锁定的情况下就关闭了,因此我认为server2将获得该锁定。 但是,如果server2也出现故障,那么锁将在那里。  因此,下一次当2台服务器尝试获取该锁时,这两个服务器都不会收到该锁,因为该锁已在使用中。 如何克服呢?有什么方法可以检查锁是否存在?我试图获取kv详细信息,但未显示。

To set the lock:

session_id=$(curl -s -XPUT "${consul_address}/v1/session/create" -d "{\"Name\": \"${task_name}\"}" | grep -oP '(?<="ID": ")[^"]*')

curl -s -XPUT "${consul_address}/v1/kv/locks/${task_name}/.lock?acquire=${session_id}"

To release the lock:
curl -s -XPUT "${consul_address}/v1/kv/locks/${task_name}/.lock?release=${session_id_old}"
curl -s -XPUT "${consul_address}/v1/session/destroy/${session_id_old}"

To get details of kv :
curl -s -XGET "${consul_address}/v1/kv/ztssslock"   => not working

0 个答案:

没有答案