ZeroMQ:還在研究為什麼epoll比select更好嗎?

來源:互聯網
上載者:User

還在學socket編程嗎?還在研究為什麼epoll比select更好嗎?

噢,不必了!

在複雜的雲端運算環境中,我們面臨的難題遠比這個複雜得多。

龐大的伺服器叢集作為計算雲,對來來看或許只是一個簡單的搜尋方塊;而在雲的內部,複雜的互聯和海量的通訊,加之不穩定的網路環境,廉價伺服器的低可用性——構建一個高可用性且具備伸縮能力的雲端運算的環境,不是那麼容易的!

為什麼說ZeroMQ是雲端運算時代最好的通訊庫呢?我們從ZeroMQ的特性來分析吧:

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

開起來像是並行開發架構的socket庫。

為什麼一個通訊的庫不提供socket的風格,反而看起來像是一個並行的庫?

雲端運算不就是分散式運算嘛!

並行、多核、分布式,讓計算能力不斷的被擴充擴充,讓資料不斷地被分區分區,強大的計算能力就是這樣堆出來的。

並發是目前雲端運算這個世界的主題,所以ZMQ提供了一個並發的庫,正式我們最最需要的。

如同廣告所講:客戶要的不是一英寸的鑽頭,而是一英寸的洞。

我們要的不是通訊,而是分布式並行計算。

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

提供進程內、進程間、機器間和廣播方式的訊息通訊。

可以說ZMQ提供了一種強大的複雜環境適應能力。

作為一個通訊庫,可能我們覺得進程內通訊和進程間通訊不是重要的。

然而,提供這些功能,使得ZMQ能夠在特定的情境下提供特定的解決方案。且通訊的配置相當的簡單:inproc://, ipc://, tcp://這三個通訊方案簡單地在字串中指定即可。開發人員可以很容易開發出可營運的應用程式,在不同的情境下,可以僅修改設定檔來適應複雜的部署環境。

3.Connect N-to-N via fanout, pubsub, pipeline, request-reply.

在多對多的網路環境中提供多對一,發布/訂閱(one-to-many),管道(one-to-one),請求/響應等模型。

模式,還是模式。

(對於fanout這個詞,我沒完全理解,我覺得在網路通訊中,應該就是多對一這樣的情境)

天天做網路的開發的人,可能會覺得通訊就那麼三板斧,經典的模式不斷在重複,可是我們仍然在具體的問題上反覆寫著類似的代碼。

而ZMQ提供的不僅僅是這個:ZMQ就像一堆水管的轉接頭,在複雜的自來水供水系統中,ZMQ在每個關節靈活地適配,像水管一樣接起來,把資料分開或是合并。

例如,先把資料按照pub/sub模式分發給多個伺服器,每個伺服器上的進程在進程內用inproc,將請求分布到多個線程上處理,如果有特別的需要,還可以把資料用ipc方式轉寄給同一機器上的其他進程。而完成這一切複雜的工作僅需要少少的代碼。

4. Fast enough for clustered products and supercomputing.

對伺服器叢集和超級計算來將都足夠快了

超級計算都能做,你還想幹啥?

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

對可擴充的多核訊息傳遞應用程式提供非同步I/O支援。

在ZMQ的inproc://模式中,庫提供了安全執行緒的訊息分發機制,可以簡單地把請求分發給多執行緒。

6. Large and active open source community.

擁有超大並且活躍的開源社區

記住,你不是一個人在戰鬥!不是……

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

有超過20種以上的開發語言綁定,諸如C, C++, Java, .NET, Python

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

還支援絕大多數的作業系統,例如Linux, Windows, OS X

9. LGPL free software with full commercial support.

這是最重要的,不要錢,但也可以供應商業支援。

註:

Fan out:數電裡很重要的概念,“一邏輯門的輸出需要驅動多個等效門的輸入,稱輸出端接的需要驅動的等效門數為扇出F”。

扇出(fan-out)是定義單個邏輯門能夠驅動的數字訊號最大輸入量的術語。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.