Activemq;rabbitmq;zeromq

Source: Internet
Author: User
Tags stomp rabbitmq

Middleware Type:
    • Embedded Middleware:as The name suggests, this typeof middleware handles Embedded applications (software or firmware).

    • RPC Middleware:rpc (Remote Procedure Call) middleware communicates with applications using calls.

    • Object request Broker:here, applications can sendand receive objects, like CORBA.

    • sql-oriented data Access middleware:primarily meantfor database-related applications, this class of middleware sits Betwe Enapplications that communicate with databases, like JDBC,ODBC.

    • message-oriented Middleware (MOM): message-oriented middleware Mediate thecommunication or messages, between Applications.

common three types of open source message middleware:ActiveMQ
ACTIVEMQ is an open source messaging middleware developed by Apache, Java implementation, based on the JMS1.1 and 1.4 specifications.
RabbitMQ
RabbitMQ is an open source implementation of Advanced messagequeuing Protocol (AMQP) provided by LShift, written by Erlang, known for its high performance, robustness, and scalability, and therefore inherited these benefits.
ZeroMQ
ZEROMQ is a high-performance message middleware developed by Imatix company using C language, which is the encapsulation of sockets, which caches messages on the sending side.

ActiveMQ Architecture

    • The Queue region is a peer-to message model, and Topic region is the Publish/subscribe model.

    • Connectors is responsible for message communication, support Openwire, Stomp,rest,ws Notification, XMPP and other protocols.

    • Network Services is responsible for storing, forwarding, clustering, and so on.

    • Message store is responsible for the storage of messages, supporting four types of message persistence such as memory, files, embedded databases, and external databases.

ActiveMQ features

Multi-language support: Java, C, c++,c#, Ruby, Perl, Python, PHP

Message model:

Point to Pointpublish/subscribe

Agreement Support situation:

Support Openwire,stomp,rest,ws Notification,xmpp. Only the STOMP protocol is supported for Python. The AMQP protocol is not supported. Support Stomp 1.0, STOMP 1.1 is not supported.

Spring is supported and can be easily integrated into spring and configured with spring scripting.

Support clustering built-in with AutoDiscovery, can be automatically sent to each other

With Apache support, the advantages of sustainable development are obvious.

Python-enabled clients are tiny open-source projects that are more complex and inflexible in their programming:

pyactivemq--Basic is not in maintenance, the activity is low. stomppy--recommended, Rhel also has the corresponding RPM package, the active degree is medium.

A message server is required to store forwarded messages.

Message latency is the 10ms level.

RabbitMQ Architecture

    • RABBITMQ includes four concepts for virtual hosts (VirtualHost), switches (Exchange), queues (queue), and bindings (binding).

    • VirtualHost: Holding a group of exchange, queue, and bingding can do permissions control.

    • Queue: Stores messages, established by consumer, and bound to exchange.

    • Exchange: Messages are forwarded according to the rules of the binding.

    • Binding: Bind rule.

RabbitMQ features

    1. An open source implementation of the AMQP protocol, written in Erlang, has a language barrier during maintenance.

    2. The STOMP protocol is fully supported through plugin.

    3. With VMware Support, RABBITMQ should have more special support in cloud computing, and the architecture will be more suitable for cloud applications.

    4. Have SpringSource business support, including technical support, training.

    5. Support persistence, but only use its own database, not the use of MySQL and so on.

    6. Python client is Pika, programming flexible and simple, Java client-side programming is flexible and simple

    7. A message server is required to store forwarded messages.

    8. Message latency is the 10ms level.

ActiveMQ with the RabbitMQ Performance Test Comparison

Persistence Performance Comparison

Comparison of non-persistent performance

ZERORMQ features

    • is the package and extension of the socket, API and socket programming in the same way, support request-response, Publish/subscribe and other message patterns.

    • Only asynchronous I/O is supported, in order to improve performance send a message through a new thread.

    • There is no need for a separate messaging server to store forwarded messages, with a focus on the transmission of messages with higher performance than TCP.

    • Support C, C + +, Java,python and more than 20 languages. The development package for Java is Jzmq,python's development package is PYZMQ.

    • Message latency is the microsecond level.

    • Developed by Imatix, and can provide support and training. Imatix was the first creator of the AMQP protocol and developed an open source OPENAMQ, but in 2010 Imatix announced Imatix to drop OPENAMQ, the AMQP it now believes it Is "fundamentally flawed and unfixable". The main focus now is on ZEROMQ.

zeromq--excerpted from Zguide

  • Itturns out Building reusable messaging systems are really difficult, whichis why few FOSS projects ever tried, And why commercial messaging products Arecomplex, expensive, inflexible, and brittle. In 2006 Imatix designed AMQP whichstarted to give FOSS developers perhaps the first reusable recipe for amessaging system. AMQP works better than many other designs butremains relatively complex, expensive, and brittle. It takes weeks to learn-use, and months-to-create stable architectures Thatdon ' t crash when things get hairy.

  • Mostmessaging projects, like AMQP, the try to solve this long list of problems INA reusable A-Z by inventing A new concept, the "broker", Thatdoes addressing, routing, and queuing. This results in a client-server protocolor a set of APIs on top of some undocumented protocol, which let Applicationsspeak To this broker. Brokers is an excellent thing in reducing the complexityof large networks. But addingbroker-based messaging to a product like Zookeeper would make it worse, Notbetter. It would mean adding a additional big box, and a new single point offailure. A broker rapidly becomes a bottleneck and a new risk to manage. Ifthe software supports it, we can add a second, third, fourth broker and Makesome Fail-over scheme. People do this. It creates more moving pieces, more complexity,more things to break.

  • Anda Broker-centric set-up needs its own operations team. You literally need towatch the brokers day and night, and beat them with a stick when they startmisbehaving. You need boxes, and you need backup boxes, and you need people tomanage those. It is only worth doing for large applications with manymoving pieces, built by several teams of people, over several years .

  • Sosmall to medium application developers is trapped. Either they avoid networkprogramming, and make monolithic applications. Or They jumpinto network programming and make brittle, complex applications that is hardto maintain. Or They bet on a messaging product, and end up with scalableapplications that depend on expensive, easily broken technolog Y. There has beenno really good choice, which are maybe why messaging are largely stuck in thelast century and stirs strong Emotions. Negative ones for users, gleeful joyfor those selling support and licenses.

ActiveMQ RabbitMQ ZeroMQ
Follow specifications JMS1.1 and Java 1.4 Ampq ---
Schema model Message Broker Schema broker Message Broker Schema broker c/S architecture
Implementation language Java Erlang C + +
Support Message Protocol Stomp AMPQ,Stomp , etc. ---
Main driving force Volume Apache,Redhat LShift,Vmware,SpringSource Imatix
Support for programming languages C,Java,Python C,Java,Python C,Java,Python
Complexity of programming Complex Simple Medium
Persistence of Support Support, third-party databases are not supported Send-side cache
Performance Normal Normal High
Memory utilization High High Normal

Activemq;rabbitmq;zeromq

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.