gpt4 book ai didi

architecture - Haproxy 在 Varnish 前面还是反之亦然?

转载 作者:行者123 更新时间:2023-12-03 06:40:28 24 4
gpt4 key购买 nike

我可以想象两种设置:

负载均衡然后缓存

                          +-- Cache server #1 (varnish) -- App server #1
/
Load Balancer (haproxy)-+---- Cache server #2 (varnish) -- App server #2
\
+-- Cache server #3 (varnish) -- App server #3

缓存然后负载平衡

                                                       +-- App server #1
/
Cache Server (varnish) --- Load Balancer (haproxy) --+---- App server #2
\
+-- App server #3

第一种设置的问题是有多个缓存,这会浪费大量内存,并使缓存失效变得更加复杂。

第二种设置的问题是,可能会出现性能下降和两个单点故障(varnish 和 haproxy),而不是只有一个(haproxy)?

我很想采用第二种设置,因为 haproxy 和 varnish 都应该是快速且稳定的:您的意见是什么?

最佳答案

几年前,我为一个繁忙的 Web 应用程序构建了类似的设置(只是我使用 Squid 而不是 Varnish 完成了它),并且效果很好。

我建议使用您的第一个设置(HAProxy -> Varnish)并进行两项修改:

  1. 使用 keepalived 和共享虚拟 IP 添加辅助 HAProxy 服务器
  2. 使用balance uri负载均衡算法优化缓存命中

优点:

  • HAProxy (x2) 和 Varnish (x3) 冗余让您高枕无忧
  • 使用 HAProxy URI 负载平衡选项提高 Varnish 的命中率效率
  • 缓存服务器的性能更好,因为它们不需要在内存中保留尽可能多的内容
  • 使缓存失效更容易,因为相同的 URI 每次都会转到同一服务器

缺点:

  • URI 平衡效果很好,但如果缓存服务器出现故障,您的后端服务器将受到影响,因为从更新的 URI 平衡哈希中恢复空闲的其他缓存服务器将需要重新检索缓存数据。也许不是一个大骗局,但我确实必须在我的系统中牢记这一点。

关于architecture - Haproxy 在 Varnish 前面还是反之亦然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15448196/

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