J'ai une application en python où je veux commencer à faire plus de travail en arrière-plan, de sorte que l'échelle de mieux comme ça devient plus occupé. Dans le passé, j'ai utilisé le Céleri pour faire normal des tâches de fond, et cela a bien fonctionné.
La seule différence entre cette application et les autres que j'ai fait dans le passé, c'est que j'ai besoin de garantir que ces messages sont traités, ils ne peuvent pas être perdus.
Pour cette application, je ne suis pas trop préoccupé par la vitesse de mon message de la file d'attente, j'ai besoin de fiabilité et de durabilité en premier lieu. Pour être sûr que je veux avoir deux de la file d'attente des serveurs, à la fois dans les différents centres de données dans le cas où quelque chose va mal, l'un d'une sauvegarde de l'autre.
En regardant le Céleri on dirait qu'il prend en charge un tas de différents backends, certains avec plus de fonctionnalités que les autres. Les deux plus populaires ressemblent et redis RabbitMQ j'ai donc pris un peu de temps pour les examiner plus à fond.
RabbitMQ: Prend en charge durable des files d'attente et de clustering, mais le problème avec la façon dont ils ont clustering aujourd'hui, c'est que si vous perdez un nœud dans le cluster, tous les messages de ce nœud sont pas disponibles jusqu'à ce que vous amenez le nœud de retour en ligne. Il n'a pas reproduit les messages entre les différents nœuds du cluster, c'est juste réplique les métadonnées sur le message, puis il remonte vers le nœud d'origine pour faire passer le message, si le nœud n'est pas en cours d'exécution, vous êtes S. O. L. ne sont Pas idéales.
La façon dont ils recommandent de contourner ce problème est d'installer un second serveur et de reproduire le système de fichiers à l'aide de DRBD, puis l'exécution de quelque chose comme stimulateur pour passer la clients vers le serveur de sauvegarde quand il en a besoin aussi. Cela semble assez compliqué, vous ne savez pas si il ya une meilleure façon. Quelqu'un connais un meilleur moyen?
Redis: Prend en charge une lecture de l'esclave et cela me permettrait d'avoir une sauvegarde en cas de situations d'urgence, mais il ne supporte pas les maître-maître de l'installation, et je ne suis pas sûr si il gère un actif de basculement entre le maître et l'esclave. Il n'a pas les mêmes caractéristiques que RabbitMQ, mais semble beaucoup plus facile à installer et à entretenir.
Questions:
Quelle est la meilleure façon pour l'installation de céleri de sorte qu'il sera de garantir message la transformation.
Quelqu'un a fait cela avant? Si oui, serait l'esprit de partage de ce que vous avez fait?