In Bezug auf Anwendungsszenarien Wird in Echtzeit-Messaging verwendet erfordert eine relativ hohe Zuverlässigkeit. Kafka ist ein im Dezember 2010 von Linkedin als Open Source bereitgestelltes Nachrichtenveröffentlichungs- und Abonnementsystem. Es wird hauptsächlich zur Verarbeitung aktiver Streaming-Daten und zur Verarbeitung großer Datenmengen verwendet.
1) In Bezug auf das ArchitekturmodellRabbitMQ folgt dem AMQP-Protokoll und besteht aus Exchange, Binding und Warteschlange, wobei Exchange und Binding das Routing bilden Schlüssel der Nachricht. ;Der Client-Produzent kommuniziert mit dem Server, indem er den Kanal verbindet, und der Verbraucher erhält Nachrichten aus der Warteschlange zum Verbrauch (lange Verbindung, wenn sich eine Nachricht in der Warteschlange befindet, wird dies der Fall sein auf die Verbraucherseite geschoben, und die Verbraucherschleife liest Daten aus dem Eingabestream. RabbitMQ ist Broker-zentriert; es verfügt über einen Nachrichtenbestätigungsmechanismus.
Kafka folgt der allgemeinen MQ-Struktur: Produzent, Broker, Verbraucher, wobei der Verbraucher im Mittelpunkt steht. Die Verbrauchsinformationen der Nachricht werden entsprechend auf dem Client-Verbraucher gespeichert der Verbrauchspunkt; kein Meldungsbestätigungsmechanismus.
2) In Bezug auf den DurchsatzKafka hat einen hohen Durchsatz, verwendet intern die Nachrichtenstapelverarbeitung, einen Nullkopiemechanismus und Datenspeicherung und -erfassung sind lokale Festplatten. Sequentielle Stapelverarbeitung Operationen haben eine O(1)-Komplexität und die Nachrichtenverarbeitung ist sehr effizient. RabbitMQ ist kafka in Bezug auf den Durchsatz etwas unterlegen. RabbitMQ unterstützt die zuverlässige Zustellung von Nachrichten, unterstützt Transaktionen und unterstützt keine Stapelvorgänge Speicher oder Festplatte.
3) In Bezug auf die VerfügbarkeitrabbitMQ unterstützt die Spiegelwarteschlange. Wenn die Hauptwarteschlange ausfällt, übernimmt die Spiegelwarteschlange. Kafkas Broker unterstützt den aktiven und den Backup-Modus.
4) In Bezug auf den Cluster-Lastausgleichkafka verwendet Zookeeper, um die Broker und Verbraucher im Cluster zu verwalten, und Sie können Themen bei Zookeeper registrieren Durch den Koordinierungsmechanismus von zookeeper speichert der Produzent die dem Thema entsprechenden Brokerinformationen, die zufällig oder auf Abfragebasis an den Broker gesendet werden können
und der Produzent kann Shards basierend auf der Semantik angeben , und die Nachricht wird an einen bestimmten Shard des Brokers gesendet.
Der Lastausgleich von RabbitMQ erfordert einen separaten Lastausgleich zur Unterstützung.
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen RabbitMQ und Kafka. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!