[Architecture] Haproxy перед лаком или наоборот?


Answers

У обоих есть плюсы и минусы. Подробнее в статье в блоге ниже, включая конфигурацию для HAProxy и Varnish: http://blog.exceliance.fr/2012/08/25/haproxy-varnish-and-the-single-hostname-website/

Батист

Question

Я могу представить две установки:

Баланс нагрузки, затем кеш

                          +-- 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

Проблема с первой настройкой заключается в том, что существует несколько кешей, которые отнимают много памяти и делают недействительным кеш более сложным.

Проблема со второй настройкой заключается в том, что может произойти поражение производительности и две единственные точки отказа (лак и haproxy) вместо одного (haproxy)?

Я соблазн пойти со второй настройкой, потому что как гапрокси, так и лак должны быть быстрыми и стабильными: каково ваше мнение?




Почему бы не использовать 2 LB, первый LB может использовать опцию balance uri , вторая LB может использовать стратегию по вашему выбору (рабочая нагрузка, круговая анимация)

          +-- Cache Server #1 --+                +-- App server #1
         /                       \              /
LB #1 --+                         + -- LB #2 --+---- App server #2
         \                       /              \
          +-- Cache Server #2 --+                +-- App server #3

Масштаб, где вам нужно, только сколько вам нужно. Если вы обнаружите, что вас не хватает в кеше, просто удалите LB # 1 и поместите только один сервер кэша впереди