Articulo de referencia

Apache RocketMQ

RocketMQ [2] es una plataforma de mensajería y transmisión distribuida con baja latencia, alto rendimiento y confiabilidad, capacidad de nivel billonario y escalabilidad flexibl...

RocketMQ [2] es una plataforma de mensajería y transmisión distribuida con baja latencia, alto rendimiento y confiabilidad, capacidad de nivel billonario y escalabilidad flexible. Es el middleware de mensajería distribuida de tercera generación de código abierto de Alibaba en 2012. El 21 de noviembre de 2016, Alibaba donó RocketMQ a la Apache Software Foundation . El año siguiente, el 20 de febrero, la Apache Software Foundation anunció a Apache RocketMQ como un proyecto de alto nivel.

Historia

El desarrollo de RocketMQ se puede dividir en tres etapas. [3]

La primera generación utiliza el modo push en el transporte de datos y una base de datos relacional en el almacenamiento de datos. Presenta una baja latencia en la entrega de mensajes y cumple con los requisitos de una plataforma de comercio electrónico típica [4] con transacciones distribuidas.

La segunda generación utiliza el modo pull en el transporte de datos y el sistema de archivos en el almacenamiento de datos. Se prestó más atención a la estabilidad y la confiabilidad, y muestra un rendimiento comparable al de la primera generación en tiempo de respuesta y a Kafka en la recopilación de registros.

La tercera generación combina el modo Pull con algunas operaciones Push. Hereda las ventajas de la primera y la segunda generación, y muestra un alto rendimiento en escenarios de concurrencia y cantidades masivas de datos.

Características

Se han hecho muchas comparaciones entre las distintas soluciones de mensajería, y es ampliamente conocido que cuando el número de temas aumenta drásticamente, el rendimiento de RocketMQ cae mucho menos que el de Kafka. [5] Debido a las características de alto rendimiento, alta confiabilidad y alta capacidad en tiempo real, se han realizado cada vez más esfuerzos para combinar RocketMQ y otros componentes de protocolo en todo tipo de escenarios de mensajería como MQTT. [6]

Arquitectura

RocketMQ consta de cuatro partes: servidores de nombres, intermediarios, productores y consumidores. Cada uno de ellos puede extenderse horizontalmente sin ningún punto de falla, como se muestra en la imagen de la izquierda.

Clúster de servidores de nombres

El componente liviano para el descubrimiento de servicios se puede usar para leer y escribir información de enrutamiento. Cada uno registra información global y admite una expansión rápida del almacenamiento.

Clúster de corredores

Utilizan mecanismos TOPIC y QUEUE livianos para administrar el almacenamiento de datos. Para lograr tolerancia a fallas, se proporcionan dos o tres copias de los datos. Y el cliente puede recibir mensajes en el modelo Push y Pull. Además, también se admiten la recuperación ante desastres y estadísticas de métricas enriquecidas.

Clúster de productores

Los productores se pueden distribuir e implementar, y los mensajes de los productores a los intermediarios se pueden equilibrar mediante múltiples rutas. Además, se admiten fallas rápidas y baja latencia.

Clúster de consumidores

Los consumidores también pueden distribuirse en el modelo push-pull, pueden suscribirse a mensajes en tiempo real y consumir mensajes en la unidad del clúster. También se admite la transmisión de mensajes.

Aplicaciones

Hay al menos cinco aspectos con los que Apache RocketMQ podría relacionarse:

  • La integración de sistemas heterogéneos;
  • Desacoplamiento entre aplicaciones;
  • Columna vertebral del mecanismo impulsado por eventos y modelo de arquitectura de eventos complejos;
  • Canales de replicación de datos;
  • Integración con motor de cálculo de flujo;
  • Acceso a datos de transmisión.

Mantenimiento comunitario

El equipo de RocketMQ ha hecho mucho para mantener activa a la comunidad. Se celebran periódicamente reuniones, talleres, ApacheCon y maratones de código en Pekín, Shenzhen y Hangzhou para atraer a nuevos colaboradores y participantes. Las suites de evaluación comparativa OpenMessaging ya están disponibles para RocketMQ, lo que ayuda a RocketMQ a mantenerse al día con el estándar global para mensajería distribuida. [7] En cuanto a la gestión de versiones, se han adoptado una serie de procesos de desarrollo de software estandarizados. La última versión es la 4.2.0, y la 4.3.0 está en camino. Puede obtener más información aquí.

Premios

Premio al software de código abierto más popular de China 2016 Archivado el 19 de junio de 2018 en Wayback Machine

Premio al software de código abierto más popular de China 2017 Archivado el 19 de junio de 2018 en Wayback Machine.

XVI Premio a la tecnología destacada en software de código abierto CJK (China-Japón-Corea del Sur)

Premio al software de código abierto más popular de China 2018 Archivado el 2 de enero de 2019 en Wayback Machine.

Premio al software de código abierto más popular de China 2019

Véase también

Referencias

  1. ^ "Notas de la versión - Apache RocketMQ - Versión 5.0.0". 9 de septiembre de 2022 . Consultado el 27 de septiembre de 2022 .
  2. ^ "apache/rocketmq". GitHub . Consultado el 25 de mayo de 2018 .
  3. ^ "De Alibaba a Apache: pasado, presente y futuro de RocketMQ". InfoQ . Consultado el 26 de junio de 2018 .
  4. ^ Liao, Jianwei; Zhuang, Xiaodan; Fan, Renyi; Peng, Xiaoning (2017). "Hacia un marco general de mensajería distribuida para aplicaciones de procesamiento de transacciones en línea". IEEE Access . 5 : 18166–18178. Bibcode :2017IEEEA...518166L. doi : 10.1109/ACCESS.2017.2717930 .
  5. ^ Cloud, Alibaba (4 de enero de 2018). "Kafka vs. RocketMQ: resultados de pruebas de estrés de múltiples temas". Medium . Consultado el 8 de julio de 2018 .
  6. ^ Yue, Ma; Ruiyang, Yan; Jianwei, Sun; Kaifeng, Yao (2017). "Un servidor de envío de mensajes con protocolo MQTT basado en RocketMQ". 2017 10.ª Conferencia internacional sobre tecnología de computación inteligente y automatización (ICICTA) . págs. 295–298. doi :10.1109/ICICTA.2017.72. ISBN 978-1-5386-1230-9.S2CID28825800  .
  7. ^ "El marco de referencia de OpenMessaging". openmessaging.cloud . Consultado el 8 de julio de 2018 .
  • Sitio web de Apache RocketMQ
  • Elementos externos de Apache RocketMQ
  • Un servidor de envío de mensajes con protocolo MQTT basado en RocketMQ
Retrieved from "https://en.wikipedia.org/w/index.php?title=Apache_RocketMQ&oldid=1225361455"