https://blog.csdn.net/qq_36389107/article/details/80404043
1.安裝erlang
1).官網(wǎng)下載:官網(wǎng)下載
2).百度云盤下載:點(diǎn)擊下載
下載完成后,是一個(gè)exe文件,雙擊傻瓜式安裝即可
3).新建系統(tǒng)變量:變量名 ERLANG_HOME 變量值 D:\softInstall\erl8.3(Erlang安裝目錄)
4.添加到PATH:%ERLANG_HOME%\bin;
2.安裝rabbitMQ
1).官網(wǎng)下載:官網(wǎng)下載
2).百度云盤:點(diǎn)擊下載
下載完成后,也是傻瓜式安裝即可
3.安裝RabbitMQ-Plugins
進(jìn)入rabbitMQ的安裝目錄下的sbin目錄,
打開cmd,輸入:rabbitmq-plugins enable rabbitmq_management
打開瀏覽器:輸入:http://localhost:15672/
- 如果能打開登錄界面,直接輸入賬號密碼為guest,guest即可進(jìn)入管理頁面
- 打不開的話,進(jìn)入
C:\Users\Administrator\AppData\Roaming\RabbitMQ\db
目錄下,全選刪除即可。刪除不了的不管跳過即可。(是c盤用戶下的目錄位置。如果沒看見appdata,左上角點(diǎn)擊查看》》顯示隱藏的文件即可) - 在點(diǎn)擊RabbitMQ.exe安裝即可。完成后就能打開web管理界面了
視頻教程地址:點(diǎn)擊傳送
RabbitMQ for Go
接收和發(fā)送實(shí)例(下面是完整代碼):
package main
import (
"fmt"
"log"
"bytes"
"time"
"github.com/streadway/amqp"
)
var conn *amqp.Connection
var channel *amqp.Channel
var count = 0
const (
queueName = "push.msg.q"
exchange = "t.msg.ex"
mqurl ="amqp://shi:123@192.168.232.130:5672/test"
)
func main() {
go func() {
for {
push()
time.Sleep(1 * time.Second)
}
}()
receive()
fmt.Println("end")
close()
}
func failOnErr(err error, msg string) {
if err != nil {
log.Fatalf("%s:%s", msg, err)
panic(fmt.Sprintf("%s:%s", msg, err))
}
}
func mqConnect() {
var err error
conn, err = amqp.Dial(mqurl)
failOnErr(err, "failed to connect tp rabbitmq")
channel, err = conn.Channel()
failOnErr(err, "failed to open a channel")
}
func close() {
channel.Close()
conn.Close()
}
//連接rabbitmq server
func push() {
if channel == nil {
mqConnect()
}
msgContent := "hello world!"
channel.Publish(exchange, queueName, false, false, amqp.Publishing{
ContentType: "text/plain",
Body: []byte(msgContent),
})
}
func receive() {
if channel == nil {
mqConnect()
}
msgs, err := channel.Consume(queueName, "", true, false, false, false, nil)
failOnErr(err, "")
forever := make(chan bool)
go func() {
//fmt.Println(*msgs)
for d := range msgs {
s := BytesToString(&(d.Body))
count++
fmt.Printf("receve msg is :%s -- %d\n", *s, count)
}
}()
fmt.Printf(" [*] Waiting for messages. To exit press CTRL+C\n")
<-forever
}
func BytesToString(b *[]byte) *string {
s := bytes.NewBuffer(*b)
r := s.String()
return &r
}
posted on 2018-06-09 15:13
思月行云 閱讀(366)
評論(0) 編輯 收藏 引用 所屬分類:
Golang 、
分布式\MQ