RabbitMQ快速上手(延迟队列) |
您所在的位置:网站首页 › qq收到消息延迟 › RabbitMQ快速上手(延迟队列) |
安装
官网 参考文章: https://blog.csdn.net/miaoye520/article/details/123207661 https://blog.csdn.net/lvoelife/article/details/126658695安装Erlang,并添加环境变量ERLANG_HOME,命令行运行erl 安装rabbitmq,rabbitmq-server-3.12.0.exe 注意Erlang要选择对应的版本 安装RabbitMQ-Plugins插件,rabbitmq-plugins enable rabbitmq_management 访问 http://localhost:15672/ 账号密码 guest,guest 使用中文文档 参考文章: https://blog.csdn.net/weixin_45698935/article/details/123481137 https://www.liwenzhou.com/posts/Go/rabbitmq-1/Go实践: go get github.com/streadway/amqp基本使用: 生产者 package main import ( "github.com/streadway/amqp" "log" ) type App struct { Name string Num int } type Root struct { Apps []*App } func main() { // 1.尝试连接RabbitMQ,建立连接 // 该连接抽象了套接字连接,并为我们处理协议版本协商和认证等。 conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/") if err != nil { log.Fatalf(err.Error()) } defer conn.Close() // 2.创建一个通道, 大多数API都是该通道操作的 ch, err := conn.Channel() defer ch.Close() // 3.声明消息要发送的队列 q, err := ch.QueueDeclare("hello", false, false, false, false, nil) if err != nil { log.Fatalf(err.Error()) } body := "hello world12" err = ch.Publish("", q.Name, false, false, amqp.Publishing{ ContentType: "text/plain", Body: []byte(body), }) if err != nil { log.Fatalf(err.Error()) } return }消费者 package main import ( "github.com/streadway/amqp" "log" ) func main() { // 1.尝试连接RabbitMQ,建立连接 // 该连接抽象了套接字连接,并为我们处理协议版本协商和认证等。 conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/") if err != nil { log.Fatalf(err.Error()) } defer conn.Close() // 2.创建一个通道, 大多数API都是该通道操作的 ch, err := conn.Channel() defer ch.Close() // 3.声明消息要发送的队列 q, err := ch.QueueDeclare("hello", false, false, false, false, nil) if err != nil { log.Fatalf(err.Error()) } // 获取接收消息的Delivery通道 msgs, err := ch.Consume( q.Name, // queue "", // consumer true, // auto-ack false, // exclusive false, // no-local false, // no-wait nil, // args ) if err != nil { log.Println(err.Error(), "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") |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |