Golang RabbitMQ学习笔记(1 : 简单实现消息发送接收)

18393910396 · · 1148 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

****1:生产者**** ```go package main import ( "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://guest:guest@localhost:5672/") FailOnError(err, "连接RabbitMQ失败") defer conn.Close() ch, err := conn.Channel() FailOnError(err, "打开Channel失败") defer ch.Close() q, err := ch.QueueDeclare( "hello", //name false, //durable 持久性 false, //autoDelete false, //专享 false, //noWait nil, //args ) FailOnError(err, "声明Queue队列失败") body := "hello,RabbitMQ。你好,消息队列" err = ch.Publish( "", //exchange q.Name, //key false, //mandatory 强制的,命令的 false, //immediate amqp.Publishing{ContentType: "text/plain", Body: []byte(body)}) log.Printf(" [x] Sent %s", body) FailOnError(err, "发布消息失败") } ``` *** 2:消费者*** ```go package main import ( "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://guest:suest@http://localhost:5672") conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/") FailOnError(err, "连接RabbitMQ失败") defer conn.Close() ch, err := conn.Channel() FailOnError(err, "打开Channel失败") defer ch.Close() q, err := ch.QueueDeclare("hello", false, false, false, false, nil) FailOnError(err, "声明队列Queue失败") msgs, err := ch.Consume(q.Name, "", true, false, false, false, nil) FailOnError(err, "注册一个接收者失败") forever := make(chan bool) go func() { for d := range msgs { log.Println("接收一个消息:", string(d.Body)) } }() log.Println("等待消息中,退出请按Ctrl+C") <-forever } ``` *** 3:搭建erlang环境,安装RabbitMQ客户端***

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1148 次点击  ∙  1 赞  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传