.. _config_listeners_lds: 监听器发现服务(LDS) ====================== 监听器发现服务是一个可选 API,Envoy 调用它来动态获取监听器。Envoy 将协调 API 响应,并根据需要来增加、修改或者删除已知监听器。 监听器的更新规则如下: * 每一个监听器都必须有一个唯一的 :ref:`名字 `。 如果没有提供名字,Envoy 将会创建一个 UUID。能够动态更新的监听器应该有一个由管理服务器提供的唯一名字。 * 当新增一个监听器时,在它接受流量以前需要先“预热”。比如,如果监听器参考了 :ref:`RDS ` 配置,在监听器变成“激活”状态以前,配置需要被获取并解析。 * 监听器一旦被创建,就不会发生变化。因此,当更新监听器时,会创建一个新的监听器(使用相同的监听套接字)。新 创建的监听器会经过同样的上述预热流程。 * 当监听器在更新或删除时,老监听器会被放置在“排空”状态,这和整个服务器在重启时被排空的场景是非常像的。 在监听器被删除且剩余连接被关闭之前,属于监听器的连接将会在特定时间段内被优雅的关闭(如果可能)。 排空时间可以通过选项 :option:`--drain-time-s` 来设定。 .. note:: 在 Envoy 配置内静态定义的任何监听器都是不能够通过 LDS API 来进行修改或删除的。 配置 ----- * :ref:`v3 LDS API ` 统计 ----- LDS 有一个以 *listener_manager.lds.* 为根的 :ref:`统计 ` 树。