Cómo elegir el middleware de mensajería de código abierto adecuado
Hay tres middlewares entre los que puede elegir:
1. ActiveMQ/ApolloMQ
Ventajas: Cola de mensajes antigua, escrita en Java. Tiene el mejor soporte para JMS, utiliza concurrencia de subprocesos múltiples y consume recursos relativamente grandes. Si tu idioma principal es Java, puedes concentrarte en eso.
Desventajas: Debido a su larga historia y su gran bagaje histórico, las actualizaciones de versiones son muy lentas. El modelo de clúster debe depender de la implementación de Zookeeper. La última arquitectura se llama Apollo y se dice que es la próxima generación de ActiveMQ y actualmente tiene menos casos de uso.
2. RocketMQ/Kafka
Ventajas: Creado para mensajería a gran escala, aboga por el uso del modo pull, admite agrupación natural, HA y equilibrio de carga. Dicho esto, nuevamente, si es adecuado o no depende de si tienes tanta capacidad.
Desventajas: no puede quedarse con el pastel y comérselo también, renuncia a parte de la flexibilidad del middleware de mensajes y los escenarios de uso son relativamente limitados. Debe prestar atención a si su modelo de negocio. Es muy adecuado o si se usa disfrazado es muy incómodo. Además, RocketMQ no tiene un cliente .NET. Cliente .NET. Aunque RocketMQ es famoso, no tiene muchos usuarios y un ecosistema pequeño. Después de todo, no hay muchas empresas que puedan alcanzar este volumen de mensajes. También puede comprar directamente el servicio de mensajería de Alibaba Cloud. La ecología de Kafka es relativamente completa, su código está escrito en lenguaje Scala y su confiabilidad es menor que la de RocketMQ.
3. RabbitMQ
Ventajas: ecología rica, muchos usuarios y muchas personas que caerán en la trampa. Ha tomado la iniciativa en la implementación del protocolo AMQP y admite múltiples escenarios. El clúster MySQL de Taobao ya lo ha utilizado para la comunicación interna. El componente de comunicación de la plataforma en la nube de código abierto OpenStack se ha utilizado por primera vez en la industria financiera.
Desventajas: ¿Tienes código Erlang? Aunque Erlang está naturalmente agrupado.