2010-03-14 8 views
7

Zauważyłem, że ważne festiwale muzyczne (przynajmniej w Australii) i inne wydarzenia, które przeżywają szczyt ruchu, gdy bilety trafiają do sprzedaży, mają ogromne problemy z utrzymaniem dobrego funkcjonowania swoich stron internetowych. Widziałem kilka różnych technik używanych do wypróbowania walki, takich jak krótkie sesje i wirtualne kolejki, ale wydaje się, że nie mają one dużego wpływu.Scalable Ticketing/Festival Website

Jeśli miałbyś zaprojektować stronę internetową, aby sprzedać wiele biletów w krótkim czasie, jak poradziłbyś sobie ze skalowalnością? Jakie technologie i techniki programowania używałbyś?

Moje doświadczenie jest w stosie Microsoftu, więc odpowiedzi w tym obszarze będą dla mnie najbardziej przydatne, ale chciałbym również usłyszeć, jak ten problem można rozwiązać na innych platformach.

+0

Z jakimi językami lub platformami współpracujesz? Bez dodatkowych informacji na to pytanie nie da się odpowiedzieć tak dobrze. – Sampson

+1

Z punktu widzenia aplikacji, oczywiste z nich to buforowanie w warstwie internetowej, przetwarzanie zamówień offline (asynchroniczne) i dobrze dostrojone zapytania SQL. Są to ogólne praktyki i nie są one specyficzne dla scenariusza "krótkiego szczytowego ruchu seryjnego". – JoseK

Odpowiedz

3

Uważam, że głównym problemem nie jest to, że "ciężko" sprawić, aby taki system był skalowalny, ponieważ w 99% przypadków witryny te nie mają dużego ruchu. Nie jest zbyt dobrze kupować 50 serwerów front end i 10 serwerów baz danych, jeśli w 99% przypadków są one bezczynne.

Osobiście użyłbym czegoś takiego jak Amazon EC2 lub nawet nowej usługi Microsoft Azure, aby mogły działać z minimalną pojemnością przez większość czasu, a następnie zwiększać się tuż przed wydaniem dużego wydarzenia.

+0

czy te oparte na chmurze rozwiązania skalowałyby się automatycznie lub czy generalnie wybierzesz, kiedy potrzebujesz dodatkowej mocy? –

+0

Nie wiem o Azure, ale wiem, że dla Amazon trzeba uruchamiać nowe wystąpienia "ręcznie". Umieszczam to w cudzysłowie, ponieważ zapewniają API, które może posłużyć do zbudowania automatycznego rozwiązania. –

Powiązane problemy