這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
RabbitMQ的安裝
官網:http://www.rabbitmq.com
安裝地址:http://www.rabbitmq.com/download.html
RabbitMQ的go語言驅動:https://github.com/streadway/amqp
Hello,World!
假設你已經安裝好了RabbitMQ,並且已經安裝好了rabbitMQ的golang驅動,接下來我們開始我們的"hello,world!”
這裡我們寫兩個小程式,一個作為Message的Producer,一個作為Message的Consumer,它們的關係如下:
P代表Producer,C代表Consumer,中間紅色的部分就是queue,它是RabbitMQ維持的與C之間的一個訊息緩衝區。
現在我們開始寫一個Message Producer,將它命名為sender.go,以及一個Message Consumer,命名為receiver.go,在sender.go中將串連至RabbitMQ,然後發送Message到RabbitMQ中。receiver.go將串連至RabbitMQ,然後從它的一個queue中接收Message。
發送操作
發送操作過程
我們匯入如下包:
再寫一個處理err的func
串連到RabbitMQ Server
其中amqp是傳輸協議,登入RabbitMQ Server的帳號密碼均為devolop,地址是localhost:5672,最後面的/dell表示的是Virtual Hosts的名字。如果這些你都沒有設定,那麼amqp.Dial(url string)這個url填寫amqp://guest:guest@localhost:5672/即可。
接下來建立一個channel
為了能夠發送訊息,我們還得聲明一個queue,這樣我們就可以往這個queue中發送訊息了。這個queue的名字叫做hello
現在可以發送訊息了
進入你的RabbitMQ 的web管理頁面,會發現queues中的hello已經有了一條訊息
註:這個發送未起作用
如果你第一次用RabbitMQ,在運行了上面的代碼且成功之後還未在web管理頁面發現你發送的訊息,那麼可能是你遺忘了填頭資訊或者填寫錯誤。也有可能是broker啟動時沒有足夠的硬碟空間(預設至少200M),所以RabbitMQ拒絕接受訊息,此時你應該檢查日誌並且減少這個限制的閥值,這個連結會協助你怎樣設定這個值。
接收操作
接收操作過程
在接收操作中,我們同樣要有連結到RabbitMQ Server,開啟一個conn和一個channel,並且聲明一個queue,這個queue和發送操作中的聲明一模一樣,因為接收操作一般先於發送操作啟動,所以從queue中接收訊息時要確保該queue已經存在。
對於建立相同的queue,RabbitMQ在同一個virtual hosts下是不接受兩個同名的queue的,所以先建立的queue存在的情況下,再去建立一個同名的queue,此時這個queue的配置將不會生效,不會覆蓋先前建立的那個queue,也不會返回錯誤。
接收訊息:
這樣在控制台就能看到從RabbitMQ 中接收到的訊息。