这篇文章主要介绍了docker快速安装rabbitmq的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
一、获取镜像
#指定版本,该版本包含了web控制页面 docker pull rabbitmq:management
二、运行镜像
#方式一:默认guest 用户,密码也是 guest docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management #方式二:设置用户名和密码 docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password -p 15672:15672 -p 5672:5672 rabbitmq:management
三、访问ui页面
http://localhost:15672/
![图片[1]-docker快速安装rabbitmq的方法步骤_docker-安全小天地](https://img.godyu.com/2023/12/20231226090842689.png?imageView2/0/format/webp/q/75)
四、golang案例
#producer生产者代码
package main
import (
\"fmt\"
\"log\"
\"github.com/streadway/amqp\"
)
const (
//AMQP URI
uri = \"amqp://guest:guest@10.0.0.11:5672/\" // 10.0.0.11为主机ip
//Durable AMQP exchange name
exchangeName = \"\"
//Durable AMQP queue name
queueName = \"test-queues\"
//Body of message
bodyMsg string = \"hello angel\"
)
//如果存在错误,则输出
func failOnError(err error, msg string) {
if err != nil {
log.Fatalf(\"%s: %s\", msg, err)
panic(fmt.Sprintf(\"%s: %s\", msg, err))
}
}
func main() {
//调用发布消息函数
publish(uri, exchangeName, queueName, bodyMsg)
log.Printf(\"published %dB OK\", len(bodyMsg))
}
//发布者的方法
//@amqpURI, amqp的地址
//@exchange, exchange的名称
//@queue, queue的名称
//@body, 主体内容
func publish(amqpURI string, exchange string, queue string, body string) {
//建立连接
log.Printf(\"dialing %q\", amqpURI)
connection, err := amqp.Dial(amqpURI)
failOnError(err, \"Failed to connect to RabbitMQ\")
defer connection.Close()
//创建一个Channel
log.Printf(\"got Connection, getting Channel\")
channel, err := connection.Channel()
failOnError(err, \"Failed to open a channel\")
defer channel.Close()
log.Printf(\"got queue, declaring %q\", queue)
//创建一个queue
q, err := channel.QueueDeclare(
queueName, // name
false, // durable
false, // delete when unused
false, // exclusive
false, // no-wait
nil, // arguments
)
failOnError(err, \"Failed to declare a queue\")
log.Printf(\"declared queue, publishing %dB body (%q)\", len(body), body)
// Producer只能发送到exchange,它是不能直接发送到queue的
// 现在我们使用默认的exchange(名字是空字符)这个默认的exchange允许我们发送给指定的queue
// routing_key就是指定的queue名字
err = channel.Publish(
exchange, // exchange
q.Name, // routing key
false, // mandatory
false, // immediate
amqp.Publishing{
Headers: amqp.Table{},
ContentType: \"text/plain\",
ContentEncoding: \"\",
Body: []byte(body),
})
failOnError(err, \"Failed to publish a message\")
}
![图片[2]-docker快速安装rabbitmq的方法步骤_docker-安全小天地](https://img.godyu.com/2023/12/20231226170843185.png?imageView2/0/format/webp/q/75)
五、拥有消息确认的代码
#producer
package main
import (
\"fmt\"
\"github.com/streadway/amqp\"
\"log\"
\"os\"
\"strings\"
)
const (
//AMQP URI
uri = \"amqp://guest:guest@10.0.0.11:5672/\"
//Durable AMQP exchange name
exchangeName = \"\"
//Durable AMQP queue name
queueName = \"test-queues-acknowledgments\"
)
//如果存在错误,则输出
func failOnError(err error, msg string) {
if err != nil {
log.Fatalf(\"%s: %s\", msg, err)
panic(fmt.Sprintf(\"%s: %s\", msg, err))
}
}
func main() {
bodyMsg := bodyFrom(os.Args)
//调用发布消息函数
publish(uri, exchangeName, queueName, bodyMsg)
log.Printf(\"published %dB OK\", len(bodyMsg))
}
func bodyFrom(args []string) string {
var s string
if (len(args) < 2) || os.Args[1] == \"\" {
s = \"hello angel\"
} else {
s = strings.Join(args[1:], \" \")
}
return s
}
//发布者的方法
//@amqpURI, amqp的地址
//@exchange, exchange的名称
//@queue, queue的名称
//@body, 主体内容
func publish(amqpURI string, exchange string, queue string, body string) {
//建立连接
log.Printf(\"dialing %q\", amqpURI)
connection, err := amqp.Dial(amqpURI)
failOnError(err, \"Failed to connect to RabbitMQ\")
defer connection.Close()
//创建一个Channel
log.Printf(\"got Connection, getting Channel\")
channel, err := connection.Channel()
failOnError(err, \"Failed to open a channel\")
defer channel.Close()
log.Printf(\"got queue, declaring %q\", queue)
//创建一个queue
q, err := channel.QueueDeclare(
queueName, // name
false, // durable
false, // delete when unused
false, // exclusive
false, // no-wait
nil, // arguments
)
failOnError(err, \"Failed to declare a queue\")
log.Printf(\"declared queue, publishing %dB body (%q)\", len(body), body)
// Producer只能发送到exchange,它是不能直接发送到queue的。
// 现在我们使用默认的exchange(名字是空字符)。这个默认的exchange允许我们发送给指定的queue。
// routing_key就是指定的queue名字。
err = channel.Publish(
exchange, // exchange
q.Name, // routing key
false, // mandatory
false, // immediate
amqp.Publishing{
Headers: amqp.Table{},
ContentType: \"text/plain\",
ContentEncoding: \"\",
Body: []byte(body),
})
failOnError(err, \"Failed to publish a message\")
}
到此这篇关于docker快速安装rabbitmq的方法步骤的文章就介绍到这了,更多相关docker安装rabbitmq内容请搜索安全小天地以前的文章或继续浏览下面的相关文章希望大家以后多多支持安全小天地!
THE END











暂无评论内容