這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
在上一篇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。