Centrifugo

Centrifugo 2.3.6

Vous n'avez pas l'autorisation de télécharger
Compatibilité XF
  1. 2.2.x
  2. 2.3.x
Description courte
Centrifugo integrates seamlessly with applications, offering great performance, built-in features, and scalable solutions. Built in Go for high efficiency, it supports Redis, KeyDB, Tarantool engines, and Nats brokers for robust scaling capabilities. Ideal for real-time messaging, including chats, live comments, multiplayer games, and streaming metrics. Used by companies like Badoo and ManyChat in production environments.
Ajoutez l'intégration avec Centrifuge.
Centrifugo est un service self-hosté qui peut gérer des connexions via une variété de transports en temps réel et fournit un API simple de publication. Centrifugo s'intègre bien à n'importe quel application – il n'y a pas besoin de changer l'architecture existante pour introduire les fonctionnalités en temps réel. Il suffit de laisser Centrifugo gérer les connexions persistantes.
Performances exceptionnelles

Centrifugo est construit en langage Go avec des optimisations intelligentes à l'intérieur. Il a de bonnes performances – un test de stand avec un million de connexions WebSocket et 30 millions de messages délivrés par minute sur du matériel comparable à une machine serveur moderne.
Fonctionnalités riches

Plusieurs fonctionnalités intégrées peuvent aider à construire rapidement des applications en temps réel. Centrifugo fournit différents types d'abonnements, l'historique chaud des canaux, la présence instantanée, les appels RPC. Il est également possible de relayer les événements de connexion vers le backend de l'application via HTTP ou GRPC et plus encore.
Les moteurs Redis, KeyDB, Tarantool intégrés ou le broker Nats permettent d'étendre les connexions sur différents machines. Avec une sharding consistante de Redis, KeyDB et Tarantool, il est possible de gérer des millions d'abonnements actifs avec des exigences matérielles raisonnables.
En production

Démarré presque 10 ans plus tôt, Centrifugo (et la bibliothèque Centrifuge pour Go sur laquelle il est basé) est un serveur mature en production utilisé par de nombreuses entreprises à travers le monde : Badoo, Ably, ManyChat, Grafana et d'autres.
Qu'est-ce que le messaging en temps réel ?

Le messaging en temps réel peut aider à construire des applications interactives où les événements peuvent être délivrés aux utilisateurs presque immédiatement après avoir été reconnus par le backend de l'application, en pushant du données dans une connexion persistante – ce qui permet d'atteindre un délai de livraison minimal.

Les chats, les commentaires en direct, les jeux multijoueurs et la diffusion des indicateurs peuvent être construits sur un système de messaging en temps réel.

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

Une autre chose importante est la scalabilité. Plus votre application grandit – plus de nouveaux utilisateurs établiront des connexions persistantes avec votre point d'entrée en temps réel. Une machine serveur moderne peut gérer des milliers de connexions ouvertes, mais le pouvoir d'une seule instance est limité – vous finirez par manquer les ressources disponibles CPU ou mémoire. À un certain moment, vous devrez donc scinder les connexions sur plusieurs machines. Un autre motif pour scinder les connexions sur plusieurs machines est l'availability (lorsqu'un serveur ne répond pas).

Il existe de nombreux systèmes de messaging en temps réel sur GitHub et des services en ligne payants. Mais seulement quelques-uns d'entre eux offrent la scalabilité par défaut – la plupart fonctionnent dans une seule instance. Je ne veux pas dire que Centrifugo est le seul serveur qui scinde. Il y a toujours de nombreuses alternatives comme Socket.IO, SocketCluster, Pushpin et des centaines d'autres. Mon point est qu'avoir la possibilité de scinder est l'une des principales choses à prendre en compte lorsqu'on recherche une solution de messaging en temps réel ou lorsqu'on la construit de zéro. Vous ne pouvez pas vraiment prévoir comment rapidement votre application utilisera les ressources disponibles sur une machine seule – la scalabilité logicielle n'est pas un optimisation prématurée et, dans la plupart des cas, avoir une solution scalable par défaut vous donnera plus d'espace pour améliorer la fonctionnalité de l'application.

Beaucoup de services en ligne sont capables de scinder aussi. Mais regardez les prix –pusher.comvous payez 500$ par mois mais vous obtenez au maximum 10k connexions et un nombre limité d'envois de messages mensuels. C'est ridicule. Bien sûr, Centrifugo est hébergé sur place et il faut dépenser la capacité du serveur pour le faire fonctionner. Mais je suppose que le coût n'est pas comparable dans de nombreux cas.

Centrifugo s'étend bien avec Redis PUB/SUB, supporte une répartition consistante de Redis côté application par défaut et intègre Redis Sentinel pour l'availability haute. Nous avons servi jusqu'à 500k connexions avec Centrifugo en utilisant 10 pods Centrifugo pour les connexions dans Kubernetes et seulement un seul instance de Redis qui a consommé seulement 60% d'une seule coeur processeur !ongoing pull requestcela ajoute la possibilité de scinder les PUB/SUB avec le serveur NATS comme émetteur/récepteur
Screen.webp

Auteur
axtona
Vues
518
Type d’extension
zip
Taille du fichier
283.5 Ko
Première publication
Dernière mise à jour
Évaluations 0.00 étoile(s) 0 évaluations
Lien cassé ? Envoyer un message à l’équipe NP et nous vous aiderons rapidement !
Soutenez le développeur Si vous êtes satisfait du test ou que votre projet vous a rapporté de l’argent, cliquez sur le bouton « Plus d’informations » pour soutenir le développeur en achetant.

Dernières mises à jour

  1. 2.3.6 - changelog
    Reworking to 1 single instance Added auxiliary utility for cleaning old messages from DOM Added unsubscribe from channel...
  2. 2.3.4 - changelog
    Add new option Channel Instance ID
  3. 2.3.3 - changelog
    Now the connection token is generated on all pages, if you want to override you can set your parameters in the constructor for the token, host and...

Plus de ressources de axtona

Sorcier Pro A
Sorcier Pro 13.1.1
Insérer du code PHP et tout type de code HTML, CSS et JavaScript dans votre contenu !
Nettoyeur de Cache PRO A
Nettoyage Critique peut également nettoyer automatiquement le cache de Joomla! lorsque vous sauvegardez un article ou d'autres éléments.
Auto Fermeture + Notice de Filée A
Notice de Fermeture Automatique du Fil aide à garder les discussions plus anciennes organisées sans surprendre vos membres.
Retour
Haut