Istnieją dwie ogólne strategie radzenia sobie z gwałtownymi ruchami: zwiększenie przepustowości i zmniejszenie kosztów.
Zwiększenie pojemności oznacza automatyczne skalowanie, z którego wszyscy byli bardzo podekscytowani, kiedy po raz pierwszy udostępniono chmury publiczne. W najbardziej podstawowym sensie spowoduje to uruchomienie większej liczby serwerów WWW w oparciu o obciążenie i dodanie ich do modułu równoważenia obciążenia, ale ponieważ zarządzanie nimi może być uciążliwe, istnieje również więcej rozwiązań automagicznych, takich jak Elastic Beanstalk.
Problem ze zautomatyzowanym zwiększaniem pojemności polega na tym, że także zautomatyzowane rozszerzanie rachunków - 10-krotny normalny ruch oznacza 10-krotność serwerów oznacza 10-krotność pieniędzy, które musisz zapłacić. Dlatego, mimo że jest to przydatna strategia, o której należy pamiętać, myślę, że zawsze powinieneś zacząć od sprawdzenia, ile możesz oszukiwać.
Przez cheat rozumiem pamięć podręczną, która opiera się na założeniu, że przez większość czasu możesz podawać użytkownikom nieco nieaktualne dane i nie zauważą ich, a to może zaoszczędzić ogromną ilość czasu. Wyobraź sobie, że masz stronę, która według ciebie jest w porządku, jeśli jest nieaktualna o pięć sekund i dostaje 20 req / s. Bez buforowania obliczenia są przeprowadzane 1200 razy na minutę, podczas gdy z buforowaniem jest tylko 12. Możesz zobaczyć, jak może to zrobić ogromną różnicę.
Istnieje oczywiście wiele rodzajów buforowania, a odnosząca sukcesy strona internetowa wykorzysta kilka z nich. Ale w twoim przypadku użycia są dwie całkiem dobre i łatwe opcje.
Pierwszym z nich jest uczynienie witryny całkowicie statyczną. Zakłada się, że możesz to zrobić, ale jeśli możesz, to po prostu Nginx podaje bezpośrednio html i może obsłużyć mnóstwo żądań bez potu.
Jeśli potrzebujesz pewnego poziomu dynamiki, dobrym rozwiązaniem jest buforowanie całej strony. Nginx ma taką możliwość, ale bardzo podoba mi się Lakier ze względu na jego elastyczność.
Bez względu na to, z której opcji korzystasz, upewnij się, że wykonałeś test ładowania, aby sprawdzić, czy poprawnie go skonfigurowałeś; czasami naprawienie jednego miejsca powoduje pojawienie się nowego wąskiego gardła.