golang:高效能訊息佇列moonmq的簡單使用

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

在上一篇moonmq的介紹中(這裡),我只簡短的羅列了一些moonmq的設計想法,可是對於怎樣使用並沒有具體說明,公司同事無法非常好的使用。

對於moonmq的使用,事實上非常easy,例子代碼在這裡,我們僅僅須要處理好broker,consumer以及publisher的關係就能夠了。

首先,我們須要啟動一個broker,由於moonmq如今僅僅支援tcp的自己定義協議,所以broker啟動的時候須要指定一個listen address。

#啟動broker./simple_broker -addr=127.0.0.1:11182

啟動了broker之後,我們就能夠向該broker發送訊息

#向test這個queue發送 hello msg./simple_publisher -addr=127.0.0.1:11182 -queue=test -msg=hello

然後在還有一個shell裡面接收訊息

#接收test這個queue的訊息./simple_consumer -addr=127.0.0.1:11182 -queue=test#output get msg: hello

假設沒有訊息,那麼consumer就會一直等待,直到接收到訊息。

這裡具體說一下consumer的實現,

  • 建立一個與broker的串連

      //create a client for use  client := NewClient(config)  //get a usable connection  conn, _ := client.Get()
  • 綁定queue

      //bind a queue  //queue name : test  //routingKey : ""  //noAck : true  ch, _ := conn.Bind("test", "", true)
  • 接收訊息

      //receive msg, block to wait until a msg received  msg := ch.GetMsg()  println(msg)
  • 回執訊息

      //if channel noAck is false, we must ack  ch.Ack()

從上面的範例能夠看出,使用moonmq非常方便,興許我準備增加http的支援,使其更easy使用。

moonmq的代碼在這裡https://github.com/siddontang/moonmq。

相關文章

聯繫我們

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