écaillage ASP.NET SignalR Applications avec cache distribué

Webinaire enregistré
Kal Ali et Nick Zulfiqar

ASP.NET SignalR est une bibliothèque open source pour les développeurs Web qui est très couramment utilisée de nos jours pour ajouter des fonctionnalités Web en temps réel aux applications. Vous pouvez utiliser ASP.NET SignalR pour pousser le contenu du côté serveur vers tous les clients connectés dès que les informations sont disponibles.

SignalR aide à simplifier les efforts de développement nécessaires pour ajouter des fonctionnalités Web en temps réel à votre application. Certaines applications courantes pouvant utiliser SignalR sont les systèmes de chat, Internet des Objets (IoT), applications de jeu, systèmes de réservation de compagnies aériennes, applications de bourse et bien d'autres.

Le problème avec SignalR est qu'il n'est pas évolutif par défaut. Et, pour créer une ferme Web, Microsoft offre la possibilité d'utiliser un SignalR backplane qui peut être généralement défini comme un magasin central de messages et auquel tous les serveurs Web sont connectés simultanément. Les messages SignalR sont diffusés à tous les clients finaux connectés via le fond de panier.

Typiquement, SignalR backplane est une base de données relationnelle lente et non évolutive pour gérer une charge de messagerie extrême, ce qui est une exigence essentielle pour les applications Web en temps réel à fort trafic. SignalR backplane doit également être très fiable et hautement disponible afin que vous disposiez d'une disponibilité de XNUMX % du côté de l'application.

Dans ce webinaire, vous voyez comment NCache SignalR backplane est une meilleure option par rapport aux options traditionnelles pour déployer et faire évoluer votre temps réel ASP.NET SignalR applications Web avec fond de panier. Nous démontrons comment NCache peut être utilisé comme votre SignalR backplane sans nécessiter de codage majeur.

Notre architecte de solutions senior couvre :

  • Introduction à la ASP.NET SignalR et ses cas d'utilisation courants
  • Problèmes avec la mise à l'échelle des applications SignalR et avec les options de fond de panier traditionnelles
  • Constat NCache Le fond de panier est une meilleure option en comparaison
  • En utilisant NCache comme fond de panier pour vos applications ASP.NET
  • NCache Paquets Nuget pour SignalR backplane
  • Créez, déployez et exécutez des applications SignalR à l'aide NCache fond de panier

Donc, aujourd'hui, nous parlerons de SignalR en tant que technologie, comment et où il est possible de l'utiliser dans vos applications et quels sont les problèmes qui se posent en particulier, dans le cas où vous introduisez le fond de panier dans ce scénario et comment quoi sont les options possibles, que vous avez et comment vous pouvez essentiellement les contourner ? Donc, je vais couvrir toutes ces choses différentes et comme exemple de produit, j'utiliserai NCache. Donc, nous reviendrons à cette partie plus tard, dans un premier temps, nous couvrirons simplement une théorie de base là-bas.

Introduction à SignalR

Passons donc à l'introduction proprement dite de SignalR. Voici donc quelques définitions que j'ai copiées de la documentation Microsoft. Alors, Qu'est-ce que SignalR ? SignalR est essentiellement une bibliothèque open source que les développeurs peuvent utiliser pour introduire des fonctionnalités Web en temps réel dans vos applications ASP.NET. Alors, laissez-moi vous donner un exemple pour expliquer, comment et ce que je veux dire exactement ici. Par exemple, vous avez un utilisateur qui accède à une page Web et il ou elle a un certain bit de données, qui est présent sur la page mais si ces données doivent être fraîches ou si l'utilisateur veut obtenir des données mises à jour dans des scénarios normaux , l'utilisateur doit soit actualiser la page, essentiellement l'utilisateur doit envoyer une demande, puis en réponse à la réception des données mises à jour, soit ceci, soit il doit y avoir une longue conservation qui doit être implémentée dans le dos. Mais si vous avez SignalR, cela ne serait pas nécessaire et j'aborderai ces détails plus tard et c'est l'un des très bons cas d'utilisation où SignalR est un très bon candidat.

Donc, deuxièmement, SignalR vous donne la possibilité d'avoir plusieurs contenus de code push directement du côté client. Donc, fondamentalement, la partie où le client doit envoyer une demande pour obtenir les données mises à jour est qu'il n'est plus nécessaire d'être présent. Donc, fondamentalement, vous êtes les clients, tous les clients réellement connectés au serveur Web seraient mis à jour dès qu'il y aurait de nouvelles données sur le serveur. Ainsi, le serveur n'a pas à attendre que le client demande réellement de nouvelles données. Les données seraient automatiquement mises à jour sur le client. Donc, la meilleure chose à propos de SignalR est qu'il vous expose la fonctionnalité. Ainsi, il vous suffit d'introduire les ressources SignalR dans votre application et vous devez appeler certaines fonctions spécifiques et tout le reste est géré par SignalR. Ainsi, votre application utiliserait SignalR pour envoyer un message, par exemple, des clients au service et des serveurs au client, quel que soit votre scénario et tout le reste et par tout le reste, je veux dire la couche de transport. Comment le message est transféré et comment il est notifié, tout le reste est pris en charge par la logique SignalR. Ainsi, vous n'avez pas besoin de le faire dans votre application, il vous suffit d'introduire ces API dans votre application et tout le reste est automatiquement géré par SignalR. Donc, dans ce diagramme, si vous pouvez voir ici.

Je vais juste vous donner un exemple. Ainsi, dans SignalR, il existe un concept de hub. Donc, dans ce diagramme ici, nous pouvons voir que le serveur, c'est un serveur Web et c'est un client connecté. Il peut s'agir d'un client HTML ou JavaScript. Ainsi, ce serveur est capable d'appeler cette fonction myClientFunc() du côté client ici et vice-versa. Si vous regardez ce schéma.

Le client est capable d'appeler cette fonction spécifique monServeurFunc() côté serveur. Donc, fondamentalement, avec HTTP, nous savons tous que c'est un protocole sans état. Il y a une demande, puis il y a une réponse et il n'y a rien d'autre, tout le reste est supprimé, mais avec SignalR, ce qui se passe, c'est qu'en dessous, SignalR utilise WebSocket pour maintenir les connexions. Donc, ce sont pour les technologies les plus récentes mais dans les plus anciennes, elles utilisent la normale dans les bases mais elles utilisent le concept de WebSockets auquel il est capable d'invoquer des fonctions soit du serveur au client, puis du client au serveur dépend de la façon dont cela est fait.

Alors, laissez-moi vous expliquer quelques cas d'utilisation généraux pour SignalR. Ainsi, le premier est un système de chat. Il s'agit également d'un exemple de projet partagé par Microsoft lui-même et dans ma démonstration également, j'utiliserai un système de chat fourni par Microsoft et j'aurai NCache intégré avec lui mais revenons aux exemples ici. Donc, ici, vous avez besoin de messages en temps réel qui doivent être envoyés par exemple, si vous avez un groupe où il y a un certain nombre de membres présents dans le groupe et si l'un des membres envoie un message, cette notification de message doit être reçue par tous les membres du groupe et cela doit être fait instantanément. Il y a un retard de toute sorte qui ne peut être accordé et le même cas avec l'industrie du jeu. Ainsi, par exemple, vous avez des jeux multijoueurs en ligne où il faut beaucoup réfléchir car il y a beaucoup de joueurs qui jouent ensemble à la fin de la même session et les détails du jeu doivent être synchronisés avec chacun d'eux. .

Le troisième cas d'utilisation est, par exemple, le système de réservation des compagnies aériennes. Ainsi, si un billet ou un siège spécifique a été réservé, toutes les autres personnes ou tous les autres utilisateurs qui consultent actuellement ces données spécifiques doivent être informés que ce billet spécifique ou ce siège spécifique est déjà réservé et ne peut pas être réservé plus.

Des exemples similaires d'actions, car si elles changent constamment, les valeurs montent et descendent. Donc, ils doivent être mis à jour assez rapidement côté client et c'est une très bonne exigence.

Un autre est un deuxième contenu d'écran, qui peut être des publicités ou toute sorte d'autres notifications qui doivent être affichées et enfin il y a Internet des appareils, Internet des objets. Donc, en gros, ces appareils collectent constamment des données, ils les analysent, ils envoient des notifications. Donc, toutes ces choses ont besoin d'un certain type de fiabilité et il est urgent de les recevoir sur les récepteurs. Ainsi, tous ces cas d'utilisation sont de très bons scénarios dans lesquels SignalR peut être utilisé et, en général, si l'on parle d'aujourd'hui, il est en fait utilisé en ce moment.

Donc, si je pouvais passer à la diapositive suivante. Les gars, si vous avez des questions, vous pouvez toujours intervenir et Nick me fera savoir s'il y a une question et je serai heureux de vous répondre.

Mise à l'échelle des applications SignalR

Parlons donc de la mise à l'échelle des applications SignalR. Donc, si vous regardez cet exemple ici.

Cet exemple montre essentiellement que vous avez une ferme Web et que vous pouvez également être un jardin Web, mais je lui donne l'exemple avec la ferme Web. Donc, vous avez une ferme Web ici, où vous avez un certain nombre de serveurs Web ici, vous avez un équilibre de charge entre toutes les demandes, qui arrivent sur tous les serveurs Web présents dans votre ferme Web, puis vous avez tous ces différents clients. Ces clients seraient connectés à l'un des serveurs Web de la batterie de serveurs Web.

Donc, si vous prenez cet exemple ici, le client A est connecté à ce serveur Web et le client B est connecté à ce serveur Web et le client C est connecté à ce serveur Web. Ainsi, le problème ici est que, par exemple, si ce serveur Web doit envoyer un message, il doit envoyer n'importe quel type de message ou de notification. Il ne pourra envoyer cette notification qu'à ses clients connectés spécifiques et dans ce cas, si ce client A envoie un message, il ne sera reçu que par les clients connectés à ce serveur Web et dans ce cas c'est un seul.

Alors, que se passe-t-il s'il y a une discussion de groupe et que cela se passe entre au moins trois clients et qu'ils seraient connectés à trois serveurs Web différents. Ainsi, si l'un des clients envoie un message, les autres clients pourront désormais recevoir ce message dans ce scénario spécifique, car seuls les clients connectés à un serveur Web spécifique pourront recevoir cette notification. Donc, dans ce cas, il est limité car seuls les clients connectés au serveur Web peuvent recevoir cette notification et afin de s'en débarrasser, SignalR a introduit un terme avec le nom SignalR Backplane.

SignalR Backplane

Laissez-moi vous expliquer ce que c'est exactement. Donc, si vous prenez le même exemple mais un peu différent d'un scénario différent, vous avez une ferme Web ici et vous avez un équilibreur de charge entre les deux, supposons que toutes les demandes du client arrivent via cet équilibreur de charge et venant à leur service Web respectif.

SignalR Backplane Approche
SignalR Backplane Approche

Donc, dans ce cas ici, il y a un bus partagé, il y a un référentiel partagé qui est connecté à tous les serveurs Web présents dans le formulaire ici. Donc, si vous avez supposons que vous avez dix serveurs Web et que tous seraient réellement connectés à ce fond de panier ici et c'est le lieu commun qui va être utilisé pour envoyer ou essentiellement, diffuser les messages ou toute notification à tous les serveurs Web connectés.

Ainsi, dans ce cas, si ce serveur Web génère une notification ou un message, il ne l'enverra pas directement aux clients connectés. En fait, il l'enverrait d'abord au fond de panier et une fois que le fond de panier recevra cette notification ou ce message, il l'enverra ensuite à tous les serveurs Web connectés, puis après cela, les serveurs Web les enverront à leurs clients connectés et dans ce Ainsi, il garantit que le message ou la notification n'est pas limité aux seuls clients connectés de ce serveur Web spécifique. Il est reçu par tous les clients connectés à celui d'une ferme web spécifique par exemple à droite. Alors, allons-y étape par étape.

Ainsi, par exemple, il y avait une notification que ce serveur Web devait envoyer. Donc, la première chose qu'il va faire va notifier le fond de panier ici et ce que le fond de panier va faire ici, va diffuser cela à tous les serveurs Web connectés ici. Ainsi, le premier message reçu par le fond de panier, puis le fond de panier l'a envoyé au serveur un, puis au serveur deux ici, puis après cela, ces deux serveurs Web spécifiques ont envoyé ce message à tous les clients connectés dans leur scénario.

Donc, dans ce cas, contrairement au scénario qui était ici, si par exemple, il y a une discussion de groupe en cours comme je l'ai mentionné plus tôt, tous ces clients n'obtiendraient pas une expérience ou une vue cohérente, mais dans ce cas ici, s'il y a un groupe chat en cours, tous les clients auraient une vue cohérente, ils seraient informés instantanément de toute mise à jour ou de tout nouveau message entrant. C'est donc l'un des principaux avantages de l'introduction d'un fond de panier dans le scénario, mais maintenant, nous allons pour voir quelles sont les limitations qui ont été observées avec un scénario de fond de panier et quelles sont les options possibles que nous pouvons avoir ?

Goulots d'étranglement avec SignalR Backplane

D'accord. Donc, je parlais des goulots d'étranglement avec SignalR Backplane. Ce sont donc les principaux goulots d'étranglement observés au sein du SignalR Backplane et ce sont aussi les opportunités sur lesquelles tout candidat possible peut être marqué pour être utilisé comme un SignalR Backplane dans le scénario SignalR.

Latence et débit

Ainsi, le premier est la latence et le débit. SignalR Backplane doit avoir une latence très faible et un débit élevé et laissez-moi vous expliquer ce que signifie une faible latence ? La latence signifie essentiellement le temps que SignalR Backplane ou Backplane prend pour traiter un message une fois qu'il le reçoit, le temps qu'il faut pour traiter ce message, puis le diffuser ou l'envoyer à tous les services Web connectés dans ce scénario, c'est-à-dire la latence.

Donc, cela doit être très minimum, ce que cela signifie, c'est que dès qu'il reçoit un message, il doit l'envoyer rapidement à tous les serveurs Web connectés de la ferme Web. Par exemple, et puis le débit est le nombre total de messages, qu'il peut faire dans un certain laps de temps et cela peut être une seconde, dix secondes ou même cent secondes selon l'échelle de mesure qui est présente ici.

Habituellement, dans les applications d'un environnement de déploiement sur site, vous avez ces bases de données comme dans leur fond de panier, mais il y a peu de limitations avec la base de données. Les bases de données sont généralement lentes, elles ne peuvent pas évoluer et elles sont généralement bloquées par une charge de transactions élevée. Donc, ils sont lents et ensuite ils ne peuvent pas évoluer parce que c'est un serveur unique et puis il y a une sauvegarde par exemple, si c'est un scénario mais c'est un serveur unique et il y a une certaine limite à laquelle il peut traiter le nombre des demandes arrivant après, qu'il commencera à être submergé par ces notifications par transactions et cela commencerait en fait à affecter votre application. Ainsi, vous pouvez essentiellement augmenter le nombre de serveurs Web dans votre environnement pour gérer l'augmentation de la charge à venir sur votre formulaire Web, mais lorsque ces applications doivent entrer en contact avec une base de données. Par exemple, dans la banque, c'est là que se trouve le goulot d'étranglement et c'est là que toutes vos applications en pâtissent en termes de performances.

Livraison garantie des messages

La prochaine chose est la livraison garantie de vos messages. SignalR Backplane doit être fiable, il doit assurer une livraison garantie des messages. Il ne devrait pas y avoir de scénario où un message n'a pas été livré tout ce qu'il a été manqué ou en raison de n'importe quel scénario n'a jamais été reçu correctement. Ainsi, il doit avoir une garantie de livraison des messages.

Un autre est les bases de données, comme je l'ai mentionné plus tôt, la base de données peut s'étouffer sous une charge extrême et il s'agit également d'un point de défaillance unique. Donc, si ce serveur spécifique tombe en panne dans tout votre environnement, tombe en panne, cela ne devrait pas être le scénario, il devrait y avoir une sorte de sauvegarde efficace qui peut, en cas d'urgence, quel que soit le scénario, il devrait être en mesure de récupérer très rapidement à partir de ce scénario spécifique.

Haute disponibilité du fond de panier

Le troisième est qu'il doit avoir une haute disponibilité. Ainsi, SignalR doit être hautement disponible en raison de n'importe quel scénario, s'il y a un problème quelconque, l'ensemble du système devrait maintenant tomber en panne. Il devrait y avoir une sorte de sauvegarde qui peut aider à poursuivre les opérations, elle ne devrait pas être affectée très rapidement s'il y a une situation. Il devrait y avoir une sorte de sauvegarde et cela devrait être capable de tout maintenir ou de maintenir l'environnement jusqu'à ce que tout puisse être restauré à la normale et cela peut être dans des scénarios planifiés, où il y a une sorte de scénario de maintenance planifié ou non planifié où tout pourrait se tromper.

Donc, si nous regardons ce diagramme ici.

Goulot d'étranglement d'évolutivité dans la base de données
Goulot d'étranglement d'évolutivité dans la base de données

Nous pouvons examiner l'évolutivité du goulot d'étranglement avec une base de données et c'est exactement ce que je vous expliquais en ce moment, vous avez tous vos clients qui sont connectés et leurs demandes sont redirigées via l'équilibreur de charge et c'est votre agriculture Web . Comme je l'ai mentionné précédemment, vous pouvez faire évoluer cette ferme Web, vous pouvez augmenter le nombre de serveurs Web, ce qui augmenterait en fait le nombre total de requêtes, que votre environnement peut essentiellement prendre en charge à un moment donné, mais le problème réel repose, lorsque ces serveurs Web doivent entrer en contact avec le backend avec la base de données à l'arrière et cela peut être pour n'importe quel scénario, mais pas seulement pour SignalR ou pour tout autre scénario également.

Cache distribué en mémoire en tant que SignalR Backplane

Je vais donc présenter la solution. La solution à cela est un cache distribué en mémoire en tant que SignalR Backplane et je vais comme mentionné au début, je vais être utiliser NCache comme exemple de produit pour cela et NCache est un produit open source. Nous avons différentes versions et vous pouvez les évaluer si nécessaire.

Cluster de serveurs de cache

Alors, laissez-moi vous expliquer ce qu'est un cache distribué en mémoire ? Ainsi, le cache distribué en mémoire est essentiellement un cluster de serveurs de cache peu coûteux. Donc, vous avez différents serveurs de cache hébergeant le même cache, c'est logiquement une seule unité mais en dessous il y a plusieurs serveurs, qui hébergent ce cache et une fois qu'ils sont ensemble, ils veulent un nombre multiple de serveurs. Non seulement ils tirent ensemble les ressources de puissance de calcul totales, mais ils tirent également les ressources de mémoire. Ainsi, comme vous disposiez d'un nombre de serveurs, vous évoluiez essentiellement en fonction du nombre de transactions pouvant être effectuées dans un délai précis, ainsi que du nombre total de données pouvant être stockées.

En ce moment, j'explique généralement en termes de qu'est-ce qu'un cache distribué en mémoire ? Je ne parle pas en référence à SignalR mais je vais mapper toutes ces fonctionnalités avec les goulots d'étranglement qui ont été initialement discutés. Donc, au départ, j'explique simplement et cela pourrait être un cache distribué qui pourrait être utilisé pour un scénario de mise en cache d'objets ou un scénario de mise en cache de session, c'est pour tout cela en ce moment mais je vais également mapper ces fonctionnalités là-bas.

Cache synchronisé sur les serveurs

Ainsi, ici, plusieurs serveurs multiples regroupent la mise en commun de leurs ressources de mémoire ainsi que les ressources de puissance de calcul ensemble et la prochaine chose est qu'un cache se synchronise à travers le service. Ainsi, en référence à NCache ce qu'il fait, c'est même si, par exemple, vous avez quatre serveurs de cache hébergeant le même cache et que de nouvelles données sont ajoutées au cache. Il existe une carte de distribution qui est mise à jour dès que les données sont ajoutées ou mises à jour ou même supprimées, elles sont mises à jour.

Ainsi, à tout moment, même si l'un des serveurs, l'un des serveurs de cache reçoit un nouvel élément, tous les autres serveurs du cluster seraient automatiquement et instantanément avertis qu'un nouvel élément a été ajouté au cache maintenant . Ainsi, cela garantit que l'ensemble de l'environnement reste synchronisé les uns avec les autres et qu'il existe différentes topologies dans lesquelles les données sont conservées dans le cache et c'est une discussion distincte, mais en général, dès que l'élément est ajouté, tous les serveurs du cluster obtiennent informé d'un nouvel élément ajouté. Ainsi, de cette façon, il garantit qu'il est immédiatement visible par tous les serveurs présents dans le même costume.

Évolutivité linéaire

Le troisième est linéairement évolutif comme je vous l'ai mentionné plus tôt, ce sont plusieurs serveurs qui sont rassemblés et il n'y a pas de limite, vous pouvez ajouter autant de serveurs ici, selon les besoins et le cache s'ajustera automatiquement. Il augmente fondamentalement la demande totale qu'il peut gérer, il augmente également le nombre total de données de membre qui peuvent être ajoutées au même cache. Donc, tout est linéairement évolutif. Ainsi, lorsque vous mettez à l'échelle votre niveau d'application, vous pouvez également mettre à l'échelle votre niveau de mise en cache et c'était l'un des goulots d'étranglement avec les bases de données. Vous ne pouvez jamais mettre à l'échelle votre environnement de base de données, mais avec cela, vous pouvez certainement mettre à l'échelle votre serveur de cache, l'ensemble de votre cache et de cette façon, vous pouvez également augmenter les performances de vos applications.

Réplication des données pour plus de fiabilité

Le quatrième est la réplication des données pour la fiabilité. Donc, comme je vous l'ai mentionné plus tôt, il s'agit de plusieurs numéros, de plusieurs serveurs qui sont regroupés. Ainsi, selon la topologie, des réplications sont maintenues sur d'autres serveurs. Ainsi, même si l'un des serveurs tombe en panne, les données de ce serveur perdu sont répliquées sur l'un des autres serveurs et cela démarrerait automatiquement le processus de récupération, puis il afficherait ces données et les remettrait dans les partitions actives du cache. Si nous parlons de partition de répliques par exemple, en tant que topologie de NCache. Ainsi, il apporterait automatiquement ces données et les ajouterait au même cache. Ainsi, les données ne sont pas perdues même si l'un des serveurs est parti et s'il y a des clients connectés à ce serveur, qui a été perdu, ils le détecteraient automatiquement et ils basculeraient leur connexion vers le service restant présent dans le cluster et c'est l'un des autres éléments clés, qu'il ne s'agit pas d'un seul point de défaillance. Donc, si vous avez plusieurs serveurs tant qu'il vous reste un serveur de cache dans le cluster, votre cache serait fonctionnel, vous répondriez aux requêtes qui arrivent donc, même si l'un des serveurs tombe en panne, l'ensemble le cache ne descend pas. Votre environnement ne tombe pas en panne et vos applications continuent de fonctionner correctement. Donc, maintenant, je vais cartographier toutes ces choses dont je viens de parler ou les goulots d'étranglement qui ont été discutés précédemment pendant un SignalR Backplane.

Donc, si vous allez ici et que le premier était la latence et le débit. Ainsi, la latence comme je l'ai mentionné plus tôt est le temps de traitement. Donc, si vous avez beaucoup de serveurs générant beaucoup de messages et donc, ces demandes arrivent directement au fond de panier et le fond de panier dans ce cas est Ncache. Donc, si vous sentez que votre environnement est étouffé, vous pouvez ajouter un certain nombre de serveurs, ce qui augmenterait en fait la capacité totale de traitement de ce nombre de requêtes.

Puis-je poser une question ici ? Quelle est la complexité de la mise en place NCache as SignalR Backplane? C'est assez facile et nous avons une explication très détaillée et expliquée d'un document, ce qui vous aide à le parcourir et je vais parcourir exactement cela et la partie de démonstration pratique et je ferai référence à cette question là-bas.

Donc, pour en revenir aux goulots d'étranglement qui étaient généralement observés avec le SignalR Backplane et cartographie NCache sur une fonction de cache d'invalidité générale dessus. Donc, comme je l'ai mentionné plus tôt, votre latence devient très faible car vous avez plusieurs serveurs, qui peuvent réellement gérer les demandes qui arrivent. Ainsi, cela réduirait automatiquement la latence et, évidemment, vous augmenteriez également le débit à mesure que vous ont une faible latence, le débit diminuait automatiquement et, en général, vos performances globales diminuaient.

La seconde est la livraison garantie des messages. Ainsi, au sein du NCache l'algorithme et la logique du client au serveur, de nombreux contrôles sont maintenus. Ainsi, si par exemple, le client tente de se connecter au cache en cluster et si, pour une raison quelconque, il est incapable de transmettre ce message, des tentatives internes sont implémentées. Ainsi, le client NCache le client essaie automatiquement de se reconnecter au serveur de cache et tout cela est configurable car vous pouvez configurer le nombre de tentatives, vous pouvez configurer combien de temps il doit réessayer tout cela ? Donc, en gros, vous pouvez vous assurer que votre client est capable de se connecter à votre cluster de cache spécifique dans ce cas et même pendant qu'une connexion est déjà maintenue et qu'elle est rompue. Encore une fois, dans ce scénario spécifique, cela garantirait que le message soit effectivement livré.

Le troisième est la haute disponibilité du fond de panier et c'est l'un des éléments clés, j'ai d'abord mentionné, vous avez plusieurs serveurs hébergeant le cache. Ainsi, si l'un des serveurs tombe en panne, cela ne signifie pas que tout le cache tombe en panne. Vos autres serveurs vont pouvoir gérer la charge entrante. Ils vont faire basculer les connexions des clients vers les serveurs restants présents dans le cluster. Ainsi, de cette manière, il garantit une haute disponibilité, il garantit que les messages sont réellement livrés et enfin, il garantit que les performances sont considérablement augmentées à mesure que vous ajoutez du nombre, à mesure que vous évoluez sur votre niveau d'application. Vous pouvez également évoluer au niveau de la mise en cache.

Kal une autre question, quelle amélioration des performances peut obtenir à chaque utilisation NCache as SignalR Backplane, par rapport aux bases de données ou y a-t-il des repères ? D'accord, en particulier pour SignalR, je devrai peut-être rechercher ces références, mais en général, en termes de références, en termes de nombre de transactions en cours, je peux certainement les montrer plus tard, il y avait une capture d'écran. Donc, je peux le montrer.

Juste là. Donc, ce sont les chiffres d'évolutivité et ils sont également spécifiques aux topologies, mais ce sont généralement une fois. Ainsi, comme vous aviez un certain nombre de serveurs, vous augmentiez en fait le nombre total de transactions pouvant être effectuées et de transactions et décomposées en lectures et écritures par seconde. Ainsi, ceux-ci peuvent certainement être comparés aux bases de données car ce n'est pas évolutif. Ainsi, cela deviendrait un moment où le cache apparaîtrait réellement par rapport à la base de données.

D'accord. Alors, venez ici. Il s'agit d'un déploiement typique de Ncache.

Nous vous recommandons donc d'avoir un niveau de mise en cache séparé, comme vous pouvez le voir ici, mais vous pouvez également avoir le cache sur les mêmes serveurs que votre application. Donc, c'est également pris en charge, mais nous recommandons d'avoir un niveau de mise en cache séparé et je vais donner une référence en parlant de cela, donc, c'est votre niveau d'application, où vous avez tous vos serveurs d'application et c'est votre niveau de mise en cache . Encore une fois, c'est linéairement évolutif, vous pouvez ajouter ici autant de serveurs que nécessaire, puis tous ces serveurs comme je l'ai mentionné plus tôt, ils ne nécessitaient aucun matériel spécifique. Ils ne nécessitent aucune technologie de pointe ou ce sont des serveurs peu coûteux et avec NCache le seul pré-enregistrement de NCache est .NET 4.0, sinon NCache est pris en charge sur tous les environnements Windows. Les systèmes d'exploitation recommandés sont Windows Server 2008, 12 et 16 où celui qui a .NET 4.0 avec lui, vous pouvez certainement travailler avec cela avec NCache.

Il existe deux types d'installation différents. Il y a le NCache l'installation du serveur de cache, qui peut en fait héberger un cache, puis il y a un remote client installation. Remote client peuvent avoir un cache local ou essentiellement autonome et ils peuvent, ils ont les bibliothèques et les ressources pour que les clients puissent se connecter aux caches de cluster distants et comme je l'ai mentionné précédemment, les caches en cluster sont ceux qui sont hébergés sur l'installation du serveur de cache . Il s'agit donc d'un déploiement typique, toutes vos applications sont connectées à la base de données au niveau de mise en cache et le niveau de cache est également connecté à la base de données à l'arrière. Nous avons des fonctionnalités, qui sont également prises en charge et qui peuvent être utilisées. Alors, NCache il peut non seulement être utilisé par exemple, comme fond de panier pour SignalR, mais il peut être utilisé pour la mise en cache de données, la mise en cache de session et nous avons d'autres webinaires et documentations, qui vous aident à les configurer si cela vous intéresse.

D'accord. Donc, maintenant, ce diagramme montre essentiellement NCache, il est déployé comme un SignalR Backplane.

Donc, il est assez similaire au même, que nous examinions initialement. Donc, c'est votre ferme Web ici et vous avez supposé un équilibreur de charge ici. Ainsi, toutes les demandes des clients sont redirigées, donc au lieu d'un fond de panier d'avion ici, NCache est utilisé comme fond de panier ici et vous avez ici un certain nombre de serveurs, qui sont linéairement évolutifs, comme je l'ai mentionné plus tôt dans ce cas. Nous avons trois serveurs Web, trois serveurs de cache ici. Donc, dans ce cas, ce serveur Web ici, a généré une notification ou un message et il a envoyé cette notification au fond de panier et dans ce cas, le fond de panier a été NCache. Que NCache ferait? Il publierait à son tour ceci essentiellement, diffuserait cette notification à tous les abonnés de ce message même ici. Ainsi, une fois ce message reçu par NCache, il était ensuite diffusé sur tous les serveurs web connectés. Dans ce cas et après cela, il a ensuite été envoyé à tous les clients connectés. Ainsi, de cette façon, il s'est assuré que c'était le cas, tous les clients connectés avaient ce visualiseur cohérent et une expérience tout en travaillant sur leur application et NCache a été branché en tant que fond de panier dans ce cas. Et ce sont les chiffres, dont j'ai déjà parlé. Donc, comme vous aviez un certain nombre de serveurs, vous pouvez voir qu'il y a une amélioration linéaire du nombre de lectures et du nombre d'écritures en cours en ce moment. Ainsi, il est linéairement évolutif, il n'y a pas d'arrêt, vous pouvez donc ajouter ici autant de serveurs que nécessaire dans votre environnement.

Démonstration pratique

Donc, je vais passer à la partie de démonstration pratique et c'est là que je vais montrer comment créer un cache ? Je vais le parcourir rapidement parce que cela ne fait pas partie de l'ordre du jour, mais nous avons d'autres webinaires dans lesquels, nous couvrons chaque détail et nous parlons des meilleures pratiques et d'autres recommandations générales, lorsque vous êtes créer un cache ou configurer et configurer différents paramètres liés au processus de création de cache.

Installer NCache et créer un cache en cluster

Donc, la première chose que vous devez faire est d'installer, de le faire et de télécharger une copie de NCache à partir de notre site Web, puis vous devez l'installer dans votre environnement. J'ai deux machines, qui ont NCache déjà installé sur eux et je vais l'utiliser. Donc, je vais juste me connecter à ceux-ci. Je les ai connectés demo1 et demo2 ici. Donc avec NCache il vient un outil NCache gestionnaire à travers lequel vous pouvez essentiellement créer et configurer et travailler avec et gérer les caches essentiellement, c'est donc à ce moment que vous ouvrez le NCache gestionnaire. C'est la vue que vous obtenez, si vous faites un clic droit sur les caches en cluster et cliquez sur créer un nouveau cache en cluster, c'est la vue que vous obtenez.

Ainsi, tous les caches doivent être nommés. Je vais continuer et lui donner un nom SignalRCache. Tous les caches doivent être nommés comme je l'ai mentionné plus tôt, mais ce n'est pas sensible à la casse, vous pouvez l'utiliser de n'importe quelle manière. Cliquez sur Suivant. Ce sont les quatre topologies et nous avons cela couvert dans d'autres webinaires.

Il s'agit d'une stratégie d'application, je vais tout garder par défaut et je vais juste configurer les deux serveurs de cache que je viens de vous montrer, demo1 et demo2 ici, juste en cliquant sur suivant. Il s'agit du port sur lequel le cluster communique. Alors, NCache utilise les ports TCP/IP pour maintenir ses connexions. Donc, je regarde juste Nestor, c'est la taille du cache. Si vous utilisez NCache pour SignalR et en tant que BackPlane pour SignalR, la taille n'a pas vraiment d'importance car c'est juste un que, qui sera conservé dans le cache et dès que ce message sera envoyé aux clients connectés, il sera supprimé. Donc, à part un seul élément, il n'y a rien de plus qui va être stocké dans le cache et l'élément unique, je vais en parler plus tard quand je vais regarder l'échantillon réel qui l'accompagne.

Donc, je vais juste garder tout par défaut ici, je vais désactiver les expulsions parce que je ne veux pas que quoi que ce soit soit supprimé, même dans le cas où le cache est plein. Je vais cocher cette case qui va lancer le cache quand je clique sur Terminer, je vais juste cliquer sur terminer. C'est aussi simple que cela de créer un cache dans votre environnement en utilisant NCache. Donc, je vais juste attendre que le cache démarre et ensuite je vais ajouter un remote client à elle, ça va être ma machine personnelle ici. Ok donc, le cache est démarré et nous pouvons voir ici, cette activité nulle à ce stade, mais c'est parce que nous n'avons aucune autre application, aucune application essentiellement connectée à ce cache en ce moment.

Donc, je vais simplement continuer et ajouter ma machine en tant que nœud client pour ajouter un client ou simplement cliquer avec le bouton droit ici et cliquer sur ajouter un nœud. Je vais lui donner l'adresse IP de mes machines personnelles, cela peut être un nom de machine ou une adresse IP, les deux sont pris en charge. Cliquez simplement sur terminer ici.

Nous pouvons voir que ma machine est ajoutée en tant que remote client ici. Donc, je vais juste tester rapidement ce cache pour voir si tout fonctionne, c'est très bien en fait avant ça, laissez-moi vous montrer le outil de suivi de NCache. Donc, si vous utilisez NCache en tant que fond de panier, vous pouvez utiliser l'outil de surveillance qui est un excellent outil, qui vous donne un peu de détails sur ce qui se passe exactement dans le cache, vous aide à déboguer les problèmes et en fait, vous obtenez beaucoup de détails, comment les performances se passe et comment d'où et où les coups réels sont pris et ce qui peut être amélioré dans l'ensemble. Donc, si je fais juste un clic droit sur le nom du cache ici, je peux cliquer sur le cluster de moniteur. Cela ouvre NCache moniteur, qui peut être utilisé pour surveiller le cache. Donc, cela vous montre un tas de choses différentes ici, si vous ouvrez simplement le tableau de bord du serveur ici, cela me donne une assez bonne vue de ce qui se passe exactement dans le cache, un graphique différent, c'est le graphique CPU, ceci est le réseau total qui est utilisé, c'est la taille du cache, c'est le nombre total de requêtes qui arrivent. Donc, cela vous montre pas mal de choses différentes qui peuvent être utilisées et examinées lorsque vous avez un environnement de travail correct ici et ce que je vais faire, c'est depuis ma boîte personnelle ici. Je vais juste exécuter une application d'outil StressTest pour simuler une charge factice sur le cache. Cet outil est installé avec NCache. Donc, je vais juste le chercher. Je vais juste taper STR, ça va monter l'outil StressTest.

Ainsi, Kal pendant que vous extrayez des données, vous pouvez répondre à quel type de mainframe NCache utilise pour SignalR ? D'accord. Donc en gros NCache utilise le Modèle Pub/Sub. Donc, tous ces clients qui sont essentiellement des serveurs Web, ils sont connectés en tant qu'éditeurs et abonnés. Ainsi, n'importe lequel des clients peut réellement publier un message et tous les clients connectés sont également abonnés. Ainsi, ils en seront également informés. Donc, son modèle fondamentalement Pub/Sub, nous avons une API implémentée séparée complète ainsi que l'ensemble du cadre de Pub/Sub, mais sous le SignalR Pub/Sub est utilisé, vous pouvez également l'utiliser séparément.

Ajouter des exemples de données et surveiller le cache

D'accord. Donc, je vais juste ouvrir l'outil StressTest. Donc, c'est l'endroit, où il se trouve en fait, c'est un C:\fichiers programme\NCache\bin\outils donc, nous cherchons juste un outil StressTest ici, juste pour ouvrir une instance à partir de l'invite de commande, il va le faire glisser et le déposer ici. D'accord, en fait, j'ai appuyé sur Entrée trop rapidement juste pour effacer l'écran. D'accord, ce que je vais faire, je vais taper d'accord, c'est l'outil StressTest. Je vais donner un espace pour donner le nom du cache, le nom du cache était signalrcache. Je vais juste appuyer sur Entrée maintenant. Donc, si je reviens à cette vue ici et que j'ouvre les statistiques, nous devrions voir les demandes arriver et le faire maintenant. D'accord, voyez quelques requêtes qui arrivent maintenant et ici, vous pouvez voir qu'il y a un tas de requêtes différentes qui arrivent à la fois sur les serveurs de cache connectés en ce moment. Donc, il semble que tout fonctionne très bien et cela prend également une demande. Si vous ouvrez l'outil de surveillance ici, vous pouvez voir que ce client est connecté ici, un client connecté ici et si nous regardons ici, nous voyons qu'il y a un grand bond dans le nombre total de demandes qui arrivent, vous pouvez également voir que le graphique de la mémoire prend également un peu de coup.

Donc, si nous vérifions réellement que cela fonctionne. Donc, je vais juste arrêter cet outil maintenant, il va revenir au NCache gestionnaire. Je vais faire un clic droit ici. Je vais effacer le contenu de ceci.

Exécuter l'exemple de chat SignalR

Donc, maintenant que nous avons configuré un cache et qu'il fonctionne très bien, nous l'avons testé, il semble fonctionner très bien. Donc, ce que je vais faire, c'est ouvrir un exemple de projet qui est installé sur le NCache et je vais suivre pas à pas la documentation publiée sur notre site Web pour savoir comment vous pouvez le configurer. Vous pouvez le configurer, votre propre application ASP.NET à utiliser NCache comme fond de panier. Donc, si je retourne directement dans le répertoire d'installation de NCache qui se trouve dans c:\program files\ncache ici, je peux aller dans le dossier des échantillons, puis dans dotnet et ici, si nous cherchons juste ici, nous pouvons voir qu'il y a un échantillon SignalRChat donné ici. Donc, cela est installé avec NCache et c'est le même que celui que je vais utiliser dans ma démonstration ici. Je l'ai déjà ouvert ici. Donc, je vais ouvrir la documentation et c'est la documentation qui vous donne une vue étape par étape de la façon dont vous pouvez le configurer dans votre propre environnement spécifique.

Donc, si nous allons juste ici. Donc, la première chose que vous devez faire est d'installer le Package NuGet et laissez-moi vous montrer exactement de quel package NuGet nous parlons. Donc, si nous faisons simplement un clic droit ici et cliquez sur gérer les packages NuGet pour la solution. D'accord ici, si nous allons dans le navigateur et que nous naviguons sur nuget.org. je vais juste chercher NCache, d'accord et juste ici, si vous descendez un peu, je pense que je l'ai peut-être manqué mais c'est la communauté SignalR, d'accord pas le temps, que je puisse le trouver, le nom du package NuGet est Alachisoft.NCache.SignalR. Donc, ça devrait arriver ici, Alachisoft.NCache.SignalR. Donc, cela doit être installé dans votre application. Je n'ai pas besoin de l'installer à ce stade car j'ai une installation de NCache et ont déjà des références qui nécessiteront des bibliothèques mais si vous n'utilisez pas le NCache l'installation, vous pouvez certainement l'ajouter en tant que package NuGet. Il vous suffit de l'installer dans votre projet de produit d'applications.

La prochaine étape ici consiste à inclure ces deux espaces de noms Alachisoft.NCache.SignalR et alors Microsoft Microsoft.AspNet.SignalR. Donc, ceux-ci doivent être introduits dans Startup.cs, je vais juste suivre l'exemple de projet mais vous devez le faire en référence à votre propre configuration spécifique. Donc, si vous allez dans Startup.cs ici, vous allez tout en haut, nous pouvons voir que ces deux-là sont déjà référencés ici Alachisoft.NCache.SignalR ainsi que Microsoft.AspNet.SignalRMicrosoft.AspNet.SignalR. Donc, c'est déjà ajouté ici.

Allons voir la prochaine étape. Nous devons donc maintenant modifier le fichier web.config. Donc, nous devons ajouter ces deux clés spécifiques ici et laissez-moi vous expliquer ce qu'elles sont ? Le premier, qui porte le nom de cache, est le nom réel du cache. Donc, vous devez lui donner le cache que vous allez utiliser, qui sera activé et en cours d'exécution et vous devez l'utiliser.

La seconde est la clé paire et c'est ce qui différencie les multiples. Donc, si vous avez le même cache utilisé comme support comme fond de panier pour plusieurs applications différentes. Bon, c'est donc ce qui le différencie. Ainsi, cela ouvre essentiellement un canal dans le cache par lequel toutes les applications, qui ont la même valeur, pourraient être notifiées. Donc, s'il y a deux applications qui doivent communiquer entre elles, elles doivent avoir cette valeur pour être la même, mais s'il y a une application différente, vous pouvez la modifier en fonction de votre environnement spécifique. Donc, en ce moment, il est dit de discuter ici et si nous revenons dans l'exemple de projet ici et que nous entrons dans le web.config, nous pouvons voir qu'il est configuré ici.

Le nom du cache est différent et ce que je vais faire, je vais le changer pour le cache que nous avons créé et qui est signalrcache. Comme je l'ai mentionné plus tôt, c'est le nom du cache qui n'est pas sensible à la casse, vous pouvez donc vous contenter de cela. Donc, je vais juste aller de l'avant et sauvegarder ça. Revenons ici, donc ces choses sont essentiellement, ce sont les surcharges qui peuvent être utilisées, je vais montrer ce que j'utilise dans mon environnement. Au départ, vous vous inscrivez simplement aux variables de chaîne, qui vont prendre les valeurs que nous avons initialement stockées dans le web.config. C'est le nom du cache ainsi que le canal par exemple, nom et puis c'est là que vous spécifiez que NCache devrait être utilisable. Fondamentalement, ce ne sont que deux ou trois lignes de code qui doivent être introduites dans votre application. Vous devriez être prêt à utiliser NCache en tant que fond de panier dans votre application.

Il y avait une question au départ qui faisait référence à la difficulté de configurer NCache comme fond de panier pour votre application spécifique et c'est assez facile. Donc, il n'y a que trois lignes de code à introduire et vous devriez avoir NCache être en tant que fond de panier pour votre environnement spécifique et si je reviens à mon projet ici, en allant à startup.cs. Nous avons le même code spécifique. Il n'y a que quelques vérifications présentes ici, juste pour s'assurer que les valeurs sont réellement en place, puis ici. Nous avons cet appel juste ici, qui présente NCache à utiliser comme fond de panier pour cela. Donc, ce que je vais faire maintenant, je vais exécuter cette application et en ouvrir quelques instances. Donc, que je puisse vous montrer, comment cette salle de discussion fonctionne en ce moment. Donc, je vais juste cliquer sur exécuter ici et cela devrait l'ouvrir. D'accord. Donc, la construction est terminée, elle devrait s'ouvrir maintenant. D'accord, j'attends juste le chargement, ça ne prend pas si longtemps mais c'est en ce moment.

D'accord, en attendant, permettez-moi de passer rapidement en revue les diapositives que nous utilisons. Donc, si je clique simplement sur Default.html ici, il devrait y avoir une fenêtre contextuelle ici, qui me demande le nom que je vais utiliser. Donc, puisqu'il s'agit d'un salon de discussion, vous devez vous inscrire sous le nom. Ainsi, lorsque vous envoyez un message, les autres destinataires doivent savoir exactement de qui provient ce message. Donc, ici même, il me demande mon nom. Je vais juste aller de l'avant et donner le nom de Kal. Je vais écrire bonjour et essayer de l'envoyer, en attendant, je vais juste en ouvrir une autre instance ici, elle devrait s'ouvrir. Il ne l'a toujours pas envoyé, mais vérifions que le nom du cache était correct, revenez à web.config. Je pense que je me suis trompé de nom. Donc, c'est signalrcache. Je devrai peut-être le relancer. Je vais juste continuer et m'arrêter, ça va évidemment fermer ces instances puisque le nom du cache n'était pas correct. Celles-ci ne fonctionneraient pas, je dois donc les exécuter à nouveau. D'accord. Alors, vérifions une fois de plus signalrcache, c'est correct maintenant. Il arrête les instances à ce stade. D'accord, je vais juste l'exécuter une fois de plus, cela devrait être plus rapide car déjà fait.

En attendant, si vous avez des questions ? N'hésitez pas à demander. D'accord. Donc, la construction est terminée et maintenant, nous l'ouvrons juste bien. Alors, Kal, j'ai une question ici, est-ce que ça marche aussi pour le noyau SignalR ? Oui, ça marche parce que NCache prend en charge .NET Core aussi bien. Donc ça marche avec ça oui. D'accord, une autre question est de savoir quelles sont les capacités de messagerie NCache des offres autres que SignalR ? Comme je l'ai initialement mentionné sous SignalR, l'ensemble de l'implémentation en tant que fond de panier, NCache utilise le modèle Pub/Sub, mais à part cela, vous pouvez également utiliser Pub/Sub séparément. Il doit toujours être utilisé avec comme fond de panier pour SignalR, mais sinon, nous avons des événements et des événements peuvent être des événements pilotés par des données ou il peut également s'agir d'événements spécifiques définis par l'utilisateur avec lesquels vous pouvez notifier d'autres applications pour certains événements. Un élément plus récent est ajouté, mis à jour ou supprimé et nous avons ces fonctionnalités, vous avez également la fonction de requête continue.

Donc, avec cela, spécifie certains résultats définis dans le cache et si une mise à jour est effectuée spécifiquement sur ce jeu de résultats et peut être plusieurs éléments dans le même cache et l'un d'eux est mis à jour, ce sera le client qui a demandé car il obtient va être notifié à ce sujet, donc ce sont d'autres qui sont également présents. Donc, je viens de cliquer sur celui par défaut. Il devrait me demander mon nom, maintenant je vais juste attendre ça. D'accord. Donc, je vais lui donner le nom, Kal et j'espère travailler. Donc, je vais juste taper bonjour et l'envoyer. Pour l'instant, je vais juste copier ce lien et le coller ici. D'accord, en fournissant le nom, je vais juste lui donner le nom de Nick. D'accord ici, donc ici à partir d'ici, j'ai envoyé un message en disant bonjour et il a également été reçu ici. Alors, c'est le bonjour de Nick. Donc, je vais juste taper ce bonjour de Nick et je vais l'envoyer. Donc, ici, Nick envoie ce message bonjour de Nick et si vous regardez en arrière dans la vue de Kal, nous pouvons également le voir apparaître ici également.

Ainsi, nous pouvons envoyer plusieurs messages ici, autant que nous le voulons et ils seront reçus par tous les clients connectés à ce scénario spécifique. Ainsi, nous pouvons voir que Kal a envoyé un tas de messages et qu'ils ont également été reçus du point de vue de Nick. Donc, ils sont mis à jour automatiquement, si vous envoyez juste un dernier de Nick ainsi que du Nick et que vous l'envoyez simplement, vous pouvez le voir venir de Nick et de cette vue également, nous pouvons voir à droite ici. Donc, si nous regardons rapidement la cache que nous avons créée et qui est utilisée par lui. Nous pouvons voir qu'il s'agit d'un élément ajouté ici et, comme je l'ai mentionné précédemment, un seul objet est ajouté, le reste n'est qu'une file d'attente qui est temporairement maintenue pendant son transfert.

Donc, si nous utilisons un outil dans NCache qui porte le nom de dump cache keys, il va vider les clés présentes dans le cache. Donc, je veux juste vous montrer rapidement et nous lui donnons le nom de signalrcache et appuyez sur Entrée.

Il va récupérer tous les éléments présents dans le cache. Donc, à ce stade, ils ne sont qu'un et nous pouvons voir qu'il y a cet élément placé ici, avec le nom chat et cette valeur de chaîne est exactement la même que celle que nous avons configurée dans notre application par rapport à la valeur de la clé d'événement. Il s'agit donc de la clé commune qui doit être utilisée dans toutes vos applications, qui doivent utiliser ce canal spécifique pour envoyer et recevoir des messages. Donc, cela doit être le même partout et c'est exactement ce qui va garantir que tous les clients connectés ou les serveurs Web connectés à ce cache spécifique seront avertis et concernant tout ce qui se passe. Alors, c'est comme ça qu'il est facile d'avoir NCache en tant que fond de panier dans votre application.

Si je parcoure rapidement ce dont nous avons déjà discuté ici, permettez-moi de terminer rapidement le dernier écran et la dernière diapositive de présentation ici est que NCache dessous. Il utilise le modèle Pub/Sub.

Ainsi, vous avez des applications clientes connectées, qui peuvent être des applications .NET ou des applications Java et elles sont connectées comme pour les éditeurs et les abonnés dans les deux sens. Ainsi, toute application envoyant un client connecté envoyant une estimation de message, elle le reçoit à tous les clients connectés et garantit ainsi que tous les messages sont effectivement reçus par tous les clients connectés.

Donc, si vous parcourez rapidement ce dont nous avons discuté dans le webinaire d'aujourd'hui, c'est que nous avons discuté de SignalR en tant que technologie. Qu'est-ce que c'est et comment cela peut-il aider dans différents scénarios ? Là où il y en a un besoin urgent, car les applications ne peuvent pas attendre que le client envoie réellement une notification ou alors seulement, elles peuvent répondre avec les données respectives. Ils veulent que les clients soient automatiquement informés de votre mise à jour avec les données mises à jour assez rapidement. Donc, nous avons discuté de ce qu'est SignalR ? Comment ça marche fondamentalement? Quels sont les différents cas d'utilisation qui sont des possibilités possibles et où SignalR est-il actuellement utilisé également ?

Donc, ce ne sont pas seulement des cas d'utilisation futurs. Ce sont également des cas d'utilisation actuels et comment la mise à l'échelle des applications SignalR peut avoir des problèmes de cohérence et comment SignalR eux-mêmes ont introduit le concept de fond de panier grâce auquel ils peuvent s'assurer que tous les clients connectés ont une vue cohérente et ils obtiennent informé immédiatement de tout ce qui se passe dans le cache. Je pense qu'il y a une question.

D'accord. Alors, permettez-moi de discuter des goulots d'étranglement associés à la SignalR Backplane. Nous avons discuté de ces trois points principaux et ceux-ci, comme je l'ai mentionné plus tôt, étaient également les opportunités que toute solution pouvait prendre et la solution dont nous avons parlé était un cache distribué en mémoire. Dans ce cas c'était NCache et nous avons cartographié les différentes fonctionnalités, différentes choses qui NCache possède plus, quel SignalR Backplane vraiment besoin ? NCache parfaitement mappé sur eux et c'était un excellent cas d'utilisation, un excellent candidat fondamentalement, être, c'est être un fond de panier pour une application SignalR et nous avons discuté de NCache. Comment NCache peut être utilisé? Nous avons discuté des chiffres d'évolutivité et nous sommes également passés à la démonstration pratique de l'exemple de projet, qui est installé avec NCache et comment il peut être utilisé, puis il y a cette documentation ici, qui aide à chaque processus de cette configuration.

Donc, je pense que c'est à peu près tout de mon côté, Nick à vous. Merci, Kal, c'était très instructif, si quelqu'un a des questions, veuillez nous le faire savoir ou vous pouvez taper ces questions dans la boîte de questions. Juste pour récapituler NCache solution est disponible pour download depuis notre site www.alachisoft.com. Nous avons l'édition communautaire, la version open-source ainsi que la Edition pour Entreprise que vous pouvez télécharger, jetez un œil à l'entreprise est livré avec une période d'essai de 30 jours, que vous pouvez utiliser pour tester avant de continuer et l'open source est bien sûr libre d'utilisation. Donc, il n'y a pas de questions, je tiens à remercier tout le monde de nous avoir rejoints et merci Kal pour votre temps et au plaisir de vous voir au prochain futur webinaire.

Que faire ensuite?

 
© Copyright Alachisoft 2002 - . Tous droits réservés. NCache est une marque déposée de Diyatech Corp.