ZeroMQ: The best communication Library in the era of cloud computing

Source: Internet
Author: User

Still learning socket programming? Still studying why Epoll is better than select?

Oh, no!

In a complex cloud computing environment, the challenges we face are far more complex than this.

A large server cluster, as a computing cloud, may be just a simple search box, but in the cloud, complex interconnects and massive communications, coupled with an unstable network environment, low availability of inexpensive servers, is not so easy to build a highly available and scalable cloud computing environment!

Why is ZEROMQ the best communication library in the era of cloud computing? Let's analyze it from the characteristics of ZEROMQ:

1.The socket library that acts as a concurrency framework.

Open up like a parallel development framework socket library.

Why does a communication library not provide the socket style, but rather looks like a parallel library?

Cloud computing is not distributed computing!

Parallel, multi-core, and distributed, so that computing power is constantly expanding, so that the data is continuously partitioned, powerful computing power is such a heap.

Concurrency is the current world of cloud computing, so ZMQ provides a concurrent library that we need most.

As the advertisement says, the customer wants not an inch of drill, but an inch of hole.

What we want is not communication, but distributed parallel computing.


2. Carries messages across InProc, IPC, TCP, and multicast.

Provides in-process, inter-process, inter-machine and broadcast-mode message communication.

It can be said that ZMQ provides a powerful and complex environmental adaptability.

As a communications repository, we may feel that intra-process communication and interprocess communication are not important.

However, providing these features allows ZMQ to provide specific solutions in specific scenarios. And the configuration of the communication is quite simple: inproc://, ipc://, tcp://These three communication schemes are simply specified in a string. Developers can easily develop operational applications, and in different scenarios, only configuration files can be modified to accommodate complex deployment environments.


3.Connect n-to-n via Fanout, PubSub, Pipeline, request-reply.

provide multiple-to-one, publish/subscribe (one-to-many), Pipeline (one-to-one), request/response models in a multi-to-many network environment.

mode, or mode.

(For the word fanout, I do not fully understand, I think in the network communication, it should be more to one such scenario)

Every day to do the development of the network, people may feel that the communication is so kick, the classic pattern is constantly repeating, but we still on the specific problem repeatedly written similar code.

And ZMQ offers more than just this: ZMQ is like a pipe adapter, in a complex water supply system, the ZMQ is flexibly adapted to each joint, connected like a water pipe, separating or merging data.

For example, the data is distributed to multiple servers according to pub/sub mode, the processes on each server are used InProc within the process, the requests are distributed across multiple threads, and if there is a special need, the data can be relayed to other processes on the same machine in an IPC manner. And it takes less code to do all of this complicated work.


4. Fast enough for clustered products and supercomputing.

It will be fast enough for server clusters and supercomputing.

Supercomputing can do, what else do you want to do?


5. Asynch I/O for scalable multicore message-passing apps.

Provides asynchronous I/O support for extensible multi-core messaging applications.

In ZMQ's inproc://mode, the library provides a thread-safe message distribution mechanism that can simply distribute the request to multithreaded processing.


6. Large and active open source community.

An open source community with huge and active

Remember, you are not alone in battle! No......


7 20+ languages including C, C + +, Java,. NET, Python.

More than 20 types of development language bindings, such as C, C + +, Java,. NET, Python


8. Most OSes including Linux, Windows, OS x.

also supports most operating systems, such as Linux, Windows, OS X


9. LGPL free software with full commercial support.

This is the most important, not money, but can also provide commercial support.

Note:

Fan out: A very important concept in the digital electricity, "the output of a logic gate needs to drive the input of multiple equivalent gates, and the equivalent gate number required to drive the output termination is fan-out F".

Fan-out (fan-out) is the term that defines the maximum number of digital signals that a single logic gate can drive.

From:http://hi.baidu.com/ah%5f%5ffu/blog/item/fd73593ebb3dd6e8828b13a3.html

Http://www.cnblogs.com/dkblog/archive/2011/05/12/2044095.html

ZeroMQ: The best communication Library in the era of cloud computing

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.