https://github.com/leafney/golangforrabbitmqdemo
Golang For RabbitMQ Demo
https://github.com/leafney/golangforrabbitmqdemo
golang rabbitmq
Last synced: 3 months ago
JSON representation
Golang For RabbitMQ Demo
- Host: GitHub
- URL: https://github.com/leafney/golangforrabbitmqdemo
- Owner: leafney
- Created: 2017-12-07T14:51:18.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-12-07T14:52:06.000Z (over 7 years ago)
- Last Synced: 2025-01-14T15:23:41.796Z (5 months ago)
- Topics: golang, rabbitmq
- Language: Go
- Homepage:
- Size: 92.8 KB
- Stars: 1
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### Golang RabbitMQ Demo
#### install:
```
go get github.com/streadway/amqp
```####
##### 连接到RabbitMQ服务器
```
// 连接到RabbitMQ服务器
conn, err := amqp.Dial("amqp://user:[email protected]:5672/")
failOnError(err, "连接 RabbitMQ 失败")
defer conn.Close()
```##### 打开通道
```
ch, err := conn.Channel()
failOnError(err, "打开通道失败")
defer ch.Close()
```##### 声明队列,存储消息
```
// 声明队列,存储消息
q, err := ch.QueueDeclare(
"task_queue",
true,
false,
false,
false,
nil,
)
```##### 发布消息
```
err = ch.Publish(
"",
q.Name,
false,
false,
amqp.Publishing{
DeliveryMode: amqp.Persistent,
ContentType: "text/plain",
Body: []byte(body),
})
```##### 接收消息
```
msgs, err := ch.Consume(
q.Name,
"",
false, //auto-ack
false,
false,
false,
nil,
)
```##### Bind
```
err = ch.QueueBind(
q.Name, //队列名称
“black”, //路由键
“logs”, //交换名称
false,
nil)
```#### basic list
##### HelloWorld
* one_send.go
* one_receive.go##### Work queues
* two_task.go
* two_worker.go##### Publish/Subscribe Push Mode
* push_producer.go
* push_consumer.go##### Publish/Subscribe Pull Mode
* pull_producer.go
* pull_consumer.go  
#### 参考
* [RabbitMQ - RabbitMQ tutorial](https://www.rabbitmq.com/tutorials/tutorial-one-go.html)