For Kafka and RabbitMQ, ActiveMQ protocol, their specific differences are as follows:
ActiveMQ:
ActiveMQ support replication from the master cluster. But the cluster function looks very weak, and only failover function, that I could not even a failure, you can switch to another broker. This seemingly unscientific. Suppose there are three Broker, wherein a consumer is not above, but the other two hung up, the message will go to the top, piled up. It appears activemq still upgrade.
activemq working model is relatively simple. Only two modes Queue, Topics
RabbitMQ:
RabbitMQ with erlang written. After installing just less than 10m, for use on windows is also very convenient, at this point after blasting the activemq, java long and boring no way ah. rabbitmq I feel like oracle, very powerful. After installing, there are instances of concept, can be like to build databases, build instance, plans to build user permissions. At the same time monitoring system is also very easy to use. These are benefits, but also cumbersome, too complicated a whole rabbitmq than ActiveMQ
Kafka used to live:
Kafka used to live is known as a distributed born. And in terms of activemq and rabbitmq these enterprise-class queue really an advantage of distributed systems
kafka advantages: traditional message queues only two modes, either queue, either publish-subscribe publish and subscribe. In the queue mode, a set of consumer spending a queue, wherein each message is sent to a consumer. In the publish-subscribe model, the consumer is broadcast to all consumers. Benefits queue mode is that he can be distributed to a consumer group of consumers, enabling consumers to scale (scale); The problem is that such a message can only be consumed by a group of consumers, once the consumer, there is no news . Benefits publish-subscribe is that a message can be consumed multiple groups of consumers; the problem is that your customers can not scale, that is impossible with more consumers subscribe to a topic, but it only deals with part of each consumer message
summary:
system throughput:
Kafka used to live> RabbitMQ> ActiveMQ
persistent messages (down the message is not lost):
RabbitMQ> ActiveMQ
high concurrency:
RabbitMQ (Erlang language development)> ActiveMQ
cluster load balancing:
Kafka used to live> the Rabbit
compatibility:
ActiveMQ (and perfectly compatible with Java)> RabbitMQ
More technical information may be concerned about: itheimaGZ get