python pyplot Warum müssen wir rabbitmq verwenden?



python pyplot xlabel (5)

Ich benutze RabbitMQ als Nachrichtenbroker für Celery .

Ich habe auch mit Twisted gearbeitet. Es ist anders

Weitere Informationen zu AMQP finden Sie hier : http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol

Warum brauchen wir RabbitMQ, wenn wir in Python ein leistungsfähigeres Netzwerk-Framework namens Twisted haben. Ich versuche zu verstehen, warum jemand RabbitMQ verwenden möchte.

Könnten Sie bitte ein Szenario oder ein Beispiel mit RabbitMQ angeben?

Wo finde ich auch ein Tutorial zur Verwendung von RabbitMQ?


Answer #1

Twisted ist keine Warteschlangenimplementierung. Darüber hinaus bietet RabbitMQ Warteschlangenfunktionen auf Unternehmensebene und implementiert das AMQP-Protokoll, das in einer Unternehmenswelt häufig benötigt wird.


Answer #2

Ich möchte Ihnen einige Gründe nennen, die die Verwendung von MOM (Message Oriented Middleware) wahrscheinlich zur besten Wahl machen.

Entkopplung:

Es kann die Kernkomponenten der Anwendung entkoppeln / trennen. Es ist nicht notwendig, alle Vorteile der entkoppelten Architektur hier zu nutzen. Ich möchte nur darauf hinweisen, dass dies eine der Hauptanforderungen für das Schreiben einer qualitativ hochwertigen und wartbaren Software ist.

Flexibilität:

Es ist sehr einfach, zwei völlig unterschiedliche Anwendungen, die in verschiedenen Sprachen geschrieben sind, mithilfe des AMQP-Protokolls miteinander zu verbinden. Diese Anwendung wird mithilfe eines "Übersetzers" (MOM) miteinander kommunizieren.

Skalierbarkeit:

Mit MOM können wir das System horizontal skalieren. Ein Nachrichtenproduzent kann einer unbegrenzten Anzahl von Nachrichtenkonsumenten eine Aufgabe, einen Befehl oder eine Nachricht zur Verarbeitung und zum Skalieren dieses Systems übermitteln. Alles, was wir tun müssen, ist das Erstellen neuer Nachrichtenkonsumenten. Nehmen wir an, wir bekommen 1000 Bilder pro Sekunde und müssen deren Größe ändern. Die Lösung dieses Problems mit traditionellen Methoden kann Kopfschmerzen verursachen. Mit MOM können wir Bilder an die Nachrichtenkonsumenten senden, die ihre Aufgabe asynchron erledigen und sicherstellen können, dass die Datenintegrität intakt ist.

Sie sind auch andere Vorteile von MOM, aber diese 3 sind meiner Meinung nach am wichtigsten.


Answer #3

Twisted ist eine Netzwerkbibliothek, die eine Reihe von Netzwerkprotokollen implementiert und Ihnen die Erstellung eigener Protokolle ermöglicht. Eines der Protokolle, die Sie mit Twisted verwenden können, ist AMQP https://launchpad.net/txamqp

RabbitMQ ist ein AMQP-Broker, dh Dienste, die außerhalb Ihrer Anwendung ausgeführt werden, möglicherweise auf einem separaten Cluster von Servern. AMQP ist lediglich das Protokoll, das zur Kommunikation mit einem Message Queuing-Broker wie RabbitMQ verwendet wird. Sie erhalten viele Dinge von RabbitMQ. Sie können Nachrichten mit garantierter Zustellung dauerhaft senden, sodass sie auch dann ankommen, wenn Ihre App abstürzt und der RabbitMQ-Broker neu gestartet wird. Sie erhalten einen Lastausgleich zwischen Nachrichtenkonsumenten, wenn sich mehrere Konsumenten in derselben Warteschlange befinden. Sie erhalten Interoperabilität mit Apps in anderen Sprachen, solange Sie für Ihre Nachrichtentexte ein einigermaßen offenes Serialisierungsformat verwenden. Mit AMQP können Sie eine monolithische App in viele lose gekoppelte Teile aufteilen, die auf verschiedenen Servern ausgeführt werden können. Dies ist ein großer Gewinn für die langfristige Wartung einer Anwendung.


Answer #4

rabbitmq ist ein bisschen mehr als nur Messaging ... es ist eine gemeinsame Plattform, die die Fähigkeit hat, Anwendungen miteinander zu verbinden. Mit Hilfe von rabbitmq kann eine Java-Anwendung mit einem Linux-Server und / oder einer .net-App, mit einem Ruby & Rails + fast alles sprechen, was in der Unternehmens-Webentwicklung seinen Platz findet. Und am wichtigsten ist das von AMQP vorgeschlagene "Feuer und Vergessen" -Modell. Es ist nur ein perfekter Ersatz für JMS oder ESB. Speziell wenn es um plattformübergreifende Architektur geht, die Zuverlässigkeit garantiert. Es gibt sogar eine spezielle Funktion namens RPC (Remote Procedure Call), die die Entwicklung im verteilten Bogen vereinfacht.

Abgesehen von all diesen, in der Welt sind Finanzdienstleistungen wie die Börse oder der Aktienmarkt, wo viel zuverlässiges und effizientes Routing erforderlich ist (vorausgesetzt, Sie kennen nicht die tatsächliche Anzahl der Personen, die Ihre Dienste abonniert haben, möchten jedoch sicherstellen, dass jeder dies tut empfängt also Ihre Pings, ob sie in diesem Moment verbunden sind oder sich später verbinden), rabbitmq-Regeln, da sie auf ERLANG und der Open-Telecom-Plattform basieren, die hohe Leistung bei minimalem Ressourceneinsatz gewährleistet. Die einfachste Einführung in rabbitmq finden Sie unter rabbitmq.com/getstarted.html für Ihre native Entwicklungssprache.





rabbitmq