一、ZeroMQ介紹
ZeroMQ是一個開源的消息隊列系統,按照官方的定義,它是一個消息通信庫,幫助開發者設計分布式和并行的應用程式。
首先,我們需要明白,ZeroMQ不是傳統的消息隊列系統(比如ActiveMQ、WebSphereMQ、RabbitMQ等)。ZeroMQ可以幫助我們建立自己的消息隊列系統,它隻是一個庫。
ZeroMQ可以運作于帶x86處理器或ARM處理器的機器上,支援40多種程式設計語言。
消息隊列,從技術的角度來講,是以先進先出FIFO算法為基礎的隊列技術,它有着良好的資料結構。除此以外,還有優先級隊列、雙端隊列等隊列技術。不管怎麼樣,其基本思想是把資料添加到隊列中,接收端準備好以後,從隊列中取回資料。
采用消息隊列技術可以保證無論發生了什麼,消息都會被傳遞到目的地。
消息隊列允許松耦合的元件之間進行異步通信,還提供了堅實的隊列一緻性。如果資源不足,會阻止你立即處理發送的資料,你可以把消息放入消息隊列伺服器,由消息隊列伺服器來存儲資料,直到目的地準備好接收消息。
消息隊列在大規模分布式系統和異步通信中扮演着重要的角色。
二、ZeroMQ特征
1)ZeroMQ很簡單
我們可以做異步I/O操作,ZeroMQ可以在一個I/O線程中把消息隊列化。ZeroMQ的I/O線程是異步的,當處理網絡交通時,它可以幫助我們完成很多剩餘的工作。
2)ZeroMQ相當快
Second Life網站有13.4毫秒的端到端延時和高達每秒410萬條消息的處理量。ZeroMQ能使用廣播傳輸協定——它是把資料傳輸到多個目的地的好方法。
3)無代理設計
與其它傳統的消息隊列系統不同,ZeroMQ是無代理式的。傳統的消息隊列系統,通常都有中央消息伺服器(Broker),每個節點都連接配接到這個中央節點,每個節點都通過中央節點與其它節點通信,而不是節點間彼此直接通信。
而ZeroMQ是無代理式的,應用程式彼此可以直接通信,無需通過中間代理Broker。
注意:ZeroMQ不會在磁盤上存儲消息。但是,可以通過使用本地交換檔案的方式存儲消息。設定zmq.SWAP。
三、準備條件
OS:CentOS 6.5 x64
ZeroMQ:4.0.4版
四、安裝ZeroMQ
1)下載下傳ZeroMQ
執行指令:

$ wget http://download.zeromq.org/zeromq-4.0.4.tar.gz
2)解壓ZeroMQ

$ tar zvxf zeromq-4.0.4.tar.gz
$ mv zeromq-4.0.4 zeromq
$ cd zeromq
3)編譯安裝

$ ./configure
......
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/home/chuser/zeromq':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
提示缺少C編譯器,先安裝GCC。

$ sudo yum install gcc
安裝OK!再次執行

checking whether the C++ compiler works... no
configure: error: Unable to find a working C++ compiler
提示缺少C++編譯器,先安裝G++。

$ sudo yum install gcc-c++

$ make
$ sudo make install
ZeroMQ安裝成功!
若轉載請注明出處!若有疑問,請回複交流!