阿里云Rabbitmq Go SDK使用示例

简介: 本文主要演示如何使用开源Go SDK连接阿里云Rabbitmq。

Step By Step

1、RabbitMq控制台创建实例以及用户名&密码&Vhost

image.png

image.png


image.png


2、SDK 安装

gogetgithub.com/streadway/amqp

3、Send.go

packagemainimport (
"bytes""fmt""log""github.com/streadway/amqp")
funcfailOnError(errerror, msgstring) {
iferr!=nil {
log.Fatalf("%s: %s", msg, err)
    }
}
funcmain() {
varbufbytes.BufferuserName :="<username>"password :="<password>"buf.WriteString("amqp://")
buf.WriteString(userName)
buf.WriteString(":")
buf.WriteString(password)
// <Your End Point> 请从控制台获取。如果你使用的是杭州Region,那么Endpoint会形如 137000000010111.mq-amqp.cn-hangzhou-a.aliyuncs.combuf.WriteString("@<endpoint>:5672/<vhost>")
url :=buf.String()
fmt.Println(url)
conn, err :=amqp.Dial(url)
failOnError(err, "Failed to connect to RabbitMQ")
deferconn.Close()
ch, err :=conn.Channel()
failOnError(err, "Failed to open a channel")
deferch.Close()
q, err :=ch.QueueDeclare(
"helloqueue", // namefalse,        // durablefalse,        // delete when unusedfalse,        // exclusivefalse,        // no-waitnil,          // arguments    )
failOnError(err, "Failed to declare a queue")
body :="Hello World!"err=ch.Publish(
"",     // exchangeq.Name, // routing keyfalse,  // mandatoryfalse,  // immediateamqp.Publishing{
ContentType: "text/plain",
Body:        []byte(body),
        })
failOnError(err, "Failed to publish a message")
log.Printf(" [x] Sent %s", body)
}

4、Receive.go

packagemainimport (
"bytes""fmt""log""github.com/streadway/amqp")
funcfailOnError(errerror, msgstring) {
iferr!=nil {
log.Fatalf("%s: %s", msg, err)
    }
}
funcmain() {
varbufbytes.BufferuserName :="<username>"password :="<password>"buf.WriteString("amqp://")
buf.WriteString(userName)
buf.WriteString(":")
buf.WriteString(password)
// <Your End Point> 请从控制台获取。如果你使用的是杭州Region,那么Endpoint会形如 137000000010111.mq-amqp.cn-hangzhou-a.aliyuncs.combuf.WriteString("@<endpoint>:5672/<vhost>")
url :=buf.String()
fmt.Println(url)
conn, err :=amqp.Dial(url)
failOnError(err, "Failed to connect to RabbitMQ")
deferconn.Close()
ch, err :=conn.Channel()
failOnError(err, "Failed to open a channel")
deferch.Close()
q, err :=ch.QueueDeclare(
"helloqueue", // namefalse,        // durablefalse,        // delete when unusedfalse,        // exclusivefalse,        // no-waitnil,          // arguments    )
failOnError(err, "Failed to declare a queue")
msgs, err :=ch.Consume(
q.Name,   // queue"democs", // consumertrue,     // auto-ackfalse,    // exclusivefalse,    // no-localfalse,    // no-waitnil,      // args    )
failOnError(err, "Failed to register a consumer")
forever :=make(chanbool)
gofunc() {
ford :=rangemsgs {
log.Printf("Received a message: %s", d.Body)
        }
    }()
log.Printf(" [*] Waiting for messages. To exit press CTRL+C")
<-forever}

5、The Result

image.png

6、控制台监控查看

image.png

更多参考

rabbitmq-tutorials

tutorial-one-go

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
3月前
|
前端开发 JavaScript API
阿里云智能媒体服务IMS(Intelligent Media Services)的视频剪辑Web SDK
【1月更文挑战第15天】【1月更文挑战第72篇】阿里云智能媒体服务IMS(Intelligent Media Services)的视频剪辑Web SDK
52 6
|
3月前
|
弹性计算 Java API
阿里云OpenAPI的依赖文件通常在阿里云官方文档或者SDK的GitHub仓库中可以找到
【1月更文挑战第5天】【1月更文挑战第21篇】 阿里云OpenAPI的依赖文件通常在阿里云官方文档或者SDK的GitHub仓库中可以找到
97 1
|
2月前
|
人工智能 Java 开发工具
阿里云视觉智能开放平台提供了多种SDK供开发者使用
阿里云视觉智能开放平台提供了多种SDK供开发者使用
32 6
|
2月前
|
对象存储
阿里云oss-cloud-sdk-springboot3兼容问题
阿里云oss-cloud-sdk-springboot3兼容问题
70 0
|
3月前
|
移动开发 JavaScript
简单介绍下阿里云的H5滑动验证+H5示例源码
简单介绍下阿里云的H5滑动验证+H5示例源码
38 0
|
4月前
|
存储 安全 搜索推荐
芜湖阿里云代理商:aliyun-python-sdk-ossadmin
简介:@luotuoemo 飞机@TG 【聚搜云】服务器运维专家! www.4526.cn 阿里云是一家全球领先的云计算服务提供商,提供丰富的云产品和解决方案。作为阿里云代理商,使用aliyun-python-sdk-ossadmin可以帮助用户更好地管理和使用阿里云的对象存储服务(OSS),享受到阿里云带来的诸多优势。
|
4月前
|
存储 Go
Go 语言中结构体的使用和示例
结构体(简称struct)用于创建不同数据类型的成员集合,放入一个单一的变量中。虽然数组用于将相同数据类型的多个值存储在单一变量中,但结构体用于将不同数据类型的多个值存储在单一变量中。结构体对于将数据组合在一起以创建记录非常有用。
37 0
|
4月前
|
存储 DataWorks 开发工具
在DataWorks中,可以使用Python SDK操作阿里云OSS存储服
在DataWorks中,可以使用Python SDK操作阿里云OSS存储服
134 1
|
4月前
|
开发工具
阿里云的镜像服务(mirrors.aliyun.com)可以同步 Google Cloud SDK 的软件包
阿里云的镜像服务(mirrors.aliyun.com)可以同步 Google Cloud SDK 的软件包
183 3