Red de Respuestas Legales - Ayuda legal - Selección técnica de middleware de mensajes (MQ) (Kafka, RabbitMQ, RocketMQ)

Selección técnica de middleware de mensajes (MQ) (Kafka, RabbitMQ, RocketMQ)

Ventajas:

En términos de rendimiento, se puede decir que Kafka es un muy buen middleware en la industria. Bajo la configuración de una máquina convencional, una máquina puede alcanzar cientos de miles por segundo. QPS. Y el rendimiento de Kafka también es muy alto. Básicamente, los mensajes enviados a Kafka son de nivel milimétrico y la disponibilidad también es muy alta. Kafka admite la implementación de clústeres y algunas máquinas aún pueden ejecutarse si están inactivas.

Desventajas:

Kafka puede perder datos, porque después de que Kafka recibe el mensaje, lo escribirá en un búfer de disco y no directamente en el disco físico, por lo que la máquina fallará posteriormente. , puede producirse la pérdida de datos del búfer del disco. Otra desventaja es que la función de Kafka es relativamente simple. Principalmente admite enviarle mensajes y luego consumirlos. No hay otras funciones avanzadas adicionales, por lo que no hay muchos escenarios aplicables según las funciones limitadas de Kafka. .

En resumen: generalmente, las empresas utilizarán Kafka para recopilar algunos mensajes, como registros, porque los registros generalmente son muy grandes, incluso si se pierden algunos datos, estará bien y el El rendimiento también es alto y, por lo general, no se requieren demasiadas funciones para enviar y recibir mensajes, por lo que Kafka es muy adecuado para este escenario.

Ventajas:

Antes de que apareciera RocketMQ, muchas empresas cambiaron de ActiveMQ a RabbitMQ. Su ventaja es que puede garantizar la ausencia de pérdida de datos y una alta disponibilidad, incluso si se implementa en un clúster. Puede ejecutarse incluso si algunas máquinas están inactivas y admite algunas funciones avanzadas, como colas de mensajes no entregados, reintentos de mensajes, etc.

Desventajas:

El rendimiento de RabbitMQ es relativamente bajo, generalmente de decenas de miles. Si encuentra una concurrencia particularmente alta, es un poco difícil admitirlo. Y es más problemático expandir el clúster. Además, el lenguaje de desarrollo es Erlang, que rara vez se utiliza en China, por lo que una investigación en profundidad al respecto es bastante problemática.

Ventajas:

RocketMQ casi resuelve las deficiencias de Kafka y RabbitMQ al mismo tiempo. Su rendimiento también es muy alto. Una sola máquina puede alcanzar más de 100.000 QPS, puede garantizar una alta disponibilidad y puede configurarse para garantizar que no se pierdan datos. Puede implementar clústeres a gran escala y también admite varias funciones avanzadas. , como mensajes retrasados, mensajes de transacciones, rastreos de mensajes, colas de mensajes no entregados, retrasos en los mensajes, etc. Además, RocketMQ se desarrolla utilizando Java, que está en línea con la pila tecnológica de la mayoría de las empresas nacionales y es fácil de leer el código fuente y modificar su contenido.

Desventajas:

La documentación oficial de RocketMQ es relativamente simple en comparación con Kafka y RabbitMQ, y no es tan detallada como la documentación de Kafka y RabbitMQ de otras personas.