Docker快速安装与配置RabbitMQ教程
63 浏览量
更新于2024-08-29
收藏 101KB PDF 举报
本文将介绍如何使用Docker快速安装并配置RabbitMQ,包括获取镜像、运行容器、访问Web管理界面以及一个简单的Golang生产者案例。
在Docker中安装RabbitMQ主要分为以下几个步骤:
一、获取RabbitMQ镜像
RabbitMQ是一款流行的消息中间件,用于实现应用程序之间的异步通信。为了在Docker中运行RabbitMQ,首先需要从Docker Hub拉取镜像。以下命令将获取包含Web管理界面的RabbitMQ特定版本(如3.8或更高版本):
```sh
docker pull rabbitmq:management
```
二、运行RabbitMQ容器
运行RabbitMQ镜像有两种方式:
1. 使用默认用户和密码:
```sh
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management
```
这个命令将启动一个后台(-d)运行的RabbitMQ容器,名为"my-rabbit",并映射端口15672(Web管理界面)和5672(RabbitMQ服务端口)。默认的用户名和密码都是"guest"。
2. 设置自定义用户和密码:
```sh
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
```
这里通过环境变量`RABBITMQ_DEFAULT_USER`和`RABBITMQ_DEFAULT_PASS`设置了自定义的用户名和密码。
三、访问Web管理界面
完成容器启动后,可以通过浏览器访问`http://localhost:15672/`来查看和管理RabbitMQ实例。默认情况下,使用之前设置的用户凭证登录。
四、Golang连接和使用RabbitMQ
以下是一个简单的Golang示例,展示了如何作为生产者向RabbitMQ发送消息:
```go
package main
import (
"fmt"
"log"
"github.com/streadway/amqp"
)
const (
AMQP_URI = "amqp://guest:guest@10.0.0.11:5672/" // 请替换为主机IP
EXCHANGE_NAME = ""
QUEUE_NAME = "test-queues"
BODY_MSG = "helloangel"
)
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(AMQP_URI, EXCHANGE_NAME, QUEUE_NAME, BODY_MSG)
log.Printf("Published %dB OK", len(BODY_MSG))
}
func publish(amqpURI, exchange, queue, body string) {
conn, err := amqp.Dial(amqpURI)
failOnError(err, "Failed to connect to RabbitMQ")
defer conn.Close()
ch, err := conn.Channel()
failOnError(err, "Failed to open a channel")
err = ch.ExchangeDeclare(
exchange, // exchange
"direct", // type
true, // durable
false, // auto-deleted
false, // internal
false, // nowait
nil, // arguments
)
failOnError(err, "Failed to declare an exchange")
q, err := ch.QueueDeclare(
queue, // name
false, // durable
false, // delete when usused
false, // exclusive
false, // no-wait
nil, // arguments
)
failOnError(err, "Failed to declare a queue")
bodyBytes := []byte(body)
err = ch.Publish(
exchange, // exchange
q.Name, // routing key
false, // mandatory
false, // immediate
amqp.Publishing{
Headers: nil,
ContentType: "text/plain",
ContentEncoding: "",
Body: bodyBytes,
DeliveryMode: amqp.Persistent,
Priority: 0,
// a non-zero timestamp enables time-to-live
Timestamp: time.Now(),
Expiration: "",
MessageId: "",
Type: "",
ReplyTo: "",
CorrelationId: "",
AppId: "",
})
failOnError(err, "Failed to publish a message")
log.Printf("Sent %dB", len(bodyBytes))
}
```
这段代码演示了如何创建一个连接到RabbitMQ的Golang应用,并发送一条消息到名为"test-queues"的队列。请确保将`AMQP_URI`中的IP地址替换为你实际的RabbitMQ服务器地址。
通过这些步骤,你已经成功地在Docker中部署了RabbitMQ,并了解了如何使用Golang与之交互。这只是一个基础的示例,实际应用中可能需要处理更复杂的路由、交换机类型、消费者逻辑等。
2021-07-06 上传
2024-07-05 上传
2023-04-04 上传
2023-10-13 上传
2024-06-20 上传
2023-08-12 上传
2023-07-27 上传
weixin_38602098
- 粉丝: 3
- 资源: 963
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程