0
varnish vmod_directors啓用後端負載平衡在不同的模式:round_robin,fallback,random和HASH。首先明確了Varnish如何處理病態後端。當後端生病時,Varnish hash director如何處理密鑰分發?
但是,在HASH導演中會發生什麼?它會重新分配所有的關鍵空間?或者只有1/N個鍵會被移位(N是後端的數量)?
或者,您可能決定將後端分組爲2對來實現HA並且不重複緩存? (董事可以使用其他董事作爲後端)
sub vcl_init {
new h = directors.hash();
h.add_backend(backend_1, 1);
h.add_backend(backend_2, 1); // <------ sick
h.add_backend(backend_3, 1);
h.add_backend(backend_4, 1);
h.add_backend(backend_5, 1);
h.add_backend(backend_6, 1);
}
sub vcl_recv {
// pick a backend based on the request URL
set req.backend_hint = h.backend(req.url);
}
VS
new main_hash_director = directors.hash();
h.add_backend(hash_director_A, 1);
h.add_backend(hash_director_B, 1);
h.add_backend(hash_director_C, 1);
new hash_director_A = directors.hash();
h.add_backend(backend_1, 1);
h.add_backend(backend_2, 1); // <------ sick
new hash_director_B = directors.hash();
h.add_backend(backend_3, 1);
h.add_backend(backend_4, 1);
new hash_director_C = directors.hash();
h.add_backend(backend_5, 1);
h.add_backend(backend_6, 1);