[MMO] Centrifugo

[MMO] Centrifugo v2.2.2

Aucune permission de téléchargement
Vous pouvez télécharger 10 fichiers tous les 24 heures. Devenez Membre Premium pour outrepasser cette limite.
Ajoute l'intégration avec Centrifuge.
Centrifugo est un service auto-hébergé qui peut gérer les connexions sur une variété de transports en temps réel et fournit une API de publication simple. Centrifugo s'intègre bien à n'importe quelle application - pas besoin de modifier une architecture d'application existante pour introduire des fonctionnalités en temps réel. Laissez Centrifugo gérer les connexions persistantes.

Excellentes performances
Centrifugio est construit en langage Go avec quelques optimisations intelligentes à l'intérieur. Il a de bonnes performances - banc d'essai avec un million de connexions WebSocket et 30 millions de messages livrés par minute avec un matériel comparable à une machine serveur moderne.

Riche en fonctionnalités
De nombreuses fonctionnalités intégrées peuvent aider à créer une application en temps réel attrayante en un temps limité. Centrifugo propose différents types d'abonnements, l'historique des canaux chauds, la présence instantanée, les appels RPC. Il est également possible de transmettre par proxy les événements de connexion au backend de l'application via HTTP ou GRPC, etc.
Les moteurs Redis, KeyDB, Tarantool ou le courtier Nats intégrés permettent de faire évoluer les connexions sur différentes machines. Avec un partage cohérent de Redis, KeyDB et Tarantool, il est possible de gérer des millions de connexions actives avec des exigences matérielles raisonnables.

Utilisé en fabrication
Lancé il y a près de 10 ans, Centrifugo (et la bibliothèque Centrifuge pour Go sur laquelle il est construit) est un serveur mature utilisé avec succès en production par de nombreuses entreprises à travers le monde : Badoo, Ably, ManyChat, Grafana et autres.

Qu'est-ce que la messagerie en temps réel ?
La messagerie en temps réel peut aider à créer des applications interactives où les événements peuvent être livrés aux utilisateurs presque immédiatement après avoir été reconnus par le backend de l'application en poussant les données dans une connexion persistante - obtenant ainsi une latence de livraison minimale.

Les discussions, les commentaires en direct, les jeux multijoueurs, les métriques de streaming peuvent être construits sur un système de messagerie en temps réel.

Centrifugo gère les connexions persistantes des clients via WebSocket bidirectionnel, SockJS et SSE unidirectionnel (EventSource), le streaming HTTP, les transports GRPC et fournit une API pour publier des messages aux clients en ligne en temps réel.

Évolutivité
Une autre chose importante est l'évolutivité. Au fur et à mesure que votre application se développe, de plus en plus d'utilisateurs établiront des connexions persistantes avec votre point de terminaison en temps réel. Une machine serveur moderne peut gérer des milliers de connexions ouvertes, mais la puissance d'un processus est limitée - vous finirez par manquer de CPU ou de mémoire disponible. Ainsi, à un moment donné, vous devrez peut-être faire évoluer les connexions utilisateur sur plusieurs machines. Une autre raison de faire évoluer les connexions sur plusieurs machines est la haute disponibilité (lorsqu'un serveur est hors service).

Il existe de nombreuses solutions de messagerie en temps réel sur Github et des services en ligne payants. Mais seuls quelques-uns d'entre eux offrent une évolutivité prête à l'emploi - la plupart d'entre eux ne fonctionnent qu'en un seul processus. Je ne veux pas dire que Centrifugio est le seul serveur qui évolue. Il existe encore de nombreuses alternatives comme Socket.IO, SocketCluster, Pushpin et des tonnes d'autres. Mon point est que la possibilité de mise à l'échelle est l'une des principales choses auxquelles vous devriez penser lorsque vous recherchez une solution en temps réel ou que vous la construisez à partir de zéro. Vous ne pouvez pas vraiment prédire à quelle vitesse votre application épuisera les ressources disponibles sur une seule machine. L'évolutivité logicielle n'est pas une optimisation prématurée et, dans la plupart des cas, le fait d'avoir une solution évolutive prête à l'emploi vous donnera simplement plus de place pour améliorer les fonctionnalités de l'application.

De nombreux services en ligne sont également capables d'évoluer. Mais regardez les prix - la plupart de ces solutions sont plutôt chères. Dans le cas de pusher.com, vous payez 500 $ par mois, mais vous n'obtenez que 10 000 connexions maximum et un nombre très limité de messages mensuels dont vous devriez vous soucier. C'est ridicule. Bien sûr, Centrifugio est auto-hébergé et vous devez dépenser la capacité de votre serveur pour le faire fonctionner. Mais je suppose que le coût n'est pas comparable dans de nombreux cas.

Centrifugo évolue bien avec Redis PUB/SUB, prend en charge le partage cohérent Redis côté application prêt à l'emploi et s'intègre à Redis Sentinel pour une haute disponibilité. Nous avons servi jusqu'à 500 000 connexions avec Centrifugo ayant 10 pods de nœuds Centrifugo pour les connexions dans Kubernetes et une seule instance Redis qui ne consommait que 60 % du cœur d'un seul processeur !
Co7ur Co7ur Auteur
225 Affichages
v2.2.2 Version
0 Téléchargements
0.00 étoile(s) 0 avis
Première sortie

Obtenez un nom de domaine

Autres ressources de Co7ur

Haut