实际上,我正在使用领事和一个健康检查服务来存储来自某些远程主机的健康检查错误消息(key: hostname => value: message)。但是,如果键值对已经超过24小时没有更新,我希望删除它,例如,如果远程主机被从健康检查轮转中完全删除。
根据领事API文档,您可以在创建session时在其上设置TTL。看来,当您的session和会话到期时,您可以使用acquire参数将这个创建/更新密钥绑定到一个特定的键,并且当会话到期时,它也会删除该键。请注意,acquire还锁定了键,这意味着在以后用release参数更新它之前,其他任何人都不能设置该值,但这会删除会话->键关联(最终删除键上的TTL )。
还不清楚如何在存储中为密钥实现一个简单的TTL。这似乎是可行的,但我不知道如何保持与键相关的会话:
TTL=86400s创建会话并获取sessionIDacquire=sessionID创建键值对release=sessionID ??并对插入的每个新键值对重复上述操作。
有人能详细说明如何使用会话从领事中删除过期的密钥值对吗?
发布于 2018-07-10 12:41:26
在创建会话时,可以指定delete类型的行为,TTL可以设置为24小时(检查https://www.consul.io/api/session.html#ttl)。因此,如果没有在指定的时间内更新会话,则将自动删除密钥(https://www.consul.io/docs/internals/sessions.html)。
https://stackoverflow.com/questions/49501699
复制相似问题