
RabbitMQ Golang教程
发布日期:2021-05-09 09:14:35
浏览次数:20
分类:博客文章
本文共 2426 字,大约阅读时间需要 8 分钟。
���������������go get������amqp
-
go get github.com/streadway/amqp
��������������������������������������������� send.go������������������������������������������receive.go������������������������RabbitMQ���������������������������������������
package mainimport ( "github.com/streadway/amqp" "log")func failOnError(err error, msg string) { if err != nil { log.Fatalf("%s: %s", msg, err) }}func main() { conn,err := amqp.Dial("amqp://admin:admin@xx.xxx.xxx.xxx:5672/") failOnError(err,"Failed to connect to RabbitMQ") defer conn.Close() ch,err := conn.Channel() failOnError(err, "Failed to open a channel") defer ch.Close() q, err := ch.QueueDeclare( "hello", // name false, // durable false, // delete when unused false, // exclusive false, // no-wait nil, // arguments ) failOnError(err, "Failed to declare a queue") body := "Hello World!" err = ch.Publish( "", // exchange q.Name, // routing key false, // mandatory false, // immediate amqp.Publishing{ ContentType: "text/plain", Body: []byte(body), }) failOnError(err, "Failed to publish a message") log.Printf(" [x] Sent %s", body)}
������
������������������������������������������������������������RabbitMQ������������������������������������������������������������������������������������������������������������������������������������
���������������receive.go���������������send���������������������������������
package mainimport ( "github.com/streadway/amqp" "log")func failOnErrors(err error, msg string) { if err != nil { log.Fatalf("%s: %s", msg, err) }}func main() { conn,err := amqp.Dial("amqp://admin:admin@xx.xxx.xxx.xxx:5672/") failOnErrors(err, "Failed to connect to RabbitMQ") defer conn.Close() ch, err := conn.Channel() failOnErrors(err, "Failed to open a channel") defer ch.Close() q, err := ch.QueueDeclare( "hello", // name false, // durable false, // delete when unused false, // exclusive false, // no-wait nil, // arguments ) failOnErrors(err, "Failed to declare a queue") msgs, err := ch.Consume( q.Name, // queue "", // consumer true, // auto-ack false, // exclusive false, // no-local false, // no-wait nil, // args ) failOnErrors(err, "Failed to register a consumer") forever := make(chan bool) go func() { for d := range msgs { log.Printf("Received a message: %s", d.Body) } }() log.Printf(" [*] Waiting for messages. To exit press CTRL+C") <-forever}
���
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年04月08日 22时12分58秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【Elasticsearch】elasticsearch shard 分片
2021-05-10
毕业论文查重时泄露怎么办?
2021-05-10
发布项目到maven中央仓库
2021-05-10
HDOJ1028-Ignatius and the Princess III(整数划分)
2021-05-10
学习spring security 5~入门
2021-05-10
ArcServer10.1-10.2集群部署和Nginx结合负载均衡
2021-05-10
ArcEngine代码 GP区域分析之面积制表(统计各行政区内的各土地利用类型面积)
2021-05-10
ArcEngine代码 GP提取分析之筛选
2021-05-10
Flutter-Dart version solving failed
2021-05-10
JAVA变量和运算符
2021-05-10
常见状态码
2021-05-10
重定向
2021-05-10
08-springmvc-异常解析器
2021-05-10
杂谈: 记一次深夜发版经历
2021-05-10
在select后面嵌套子查询
2021-05-10
表的复制和批量插入
2021-05-10
MYISAM存储引擎
2021-05-10
练习题第一道
2021-05-10
什么情况必须使用 statement
2021-05-10