rabbitMQ安装与简单demo

[复制链接]
发表于 2026-10-4 15:21:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

RabbitMQ 在消息中间件场景里最常见的问题是装不上、起不来、连不上。本文记录一次完整的本地部署过程,包括 Homebrew 安装、网络导致的依赖包拉取失败处理、management 插件启用、端口监听确认,以及一个最小的 Go 语言生产者与消费者示例。

安装 RabbitMQ

macOS 下用 Homebrew 直接安装:

brew install rabbitmq

依赖包拉取失败的排查

安装过程中某些依赖(例如 libpng)会从 GitHub Pages 域拉取资源,网络不通时会直接中断。可以提前把该域名解析到可用的 IP 上,写进 /etc/hosts:

185.199.108.133 raw.githubusercontent.com

保存后重新安装即可继续。这类问题在国内网络环境里非常普遍,遇到卡在某个源码包下载时,第一反应就是检查相关域名是否可达,而不是反复重装。

启动与 management 插件

安装完成后启用管理插件,这样可以用浏览器打开控制台:

rabbitmq-plugins enable rabbitmq_management

默认账号口令为 guest/guest,仅本地回环地址可访问,生产环境请通过配置文件修改账号与权限。

确认端口监听

RabbitMQ 默认用 5672 作为 AMQP 端口,management 插件额外占用 15672。用 lsof 确认:

lsof -i:5672

能看到监听进程说明服务已就绪,AMQP 客户端可以连接。

Go 客户端连接参数

Go 语言使用 amqp 库时,连接串格式如下:

MQURL="amqp://guest:guest@localhost:5672"

生产者示例

conn, err := amqp.Dial(MQURL)
if err != nil {
    panic(err)
}
defer conn.Close()

ch, err := conn.Channel()
if err != nil {
    panic(err)
}
defer ch.Close()

q, err := ch.QueueDeclare("hello", false, false, false, false, nil)
if err != nil {
    panic(err)
}

err = ch.Publish("", q.Name, false, false, amqp.Publishing{
    ContentType: "text/plain",
    Body:        []byte("hello rabbitmq"),
})
if err != nil {
    panic(err)
}

消费者示例

conn, err := amqp.Dial(MQURL)
if err != nil {
    panic(err)
}
defer conn.Close()

ch, err := conn.Channel()
if err != nil {
    panic(err)
}
defer ch.Close()

q, err := ch.QueueDeclare("hello", false, false, false, false, nil)
if err != nil {
    panic(err)
}

msgs, err := ch.Consume(q.Name, "", true, false, false, false, nil)
if err != nil {
    panic(err)
}

for msg := range msgs {
    fmt.Println("received:", string(msg.Body))
}

两段代码共用同一个队列名 hello,先跑消费者再跑生产者即可看到消息被投递。排查阶段建议顺手在 management 控制台看一眼队列深度,能快速判断是网卡住还是消费端没起来。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表