安装使用

  • 地址:http://www.rabbitmq.com/
  • 需要根据不同的版本选择不同的erlang

安装erlang

安装RabbitMQ首先需要安装erlang环境,根据GitHub上erlang中README配置yum源

将上面的内容写入红线标注的文件中保存退出,然后安装erlang

yum update -y
yum install -y erlang-23.3.4

安装RabbitMQ

下载完成RabbitMQ的安装包后执行下面的命令安装

yum install rabbitmq-server-3.8.19-1.el7.noarch.rpm

安装完成后可以看到有6个相关的可执行程序

其中核心是rabbitmq-server

RabbitMQ的使用

启动

rabbitmq-server start & # 后台启动

启动RabbitMQ图形化管理界面

RabbitMQ的图形化管理界面模式是没有打开的,需要我们手动去打开,rabbitmq-plugins就是管理各种插件的工具

rabbitmq-plugins list # 查看所有插件
rabbitmq-plugins enable rabbitmq_management # 打开图形化界面
rabbitmq-plugins disable rabbitmq_management # 关闭图形化界面

访问图形化管理界面

打开图形化管理界面插件后就可以通过本机浏览器访问RabbitMQ了:http://127.0.0.1:15672/ 用户名和密码都是guest

如果要在其他机器上访问该界面则需要配置用户名和密码,权限等

rabbitmqctl add_user Guest Guest # 添加用户
rabbitmqctl set_user_tags Guest administrator # 赋予该用户管理员角色
rabbitmqctl set_permissions -p / Guest ".*" ".*" ".*" # 给该用户赋予权限

这样就可以在其他机器上访问RabbitMQ的管理界面了

下面通过Go语言实现一个简单的消息队列的应用

consumer.go

package mainimport ("fmt""github.com/streadway/amqp"
)//消费者func main() {//1.建立连接connection, err := amqp.Dial("amqp://Guest:Guest@192.168.27.139:5672")if err != nil {panic(err)}defer connection.Close()//2.设置通道ch, err := connection.Channel()if err != nil {panic(err)}//3.定义exchange//err = ch.ExchangeDeclare("exchange-name", "direct", false, false, false, false, nil)err = ch.ExchangeDeclare("exchange-name-topic", "topic", false, false, false, false, nil)if err != nil {panic(err)}//4.定义队列 queuequeue, err := ch.QueueDeclare("", false, false,false,false, nil)if err != nil {panic(err)}//5.绑定 bind//err = ch.QueueBind(queue.Name, "direct_key", "exchange-name", false, nil)//topic 模糊匹配err = ch.QueueBind(queue.Name, "topic.#", "exchange-name-topic", false, nil)if err != nil {panic(err)}//6.接收消息consume_msg, err := ch.Consume(queue.Name, "", false, false, false, false, nil)if err != nil {panic(err)}//7.打印消息//msg := <-consume_msg//fmt.Printf("received msg: %s\n", msg.Body)for msg := range consume_msg {fmt.Printf("received msg: %s\n", msg.Body)}
}

producer.go

package mainimport "github.com/streadway/amqp"//生产者func main() {//1.建立连接connection, err := amqp.Dial("amqp://Guest:Guest@192.168.27.139:5672")if err != nil {panic(err)}defer connection.Close()//2.设置通道ch, err := connection.Channel()if err != nil {panic(err)}//3.定义exchange//err = ch.ExchangeDeclare("exchange-name", "direct", false, false, false, false, nil)err = ch.ExchangeDeclare("exchange-name-topic", "topic", false, false, false, false, nil)if err != nil {panic(err)}//4.定义队列 queue//queue, err := ch.QueueDeclare("", false, false,false,false, nil)//if err != nil {// panic(err)//}//5.绑定 bind//6.定义发布的消息//msg := "hello"//7.发布消息//err = ch.Publish("exchange-name", "direct_key", false, false, amqp.Publishing{Body: []byte(msg)})err = ch.Publish("exchange-name-topic", "topic.first", false, false, amqp.Publishing{Body: []byte("topic1")})err = ch.Publish("exchange-name-topic", "TOPIC.eg", false, false, amqp.Publishing{Body: []byte("topic-eg")})err = ch.Publish("exchange-name-topic", "topic.last", false, false, amqp.Publishing{Body: []byte("topic2")})if err != nil {panic(err)}
}

消息队列--RabbitMQ简单使用相关推荐

  1. 消息队列RabbitMQ的使用

    最近在学习spring cloud微服务,当学习到spring cloud bus的时候,涉及到了消息队列,需要学习RabbitMQ. 一.消息队列 1.1介绍消息队列 消息队列,即MQ,Messag ...

  2. 消息队列RabbitMQ入门与PHP实战

    消息队列介绍以及消息队列应用场景 RabbitMQ 说明 MQ(Message Queue) 即消息队列,是应用间的通信方式,消息发送后可立即返回,由消息系统来确保消息的可靠传递."消息队列 ...

  3. 谷粒商城12——购物车模块、消息队列RabbitMQ

    文章目录 十.购物车模块 1.需求分析 2.封装vo 3.添加商品 4.查询购物车 5.选中商品 6.在购物车修改商品数量 7.在购物车删除商品 十一.消息队列RabbitMQ 1.场景分析 2.概述 ...

  4. 初识消息队列/RabbitMQ详解

    欢迎大家阅读<朝夕Net社区技术专刊> 我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为忠实读者,文末福利不要错过哦! 今天来给大家分享 ...

  5. 快速掌握消息队列RabbitMQ

    ※快速掌握消息队列RabbitMQ 一.RabbitMQ概述 (一)什么是消息队列MQ 消息队列(Message Queue),后文称MQ,是一种 跨进程的通信机制,用于上下游传递消息. MQ作为消息 ...

  6. RabbitMQ总结(一)--消息队列RabbitMQ应答模式(自动、手动)

    原文链接 消息队列RabbitMQ应答模式(自动.手动) 为了确保消息不会丢失,RabbitMQ支持消息应答.消费者发送一个消息应答,告诉RabbitMQ这个消息已经接收并且处理完毕了.RabbitM ...

  7. 消息队列RabbitMQ之初学者

    文章目录 消息队列 什么是消息队列 生产者和消费者 AMQP和JMS AMQP和JMS的区别 常见的MQ产品 RabbitMQ Erlang语言 RabbitMQ下载 什么是消息队列RabbitMQ? ...

  8. SpringCloud源码探析(六)-消息队列RabbitMQ

    1.概述 RabbitMQ是一个开源的消息代理和队列服务器,它是基于Erlang语言开发,并且是基于AMQP协议的.由于Erlang语言最初使用与交换机领域架构,因此使得RabbitMQ在Broker ...

  9. 消息队列 RabbitMQ

    前言 市面上的消息队列产品有很多,比如老牌的 ActiveMQ.RabbitMQ ,目前我看最火的 Kafka ,还有 ZeroMQ ,阿里巴巴捐赠给 Apache 的 RocketMQ ,连 red ...

最新文章

  1. Leetcode 532.数组中的K-diff数对
  2. oracle将查询结果声明为伪表,Oracle查询操作(增删改查,伪表,高级查询)实例讲解...
  3. [No0000D0] 让你效率“猛增十倍”,沉浸工作法到底是什么?
  4. Node.js+Express+MongoDB 实现学生增删改查
  5. NYOJ 451(组合数+全错位)
  6. python复数的实部和虚部都是整数嘛_Python学习笔记:从入门到放弃(2)基本语法...
  7. ThinkPHP6项目基操(10.不可预知的內部异常处理)
  8. windows环境下32位汇编语言程序设计 90盘_程序设计作业题汇总
  9. 2019.4.26今日任务
  10. python打包程序出错_pyinstaller 打包exe,出错,换了个简单的.py文件也不行
  11. 【报告分享】数据大治理-毕马威阿里研究院.pdf(附下载链接)
  12. MSSql使用SQL语句快速查看表对的就说明,及表字段描述及字段类型
  13. [置顶] Jquery学习总结(二) jquery选择器详解
  14. 接口测试用例设计及模板
  15. URAL 2037 Richness of binary words
  16. 通过TXT文件批量制作ITF-14条码
  17. win10计算机图标怎么放桌面壁纸,win10系统桌面图标显示和背景修改的具体方法...
  18. sublime linux中文版,sublime text 3中文免费版
  19. sin函数对照表_三角函数数值对照表.pdf
  20. 公司邮箱注册申请流程,好用的邮箱功能开启高效办公

热门文章

  1. centos yum mysql_CentOS 7 yum安装配置MySQL5.7教程
  2. 数据中心夏季如何防雷
  3. 成功解决ModuleNotFoundError: No module named 'torch.utils.tensorboard'
  4. 成功解决gensim\utils.py:1209: UserWarning: detected Windows; aliasing chunkize to chunkize_serial warn
  5. Keras之DNN:基于Keras(sigmoid+linear+mse+predict)利用DNN实现回归预测——DIY多分类数据集预测新数据点
  6. Algorithm之RS:RS常用的一些库
  7. 模型算法-支持向量机SVM
  8. Springboot .properties或.yml配置文件读取pom.xml文件值
  9. Python_Tips[1] - 利用 Python 的字典实现 Switch 功能
  10. ubuntu系统安装的MySql数据库,远程不能访问的几种可能问题