gpt4 book ai didi

distributed - 如何在 Consul KV 存储中的键上设置 TTL(到期)

转载 作者:行者123 更新时间:2023-12-02 02:55:47 27 4
gpt4 key购买 nike

我本质上是使用 Consul 和健康检查服务来存储来自一些远程主机的健康检查错误消息(键:主机名 => 值:消息)。但是,如果键值对在 24 小时内没有更新,我希望删除它,例如,如果远程主机完全从运行状况检查轮换中删除。

根据Consul API documentation ,您可以在 session 上设置 TTL当它被创建时。看来你可以绑定(bind)这个session使用 acquire 到特定键参数当你Create/Update a key ,并且当 session 过期时,它也会删除 key 。需要注意的是 acquire还锁定了 key ,这对我来说意味着该值不能由其他任何人设置,直到稍后用 release 更新它。参数,但这会删除 session->key 关联(最终删除 key 上的 TTL)。

目前尚不清楚如何为 Consul 键值存储中的键实现简单的 TTL。似乎这样的事情可以工作,但我不确定如何保持与键关联的 session :

  • 使用 TTL=86400s 创建 session 并获取 sessionID
  • 使用 acquire=sessionID 创建键值对
  • ??? release=sessionID ???
  • 每次更新键值对时,刷新 session TTL

  • 并对插入的每个新键值对重复上述操作。

    有人可以详细说明如何使用 session 从 Consul 中删除过期的键值对吗?

    最佳答案

    创建 session 时,您可以指定 delete 的行为。 type 和 TTL 可以设置为 24 小时(检查 https://www.consul.io/api/session.html#ttl )。因此,如果 session 未在指定的时间限制内更新,则 key 将被自动删除 (https://www.consul.io/docs/internals/sessions.html)。

    关于distributed - 如何在 Consul KV 存储中的键上设置 TTL(到期),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49501699/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com