mogę sobie wyobrazić dwie konfiguracje:Haproxy przed lakierem lub odwrotnie?
Load-balance następnie cache
+-- Cache server #1 (varnish) -- App server #1
/
Load Balancer (haproxy)-+---- Cache server #2 (varnish) -- App server #2
\
+-- Cache server #3 (varnish) -- App server #3
Cache następnie obciążenie bilansu
+-- App server #1
/
Cache Server (varnish) --- Load Balancer (haproxy) --+---- App server #2
\
+-- App server #3
Problem z pierwszej konfiguracji jest to, że istnieją wiele pamięci podręcznych, które marnują dużo pamięci i sprawiają, że unieważnianie pamięci podręcznej jest bardziej skomplikowane.
Problem z drugą konfiguracją polega na tym, że może wystąpić uderzenie wydajności i dwa pojedyncze punkty awarii (lakier i haproxy) zamiast tylko jednego (haproxy)?
Kusi mnie, aby przejść z drugą konfiguracją, ponieważ zarówno haproxy, jak i lakier mają być szybkie i stabilne: jaka jest Twoja opinia?
Ta odpowiedź byłaby bardziej przydatna, gdybyś mógł zamieścić odpowiednie informacje w artykule, a nie tylko link do to. – ASGM
@Baptiste: autor artykułu na blogu (ty?) Sugeruje interesującą architekturę. Ale nie jestem pewien co do definicji "treści dynamicznej". Na przykład strona główna użytkownika może zawierać 90% treści udostępnianych każdemu innemu użytkownikowi (baner, stopka, reklamy, dzisiejsze wiadomości ...) i tylko 10% spersonalizowanych treści (z których większość prawdopodobnie nie zmienia się co sekundę). Dlatego dobrze byłoby użyć funkcji ESI Varnish, aby wspólna część podręczna strony głównej użytkownika była przechowywana w pamięci podręcznej. I czy nie można przeszukiwać pamięci podręcznej użytkownika, ale dość statyczne dane? Dzięki za radę. – MiniQuark