2011-06-28 4 views
15

Je considère Redis pour une section de l'architecture d'un nouveau projet. Il se composera de beaucoup de clients (connexions node.js) ABONNEMENT à des clés particulières avec un processus PUBLISHING à ces clés si nécessaire.Redis PUBLIER/ABONNER limites

Je suis curieux de connaître les limites des commandes PUBLISH/SUBSCRIBE et comment les atténuer. Une limite évidente est la quantité de descripteurs de fichiers ouverts sur la machine avec Redis, donc à un moment donné, je devrai implémenter Master-Slave ou le hachage cohérent à plusieurs instances Redis.

Quelqu'un a-t-il des solutions pour faire évoluer cette architecture avec PubSub de Redis?

Répondre

22

Redis PubSub évolue très facilement puisque la réplication maître/esclave est automatiquement publiée pour tous les esclaves. La méthode la plus simple consiste à équilibrer les connexions à node.js avec par exemple HAProxy, exécuter un esclave Redis sur chaque serveur Web qui se synchronise avec un seul maître qui publie les messages.

Je ne peux pas vous donner de chiffres exacts car cela dépend beaucoup du système sous-jacent, mais cela devrait très bien évoluer. Et vous n'avez pas besoin de gérer les clients et le serveur auquel ils se connectent manuellement. Vous avez évidemment besoin d'un moyen de gérer l'état de la session, vous devrez peut-être le faire de toute façon, mais c'est beaucoup plus facile à faire dans l'équilibreur de charge que dans votre application.