博客
关于我
go使用rabbitmq 实践
阅读量:732 次
发布时间:2019-03-21

本文共 3318 字,大约阅读时间需要 11 分钟。

使用 Docker Compose 安装 RabbitMQ

通过 Docker Compose 模拟 RabbitMQ 服务部署

在开始之前,请首先确保你已经安装了 Docker 和 Docker Compose。如果尚未安装,可以通过以下命令安装:

curl -L "https://github.com/docker/compose/releases/download/v3.82.2/docker-compose-$(uname -m)-binary-AMD64" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose

接下来,我们将按照以下步骤设置 RabbitMQ 服务。

部署 RabbitMQ

  • 打开文本编辑器,如 Vim。
  • vim docker-compose.yml
    1. 添加以下内容到 docker-compose.yml 文件中:
    2. version: '3'services:  rabbitmq:    image: rabbitmq:management    container_name: rabbitmq    restart: always    hostname: myRabbitmq    ports:      - ${MANAGEMENT_PORT}:15672      - ${RABBITMQ_PORT}:5672    volumes:      - ${RABBITMQ_DATA_FILE}:/var/lib/rabbitmq    environment:      - RABBITMQ_DEFAULT_USER=${RABBITMQ_DEFAULT_USER}      - RABBITMQ_DEFAULT_PASS=${RABBITMQ_DEFAULT_PASS}
      1. 创建一个新的 .env 文件,指定必要的环境变量:
      2. vim .env

        文件内容如下:

        RABBITMQ_PORT=5672MANAGEMENT_PORT=15672RABBITMQ_DATA_FILE=./dataRABBITMQ_DEFAULT_USER=rootRABBITMQ_DEFAULT_PASS=root
        1. 在终端运行以下命令启动服务:
        2. docker-compose up -d

          服务将自动启动,并在后台运行。你可以查看运行状态:

          docker-compose logs -f

          存储和访问配置

          注意到我们将 RabbitMQ 的数据存储在了 ./data 目录,这样在容器下一次启动时,数据不会丢失。你可以访问 RabbitMQ 管理界面:

          地址:http://localhost:15672

          用户名和密码默认为 rootroot,结合环境变量文件设置的值。

          注意:我们建议在生产环境中将用户名和密码更改为安全的值。


          创建 Go 项目

          本节将指导你创建一个简单的 Go 消息队列应用,用于与 RabbitMQ 通话。

          工作目录结构

          创建一个新的工作目录,按照以下结构组织项目:

          project/├── send.go       # 忠诚发送消息├── receive.go    # 接收消息└── main.go       # 主函数入口

          安装依赖

          首先,安装 RabbitMQ Go 客户库。你可以使用以下命令运行:

          go get github.com/streadway/amqp

          编写代码

          package mainimport (    "fmt"    "github.com/streadway/amqp"    "log")func failOnError(err error, msg string) {    if err != nil {        log.Fatalf("%s: %s", msg, err)    }}// 发送消息func main() {    // 连接 RabbitMQ 服务器    conn, err := amqp.Dial("amqp://test:test@127.0.0.1:5672//test")    failOnError(err, "Failed to connect to RabbitMQ")    defer conn.Close()    // 创建消息通道    ch, err := conn.Channel()    failOnError(err, "Failed to open a channel")    defer ch.Close()    // 声明一个队列    q, err := ch.QueueDeclare("test", false, false, false, false, nil)    failOnError(err, "Failed to declare a queue")    // 发送消息    body := "你好"    err = ch.Publish("", q.Name, false, false, amqp.Publishing{        ContentType: "text/plain",        Body:      []byte(body),    })    failOnError(err, "Failed to publish a message")    fmt.Println("发送消息成功")}
          package mainimport (    "fmt"    "github.com/streadway/amqp"    "log")func failOnError(err error, msg string) {    if err != nil {        log.Fatalf("%s: %s", msg, err)    }}// 接收消息func main() {    // 连接 RabbitMQ 服务器    conn, err := amqp.Dial("amqp://test:test@127.0.0.1:5672//test")    failOnError(err, "Failed to connect to RabbitMQ")    defer conn.Close()    // 创建消息通道    ch, err := conn.Channel()    failOnError(err, "Failed to open a channel")    defer ch.Close()    // 声明一个队列    q, err := ch.QueueDeclare("test", false, false, false, false, nil)    failOnError(err, "Failed to declare a queue")    // 设置消息接收模式    ch.Qos(1, 1, false)    // 开始接收消息    msg, err := ch.Receive()    for {        body, err := msg.Body()        if err != nil {            break        }        fmt.Printf("接收消息:%s\n", string(body))    }    fmt.Printf("接收消息成功\n")}

          编译和运行

          在项目根目录下,编译各个组件。

          go build receive.gogo build send.go

          通过以上步骤,你已经掌握了如何使用 Docker Compose 安装 RabbitMQ,并创建了一个简单的 Go 消息队列应用。接下来可以根据实际需求扩展应用功能,或者添加更多消费者来处理 RabbitMQ 消息。

    转载地址:http://cyugz.baihongyu.com/

    你可能感兴趣的文章
    nacos config
    查看>>
    Nacos 与 Eureka、Zookeeper 和 Consul 等其他注册中心的区别
    查看>>
    Nacos2.X 配置中心源码分析:客户端如何拉取配置、服务端配置发布客户端监听机制
    查看>>
    NacosClient客户端搭建,微服务注册进nacos
    查看>>
    Nacos原理
    查看>>
    Nacos发布0.5.0版本,轻松玩转动态 DNS 服务
    查看>>
    Nacos启动异常
    查看>>
    Nacos和Zookeeper对比
    查看>>
    Nacos在双击startup.cmd启动时提示:Unable to start embedded Tomcat
    查看>>
    Nacos如何实现Raft算法与Raft协议原理详解
    查看>>
    Nacos安装教程(非常详细)从零基础入门到精通,看完这一篇就够了
    查看>>
    Nacos实战攻略:从入门到精通,全面掌握服务治理与配置管理!(下)
    查看>>
    Nacos心跳机制实现快速上下线
    查看>>
    Nacos服务注册与发现demo
    查看>>
    nacos服务注册流程
    查看>>
    nacos本地可以,上服务器报错
    查看>>
    Nacos注册中心有几种调用方式?
    查看>>
    nacos注册失败,Feign调用失败,feign无法注入成我们的bean对象
    查看>>
    nacos源码 nacos注册中心1.4.x 源码 nacos源码如何下载 nacos 客户端源码下载地址 nacos discovery下载地址(一)
    查看>>
    Nacos简介、下载与配置持久化到Mysql
    查看>>