0

假设我有一个数据库副本集群,我想在前端提供这些副本。这些数据库相互复制。如果可能的话,我能否让 Traefik 为相同的客户端 IP 提供相同的后端,这样即使数据库仍在复制最新状态,UI 也可以保持一致?

4

1 回答 1

1

您似乎要求的是基于每个 IP 地址的粘性会话(也称为会话亲和性)。

Traefik 支持基于 cookie 的粘性,这意味着如果启用了相关的 Traefik 选项,则会在初始请求上分配一个 cookie。随后的请求将到达同一个后端,除非它无法到达,此时将选择一个新的粘性后端。

可以像这样启用该选项:

[backends]
  [backends.backend1]
    [backends.backend1.loadbalancer]
      sticky = true

可以在此处找到文档(搜索“粘性会话”)。

如果您使用 Traefik 运行动态提供程序之一(例如,Docker、Kubernetes、Marathon),通常有可用的标签/标签/注释,您可以为每个前端设置。TOML配置文件文档包含所有详细信息。

如果您正在寻找真正的基于 IP 地址的粘性,其中 IP 地址空间被散列并且流量均匀分布在所有后端:尽管有一个开放的功能请求,但这是不可能的。

于 2017-07-02T08:45:17.013 回答