Red de conocimiento informático - Problemas con los teléfonos móviles - La diferencia entre Rabbitmq y Kafka

La diferencia entre Rabbitmq y Kafka

RabbitMQ sigue el protocolo AMQP y está desarrollado mediante el lenguaje Erlang con una alta concurrencia inherente. Se utiliza para mensajería en tiempo real que requiere una confiabilidad relativamente alta.

Kafka es un sistema de suscripción y publicación de mensajes de código abierto de Linkedin en diciembre de 2010. Se utiliza principalmente para procesar datos de transmisión activa y grandes cantidades de procesamiento de datos.

1) En términos de modelo arquitectónico,

RabbitMQ sigue el protocolo AMQP. El broker de RabbitMQ consta de Exchange, Binding y cola, donde el intercambio y el enlace forman la clave de enrutamiento del mensaje. ; cliente El Productor se comunica con el servidor conectándose al canal, y el Consumidor obtiene mensajes de la cola para su consumo (conexión larga, si la cola tiene mensajes, se enviará al lado del consumidor y el bucle del consumidor lee los datos de el flujo de entrada). RabbitMQ está centrado en el corredor; tiene un mecanismo de confirmación de mensajes.

Kafka sigue la estructura general de MQ, productor, intermediario y consumidor, con el consumidor como centro. La información de consumo del mensaje se guarda en el consumidor del cliente. El consumidor extrae datos en lotes del intermediario. al punto de consumo; ninguno Mecanismo de confirmación de mensaje.

2) En términos de rendimiento,

kafka tiene un alto rendimiento. Utiliza procesamiento por lotes de mensajes internamente y un mecanismo de copia cero. El almacenamiento y la adquisición de datos son secuenciales en el disco local. operaciones por lotes, tiene una complejidad de O (1) y la eficiencia del procesamiento de mensajes es muy alta.

rabbitMQ es ligeramente inferior a kafka en términos de rendimiento. Sus puntos de partida son diferentes. RabbitMQ admite la entrega confiable de mensajes, admite transacciones y no admite operaciones por lotes según los requisitos de confiabilidad del almacenamiento. memoria o disco duro.

3) En términos de disponibilidad,

rabbitMQ admite la cola espejo. Si la cola principal falla, la cola espejo se hace cargo.

El broker de Kafka admite modos activo y de respaldo.

4) En términos de equilibrio de carga del clúster,

Kafka utiliza zookeeper para administrar los intermediarios y consumidores en el clúster. Los temas se pueden registrar en zookeeper a través del mecanismo de coordinación de zookeeper. el productor guarda La información del corredor correspondiente al tema se puede enviar al corredor de forma aleatoria o mediante sondeo, y el productor puede especificar fragmentos según la semántica, y el mensaje se envía a un determinado fragmento del corredor;

El equilibrio de carga de RabbitMQ requiere un equilibrador de carga independiente como soporte.

Entonces, con respecto a estas dos opciones, aún entendemos estas 4 diferencias generales. En cuanto al alto rendimiento y el análisis de escenarios específicos de los registros de nuestro equipo, aún así se eligió Kafka. Por supuesto, los conceptos de diseño son diferentes. RabbitMQ se utiliza para la entrega confiable de mensajes y no admite operaciones por lotes. La usabilidad es similar, pero la implementación es diferente. En términos de agrupación, Kafka es mejor. Registra al cuidador del zoológico a través del tema, llama al mecanismo e implementa fragmentación especificada semánticamente. Sin embargo, la carga de RabbitMQ debe ser respaldada por un balanceador de carga separado

————. —————————— ———

Declaración de derechos de autor: este artículo es un artículo original del blogger de CSDN "Dazhuang VIP" y sigue el acuerdo de derechos de autor CC 4.0 BY-SA. enlace de la fuente original y esta declaración al reimprimir.

Enlace original:/qq_33792843/article/details/75727911