Docker快速安装与配置RabbitMQ教程
100 浏览量
更新于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 上传
2023-10-13 上传
2023-08-12 上传
2023-04-04 上传
2023-07-27 上传
2023-07-27 上传
2024-07-05 上传
weixin_38602098
- 粉丝: 3
- 资源: 963
最新资源
- IEEE 14总线系统Simulink模型开发指南与案例研究
- STLinkV2.J16.S4固件更新与应用指南
- Java并发处理的实用示例分析
- Linux下简化部署与日志查看的Shell脚本工具
- Maven增量编译技术详解及应用示例
- MyEclipse 2021.5.24a最新版本发布
- Indore探索前端代码库使用指南与开发环境搭建
- 电子技术基础数字部分PPT课件第六版康华光
- MySQL 8.0.25版本可视化安装包详细介绍
- 易语言实现主流搜索引擎快速集成
- 使用asyncio-sse包装器实现服务器事件推送简易指南
- Java高级开发工程师面试要点总结
- R语言项目ClearningData-Proj1的数据处理
- VFP成本费用计算系统源码及论文全面解析
- Qt5与C++打造书籍管理系统教程
- React 应用入门:开发、测试及生产部署教程