假设我有一组数据库副本,我希望在前端提供这些副本。这些数据库相互复制。如果可能的话,我可以让Traefik为同一个客户端IP提供相同的后端,这样即使数据库仍在复制最新的状态,UI也可以保持一致吗?
答案 0 :(得分:1)
您似乎要求的是基于每个IP地址的粘性会话(也称为会话亲和性)。
Traefik支持基于cookie的粘性,这意味着如果启用了相关的Traefik选项,将在初始请求中分配cookie。然后,后续请求将到达相同的后端,除非它无法访问,此时将选择新的粘性后端。
可以像这样启用该选项:
[backends]
[backends.backend1]
[backends.backend1.loadbalancer]
sticky = true
可以找到文档here(搜索"粘性会话")。
如果您正在使用Traefik运行其中一个动态提供程序(例如,Docker,Kubernetes,Marathon),则通常可以使用标签/标签/注释来设置每个前端。 TOML configuration file documentation包含所有详细信息。
如果您正在寻找真正的基于IP地址的粘性,其中IP地址空间被散列并且流量均匀地分布在所有后端:这还不可能,尽管有open feature request