消息队列--RabbitMQ简单使用
安装使用
- 地址: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简单使用相关推荐
- 消息队列RabbitMQ的使用
最近在学习spring cloud微服务,当学习到spring cloud bus的时候,涉及到了消息队列,需要学习RabbitMQ. 一.消息队列 1.1介绍消息队列 消息队列,即MQ,Messag ...
- 消息队列RabbitMQ入门与PHP实战
消息队列介绍以及消息队列应用场景 RabbitMQ 说明 MQ(Message Queue) 即消息队列,是应用间的通信方式,消息发送后可立即返回,由消息系统来确保消息的可靠传递."消息队列 ...
- 谷粒商城12——购物车模块、消息队列RabbitMQ
文章目录 十.购物车模块 1.需求分析 2.封装vo 3.添加商品 4.查询购物车 5.选中商品 6.在购物车修改商品数量 7.在购物车删除商品 十一.消息队列RabbitMQ 1.场景分析 2.概述 ...
- 初识消息队列/RabbitMQ详解
欢迎大家阅读<朝夕Net社区技术专刊> 我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为忠实读者,文末福利不要错过哦! 今天来给大家分享 ...
- 快速掌握消息队列RabbitMQ
※快速掌握消息队列RabbitMQ 一.RabbitMQ概述 (一)什么是消息队列MQ 消息队列(Message Queue),后文称MQ,是一种 跨进程的通信机制,用于上下游传递消息. MQ作为消息 ...
- RabbitMQ总结(一)--消息队列RabbitMQ应答模式(自动、手动)
原文链接 消息队列RabbitMQ应答模式(自动.手动) 为了确保消息不会丢失,RabbitMQ支持消息应答.消费者发送一个消息应答,告诉RabbitMQ这个消息已经接收并且处理完毕了.RabbitM ...
- 消息队列RabbitMQ之初学者
文章目录 消息队列 什么是消息队列 生产者和消费者 AMQP和JMS AMQP和JMS的区别 常见的MQ产品 RabbitMQ Erlang语言 RabbitMQ下载 什么是消息队列RabbitMQ? ...
- SpringCloud源码探析(六)-消息队列RabbitMQ
1.概述 RabbitMQ是一个开源的消息代理和队列服务器,它是基于Erlang语言开发,并且是基于AMQP协议的.由于Erlang语言最初使用与交换机领域架构,因此使得RabbitMQ在Broker ...
- 消息队列 RabbitMQ
前言 市面上的消息队列产品有很多,比如老牌的 ActiveMQ.RabbitMQ ,目前我看最火的 Kafka ,还有 ZeroMQ ,阿里巴巴捐赠给 Apache 的 RocketMQ ,连 red ...
最新文章
- Leetcode 532.数组中的K-diff数对
- oracle将查询结果声明为伪表,Oracle查询操作(增删改查,伪表,高级查询)实例讲解...
- [No0000D0] 让你效率“猛增十倍”,沉浸工作法到底是什么?
- Node.js+Express+MongoDB 实现学生增删改查
- NYOJ 451(组合数+全错位)
- python复数的实部和虚部都是整数嘛_Python学习笔记:从入门到放弃(2)基本语法...
- ThinkPHP6项目基操(10.不可预知的內部异常处理)
- windows环境下32位汇编语言程序设计 90盘_程序设计作业题汇总
- 2019.4.26今日任务
- python打包程序出错_pyinstaller 打包exe,出错,换了个简单的.py文件也不行
- 【报告分享】数据大治理-毕马威阿里研究院.pdf(附下载链接)
- MSSql使用SQL语句快速查看表对的就说明,及表字段描述及字段类型
- [置顶] Jquery学习总结(二) jquery选择器详解
- 接口测试用例设计及模板
- URAL 2037 Richness of binary words
- 通过TXT文件批量制作ITF-14条码
- win10计算机图标怎么放桌面壁纸,win10系统桌面图标显示和背景修改的具体方法...
- sublime linux中文版,sublime text 3中文免费版
- sin函数对照表_三角函数数值对照表.pdf
- 公司邮箱注册申请流程,好用的邮箱功能开启高效办公
热门文章
- centos yum mysql_CentOS 7 yum安装配置MySQL5.7教程
- 数据中心夏季如何防雷
- 成功解决ModuleNotFoundError: No module named 'torch.utils.tensorboard'
- 成功解决gensim\utils.py:1209: UserWarning: detected Windows; aliasing chunkize to chunkize_serial warn
- Keras之DNN:基于Keras(sigmoid+linear+mse+predict)利用DNN实现回归预测——DIY多分类数据集预测新数据点
- Algorithm之RS:RS常用的一些库
- 模型算法-支持向量机SVM
- Springboot .properties或.yml配置文件读取pom.xml文件值
- Python_Tips[1] - 利用 Python 的字典实现 Switch 功能
- ubuntu系统安装的MySql数据库,远程不能访问的几种可能问题