RabbitMQ, ZeroMQ, Kafka is a hierarchy of things for you, what are the advantages and disadvantages between each other?

RabbitMQ is an AMQP implementation, traditional messaging queue system implementation, based on Erlang . Veteran MQ product. AMQP protocol used in more enterprise systems, data consistency, high stability and reliability scenario, the performance and throughput is still followed .

 

Kafka is linkedin open source MQ system, the main features are based Pull mode to process the message consumption, the pursuit of high throughput, the purpose is to start for log collection and transmission , 0.8 began to support replication, does not support transactions, suitable for producing large amounts of data Internet data services collection business .

 

ZeroMQ just a network programming Pattern library, a common network request form (group management, link management, publication subscriptions, etc.) model and component design, in short socket above, MQ below. For MQ , the transmission network is only part of it, more needs to be handled message storage, routing, Broker service discovery and search, transaction, consumption patterns ( ACK , re-enter, etc.), cluster services.

 

 

RabbitMQ / Kafka / ZeroMQ can provide the Message Queuing service, but there is a big difference.

 

In a service-oriented architecture via a message broker (such as RabbitMQ / Kafka , etc.), the use of the producer - consumer model for asynchronous communication is a good idea between services.

 

Because of dependencies between services become loosely coupled by the strong coupling. Message broker will provide persistence mechanism, under high load or consumer dropped the case will hold up the message, not lost. That producers and consumers do not need to simultaneously online, which is the traditional request - answer mode is more difficult to do, you need a specialized middleware to do it. Second message broker can do a simple routing strategies according to the message itself, the consumer can do load balancing, business separation.

 

There is also the disadvantage is the need to build additional message broker cluster (but the advantage is greater than disadvantages ) .

 

ZeroMQ and RabbitMQ / Kafka different, it's just an asynchronous message library, provides a mechanism similar to the news agency on the basis of a socket on. Use ZeroMQ words, the need for the code to transform their business, is not conducive to decouple service.

 

RabbitMQ supports AMQP (binary), STOMP (text), the MQTT (binary), HTTP (packed inside other protocols) and other agreements. Kafka uses its own protocol .

 

Kafka 's own services and consumers need to rely Zookeeper .

 

RabbitMQ in the accumulation of a large number of news cases performance will decline, Kafka used to live will not. After all, AMQP was originally designed not for persistent messaging abuse, and Kafka beginning is used to handle the massive logs .

 

Overall, RabbitMQ and Kafka are very good distributed news agency services, as long as the proper deployment, without, basically to meet any requirements under production conditions.

 

 

ZeroMQ between the local process coordination

RabbitMQ , message queues work

KafkaJournal subscriptions, focusing on data stream processing

 

 

Distributed transaction processing aspects, which is more suitable for them too? It is not to be understood as a veteran of the RabbitMQ for better consistency and better support!

 

 

Many companies seem to use zmq only be used to easily make Socke t . Than Twisted also convenient. (Such as our)

 

But really it wasted zmq many properties.

 

 

RabbitMQ and Kafka is basically a class of things, advantages and disadvantages, ZeroMQ just a network library does not support persistent.


Guess you like

Origin www.cnblogs.com/lizhensheng/p/11117402.html