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