2008-09-04 9 views
18

Quelqu'un a-t-il une expérience de la façon dont les services Web construits avec WCF de Microsoft vont évoluer vers un grand nombre d'utilisateurs? Le niveau auquel je pense est de l'ordre de plus de 1000 utilisateurs clients se connectant à une collection de services WCF fournissant la logique métier de notre application, et ceux-ci parlant à une base de données - similaire à une architecture traditionnelle à trois niveaux .Quelle sera la taille de WCF pour un grand nombre d'utilisateurs clients?

Y a-t-il des pièges particuliers qui ont ralenti les performances, ou des leçons de conception apprises qui ont permis ce niveau d'évolutivité?

Répondre

15

Pour vous assurer que votre application WCF peut évoluer au niveau souhaité, je pense que vous pourriez avoir besoin de modifier votre façon de penser sur les statistiques de vos services doivent répondre. Vous mentionnez "plus de 1000 utilisateurs clients", mais pour évaluer si vos services peuvent fonctionner à ce niveau, vous devrez également avoir quelques chiffres d'utilisation estimés, ce qui vous aidera à calculer des statistiques plus simples telles que le nombre de requêtes par seconde que votre application doit gérer. Après avoir fini de travailler sur un projet WCF, nous avons réussi à obtenir 400 requêtes par seconde sur notre matériel de test, ce qui, combiné à notre modèle d'utilisation attendu de chaque utilisateur faisant 300 requêtes par jour, nous a permis de traiter en moyenne 100 000 utilisateurs. jour (en supposant un graphique plat d'utilisation au cours de la journée). En outre, comme il est assez fréquent de rendre le code de service WCF sans état, il est assez facile d'étendre le code WCF en ajoutant des cases supplémentaires, ce qui signifie que la performance globale de votre système est beaucoup plus susceptible d'être limitée. votre logique métier et votre couche de persistance que par WCF.

2

Probablement les 4 plus grandes choses que vous pouvez commencer à regarder d'abord (en plus d'avoir simplement un bon code de service) sont des éléments liés à:

  • Manchettes - une fixation et ils protocoles qu'ils fonctionnent sur sont tout simplement plus vite que d'autres, tcp va être plus rapide que toutes les liaisons http
  • mode instance - ce qui détermine la façon dont vos classes sont attribuées contre les appelants de session
  • Un & deux opérations Way - si une réponse est pas nécessaire au client, puis faire un chemin
  • Throttling - Max Sessions/Appels Concurant et instances

Ils ne conçoivent WCF pour être sûr Par défaut, les valeurs par défaut sont très limitatives.

Questions connexes