2008-09-04 13 views
18

Czy ktokolwiek ma jakiekolwiek doświadczenie w zakresie tego, jak dobrze usługi internetowe budowane przy użyciu WCF firmy Microsoft będą skalowane do dużej liczby użytkowników?Jak dobrze będzie skala WCF dla dużej liczby klientów?

Poziom, o którym myślę, to obszar ponad 1000 użytkowników klienckich łączących się z kolekcją usług WCF zapewniających logikę biznesową dla naszej aplikacji, którzy rozmawiają z bazą danych - podobną do tradycyjnej architektury trójwarstwowej .

Czy są jakieś konkretne błędy, które spowolniły wydajność lub jakiekolwiek lekcje projektowania, które umożliwiły taki poziom skalowalności?

Odpowiedz

15

Aby zapewnić aplikacji WCF można skalować do pożądanego poziomu myślę, że trzeba dostosować swoje myślenie o statystykach twoje usługi muszą spełniać.

Wspominasz serwisowanie "ponad 1000 użytkowników klienckich", ale aby ocenić, czy Twoje usługi mogą działać na tym poziomie, musisz również podać szacunkowe wartości użycia, które pomogą Ci obliczyć prostsze statystyki, takie jak liczba żądań na sekundę, którą Twoja aplikacja musi obsłużyć.

Po zakończeniu prac nad projektem WCF udało nam się uzyskać 400 żądań na sekundę na naszym testowym sprzęcie, co w połączeniu z naszym oczekiwanym wzorcem użycia dla każdego użytkownika co 300 żądań dziennie wskazało, że możemy obsłużyć średnio 100 000 użytkowników. dzień (przy założeniu płaskiego wykresu wykorzystania w ciągu dnia).

Ponadto, ponieważ dość często zdarza się, że kod usługi WCF jest bezpaństwowy, bardzo łatwo jest skalować rzeczywisty kod WCF, dodając dodatkowe pola, co oznacza, że ​​ogólna wydajność systemu jest znacznie bardziej ograniczona przez Twoja logika biznesowa i warstwa trwałości niż w przypadku WCF.

2

prawdopodobnie 4 największe rzeczy można zacząć patrzeć na pierwszy (oprócz po prostu o dobrej kod serwisowy) są przedmioty związane z:

  • Wiązania - niektóre wiążących i ich protokoły uruchomieniu na są po prostu szybsze niż inni, TCP będzie szybciej niż którykolwiek z wiązaniami http
  • Instance Tryb - ta określa w jaki sposób zajęcia są przydzielane na rozmówców sesyjnych
  • Jeden & dwie operacje Way - jeśli odpowiedź nie jest potrzebna do klienta, a następnie wykonaj jedną stronę
  • Throttling - Max Sesje/Concurant zwraca i przypadki

Oni zaprojektować WCF być bezpieczne domyślnie, więc wartości domyślne są bardzo ograniczone.

Powiązane problemy