Load balancing dla CDN
Na jednym forum padło pytanie o load balancing dla CDN (Content Delivery Network) i wybór pomiędzy RRDNS (Round Robin DNS) a „ręcznym” balansowaniem requestów na webserwerze. Jako, że miałem prawie identyczny dylemat w przesłości postanowiłem napisać o tym kilka zdań.
Zakładamy zatem, że mamy 3 serwery CDN na subdomenach domeny głównej i trzymamy na nich statyczne pliki dla serwisy na głównym webserwerze i musimy rozdzielić równo ruch pomiędzy tymi CDN’ami. Najprostsze rozwiązanie, które przyszło mi do głowy to wykorzystanie do tego PHP i memcache. Dodałem zatem do frameworka procedurę, która dla każdego requesta sprawdza aktualny licznik przekierowań dla każdego serwera CDN i wybiera ten z najniższą liczbą – dane przechowywane są w tablicy PHP jako wartości memcache co zapewnia szybki dostęp. Cała implementacja zajęła ok 10 minut
Data: sie 19, 2010