Dans quelle mesure WCF s’adaptera-t-il à un grand nombre d’utilisateurs clients ?

StackOverflow https://stackoverflow.com/questions/43823

  •  09-06-2019
  •  | 
  •  

Question

Quelqu'un a-t-il une expérience de la capacité des services Web créés avec WCF de Microsoft à s'adapter à un grand nombre d'utilisateurs ?

Le niveau auquel je pense est de l'ordre de plus de 1 000 utilisateurs clients se connectant à un ensemble de services WCF fournissant la logique métier de notre application, et ceux-ci communiquent avec une base de données - similaire à une architecture traditionnelle à 3 niveaux.

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é ?

Était-ce utile?

La solution

Pour garantir que votre application WCF peut évoluer jusqu'au niveau souhaité, je pense que vous devrez peut-être modifier votre réflexion sur les statistiques que vos services doivent respecter.

Vous mentionnez le service de « plus de 1 000 utilisateurs clients », mais pour évaluer si vos services peuvent fonctionner à ce niveau, vous aurez également besoin de chiffres d'utilisation estimés, qui vous aideront à calculer des statistiques plus simples telles que le nombre de requêtes par seconde de votre application. doit gérer.

Ayant juste 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 prévu de chaque utilisateur effectuant 300 requêtes par jour, indiquait que nous pouvions gérer en moyenne 100 000 utilisateurs par jour (en supposant un graphique d'utilisation plat tout au long de la journée).

De plus, comme il est assez courant de rendre le code du service WCF apatride, il est assez facile de faire évoluer le code WCF réel en ajoutant des cases supplémentaires, ce qui signifie que les performances globales de votre système sont beaucoup plus susceptibles d'être limitées par votre logique métier et couche de persistance qu'elle ne l'est par WCF.

Autres conseils

Les 4 éléments les plus importants que vous pouvez commencer à examiner en premier (en plus d'avoir simplement un bon code de service) sont probablement les éléments liés à :

  • Reliures - certaines liaisons et les protocoles sur lesquels elles s'exécutent sont juste plus rapides que d'autres, TCP sera plus rapide que n'importe laquelle des liaisons http
  • Mode Instance - cela détermine comment vos classes sont allouées aux appelants de session
  • Opérations unidirectionnelles et bidirectionnelles - si une réponse n'est pas nécessaire au client, faites un aller simple
  • Étranglement - Nombre maximum de sessions / appels et instances simultanés

Ils ont conçu WCF pour qu'il soit sécurisé par défaut, les valeurs par défaut sont donc très limitatives.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top