2015-07-30 1 views
0

Nous avons construit notre «pilote» sur C# et il semble maintenant que dans 6 mois, nous atteindrons la quantité d'utilisateurs et de données avec laquelle notre système ne peut pas gérer. Nous essayons de comprendre comment construire une architecture évolutive hautement chargée sur C#/.net qui peut également fonctionner avec des données volumineuses. Ce que nous avons à ce jour est the diagramC#. Une architecture évolutive à forte charge pour le Big Data

ce que nous avons besoin

  1. pour obtenir un avis d'expert sur notre solution
  2. ce que Load Balancer utilise habituellement pour .net
  3. des suggestions à propos de la base de données que nous utilisons (avantages et inconvénients). nous voulons choisir entre MongoDB et CassandraDB, mais peut-être que nous devons regarder une autre solution
  4. quel outil avons-nous besoin d'ajouter. Par exemple, nous pensons à ZooKeeper

Mise à jour:

  1. nous allons utiliser plusieurs serveurs pour MongoDB et 2 clusters pour MSSQL
  2. OAuth (porteur) pour l'authentification

Merci.

+0

Avant d'ajouter plus, peut-être regarder ce que vous pouvez enlever? Pourquoi utilisez-vous Redis devant la base de données? La file d'attente de messages va déjà tamponner le trafic. –

+0

@ChrisPatterson, merci pour votre réponse. C'est la première fois que j'utilise MassTransit. Dois-je comprendre que MassTransit prend en charge la mise en mémoire tampon des messages de la boîte? En fait, je ne peux pas trouver d'informations à ce sujet. – AntonS

Répondre

0

Le diagramme je sais presque rien ... il y a tellement de choses à prendre en considération pour la mise en œuvre d'une bonne évolutivité ....

  • Une chose qui vient toujours à l'esprit est: les données utilisateur état, utilisez-vous des sessions? si oui, comment? et où le stockez-vous? Etes-vous également "attacher" la base de données à plusieurs serveurs ou à un seul serveur de base de données principal? Configuration utilisée ?? Redis et autres couches de cache, sont connectés aux points précédents des paramètres de la base de données .... vous pourriez même mettre en cache des données non correctes et les ramener au début (mais seulement vous pouvez comprendre comment critique cela peut être ou pas du tout).

  • Équilibrage de charge - par machine (s) physique (s) ou logiciel (s)?

+0

Merci pour votre réponse. J'ai mis à jour ma réponse un peu. À propos de la session, comme je l'ai obtenu à partir de ce post http://stackoverflow.com/a/11479021/5100673 c'est une mauvaise idée d'utiliser la session pour l'API RESTful. En ce qui concerne LB, nous ne savons pas ce que nous devons utiliser (avantages et inconvénients), car c'est notre premier système très chargé. – AntonS