Mainstream messaging middleware

Architectural patterns

Kafka is LinkedIn’s open source distributed publish-subscribe messaging system, currently part of the Apache Top-level project. Kafka’s main feature is a Pull based approach to message consumption and high throughput. Kafka was originally intended for log collection and transmission. Version 0.8 began to support replication, does not support transactions, there are no strict requirements for message repetition, loss, error, suitable for the data collection business of Internet services that generate a large amount of data.

Architectural patterns

Rely on the zookeeper

RocketMQ is alibaba’s open source messaging middleware, which has been incubated as Apache’s top project. It is a pure Java development with high throughput, high availability and suitable for large-scale distributed system applications. RocketMQ originated from Kafka, which optimized the reliable output and transactional of messages. Currently, It is widely used in Transaction, recharge, stream computing, message push, log stream processing, binglog distribution and other scenarios in Alibaba Group

Cluster topology

RabbitMQ is an open source message queue system based on the AMQP protocol developed using the Erlang language. The main characteristics of AMQP are message orientation, queue, routing (including point-to-point and publish/subscribe), reliability, and security. AMQP protocol is more widely used in enterprise systems, which requires high data consistency, stability and reliability, and requires less performance and throughput.

Cluster architecture