2012-04-10 17 views
5

Chciałem, aby inni mi wytłumaczyli, które podejście jest lepsze: za pomocą sesji lub zaprojektowanie jej bez sesji. Rozpoczynamy prace nad nową aplikacją internetową i nie zdecydowaliśmy jeszcze, jaką ścieżkę zastosować.Projektowanie aplikacji internetowych: sesja lub sesja mniej

sesji less IMO korzystniejsze:

Zalety:

  1. skalowalności. Możemy mieć tyle serwerów, ile chcemy, bez konieczności udostępniania sesji użytkownika. Każdy z nich może przetwarzać żądania (np. Równoważenie obciążenia za pomocą programu round robin).
  2. Zapisuje zasoby serwera. Nie musimy przydzielać pamięci po stronie serwera (znowu - skalowalność).
  3. Nie ma potrzeby odzyskiwania po ponownym uruchomieniu serwera.

Wady:

  1. konieczności przechowywać pewne informacje związane użytkownika w plikach cookie (nie krytyczne).
  2. Wymaga więcej kodowania (ale nie za dużo kodu).

Czy przed podjęciem ostatecznej decyzji należy wziąć pod uwagę jakieś tematy?

+0

Stack Overflow nie jest dobrym miejscem do otwartej dyskusji. Zobacz http://stackoverflow.com/faq –

+0

Ponownie zadeklarowano pytanie w bardziej odpowiedniej formie. –

Odpowiedz

4

Dzisiejsze aplikacje mogą szybko rosnąć bardzo duże (wystarczy rzucić okiem na te "małe, proste" narzędzia, takie jak pastebin, jsfiddle itp.). I w pewnym momencie 16-rdzeniowa maszyna wysokiej klasy nie wystarcza (niektórzy ludzie mogą powiedzieć, że "musisz przekodować swoją aplikację, aby zaoszczędzić moc procesora bla-bla", ale problemem jest także limit połączeń http na serwer) . Tak więc, jeśli planujesz zbudować aplikację publiczną, która może stać się popularniejsza niż oczekiwano, rozpoczęcie "sesji bez snu" jest drogą do zrobienia! Szczerze mówiąc, dotyczy to tylko osób, które piszą naprawdę duże rzeczy.

Zabójcami dla sesji są: znacznie mniejszy ruch do bazy danych MySQL i łatwiejsze kodowanie. Ale będziesz musiał przepisać cały swój system, gdy Twoja aplikacja będzie duża.

+1

Myślę, że nie musisz mieć dużo więcej ruchu do mySQL - po prostu zatrzymaj wszystkich użytkowników w pamięci (np. Duży tablicę skrótów według identyfikatora użytkownika - co jest absolutnie możliwe). –