如何用ZeroMQ實現UDP組播Pub-Sub(基於Golang)

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

ZeroMQ有一對Pub/Sub socket 類型,但是網上的教程一般側重於使用TCP版本的……雖然TCP版本的也能組網,但是略顯麻煩,今天我來給大家介紹一下基於PGM協議的ZeroMQ Pub/Sub模型 首先要編譯安裝OpenPGM brewinstall libpgm 接著是zmq brew install zmq --with-pgm 這樣就準備好了環境了,這裡需要瞭解一下PGM網路的原理,很簡單,如 綠色的就是發送方,向目的組播地址239.192.0.1 連接埠3055(黑色粗線)發送資料,然後所有監聽此連接埠的接收者(Receiver)都收到了。就這麼簡單。 然後就是寫代碼咯:

soc = zmq.NewSocket(zmq.PUB)soc.Connect("epgm://192.168.1.100;239.192.0.1:3055")soc.SendMessage("Hi")

呃……192.168.1.100? 這個是pgm的特點,你需要指定發送組播包的網卡名,一般人記不住網卡名……所以用此網卡所持有的IP來標示。 p.s.

  1. PGM有個特點,就是發送方進行流量控制,zmq中使用的是setrate,切記在Connect之前使用
  2. zmq會整理包,所以再散的資料,都會組合成一個message發送出來(不愧是智能網路)
  3. 實際測試時……16Mbps的流量根本不是問題
  4. 需要debug PGM時export PGM_MIN_LOG_LEVEL=TRACE
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.