rabbitmq的安装与命令行管理工具rabbitmqadmin的使用
rabbitmq的安装与命令行管理工具rabbitmqadmin的使用
- 1.rabbitmq的安装
- 1 RabbiMQ简介
- 2 RabbiMQ模式
- 2.1 单一模式
- 2.2 普通模式
- 2.3 镜像模式
- 3 RabbitMQ版本
- 3.1 ErLang版本
- 3.2 RabbitMQ版本
- 4.安装步骤
- 4.1ErLang安装
- 4.2RabbitMQ安装
- 4.2.1 安装RabbitMQ
- 4.2.2 socat安装
- 4.2.3 配置hosts文件
- 4.2.4 .erlang.cookie
- 4.2.5 添加管理服务,启动rabbitmq服务
- 4.2.6 将rabbitmq2、rabbitmq3作为内存节点加入rabbitmq1节点集群中
- 4.2.7 查看集群状态
- 4.2.8 新增用户
- 4.2.9 admin用户授权
- 4.2.10 创建RabbitMQ策略(创建镜像模式)
- 4.2.11 创建队列
- 5常用命令
- 5.1修改账号密码
- 5.2同步镜像
- 5.3修改节点类型
- 5.4设置开机自启动
- 2.命令行管理工具rabbitmqadmin的安装使用
- 1 服务器安装 rabbitmqadmin
- 1.1 下载
- 1.2 权限
- 1.3 修改环境变量
- 2 rabbitmqadmin命令的使用
- 2.1 创建exchange(topic类型为例)
- 2.2 创建queue
- 2.3 创建binding
- 注意:source对应创建的exchange, destination对应创建的queue
- 2.4 发送消息
- 注意:routing_key对应创建binding时的routing_key,#是通配符,my.# 表示
- 2.5 查看队列里的消息
- 2.6 删除队列
- rabbitmq不仅能用程序发送消息,也能用rabbitmqadmin以命令行的方式发送消息。
1.rabbitmq的安装
1 RabbiMQ简介
RabbiMQ是用Erang开发的,集群非常方便,因为Erlang天生就是一门分布式语言,但其本身并不支持负载均衡。
2 RabbiMQ模式
2.1 单一模式
2.2 普通模式
默认的集群模式。
对于普通模式,集群中各节点有相同的队列结构,但消息只会存在于集群中的一个节点。对于消费者来说,若消息进入A节点的Queue中,当从B节点拉取时,RabbitMQ会将消息从A中取出,并经过B发送给消费者。
应用场景:该模式各适合于消息无需持久化的场合,如日志队列。当队列非持久化,且创建该队列的节点宕机,客户端才可以重连集群其他节点,并重新创建队列。若为持久化,只能等故障节点恢复。
2.3 镜像模式
要实现镜像模式,需要先搭建一个普通集群模式,在这个模式的基础上再配置镜像模式以实现高可用。
与普通模式不同之处是消息实体会主动在镜像节点间同步,而不是在取数据时临时拉取,高可用;该模式下,mirror queue有一套选举算法,即1个master、n个slaver,生产者、消费者的请求都会转至master。
应用场景:可靠性要求较高场合,如下单、库存队列。
缺点:若镜像队列过多,且消息体量大,集群内部网络带宽将会被此种同步通讯所消耗。
3 RabbitMQ版本
RabbitMQ通过ErLang(air-lang)开发,故需先安装ErLang。
3.1 ErLang版本
版本:21.2
下载链接:https://packagecloud.io/rabbitmq/erlang/packages/el/6/erlang-21.2.2-1.el6.x86_64.rpm/download.rpm
3.2 RabbitMQ版本
版本:3.7.10
下载链接:https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.10/rabbitmq-server-3.7.10-1.el7.noarch.rpm
4.安装步骤
4.1ErLang安装
在/usr/local目录下创建文件加erlang,把下载好的erlang安装包上传到erlang文件夹下。
使用命令安装erlang:rpm –ivh erlang-21.2.2-1.el6.x86_64.rpm
4.2RabbitMQ安装
4.2.1 安装RabbitMQ
在/usr/local目录下创建文件加rabbitmq,把下载好的RabbitMQ安装包上传到rabbitmq文件夹下。
使用命令安装RabbitMQ:rpm –ivh rabbitmq-server-3.7.10-1.el7.noarch.rpm
此时如果报错,如图
4.2.2 socat安装
提示socat被rabbitmq-server依赖,故需要先安装socat
socat下载链接:https://centos.pkgs.org/7/repoforge-x86_64/socat-1.7.2.4-1.el7.rf.x86_64.rpm.html
在/usr/local目录下创建文件加socat,把下载好的socat安装包上传到socat文件夹下。
使用命令安装socat:rpm –ivh socat-1.7.2.4-1.el7.rf.x86_64.rpm
此时再使用上述命令安装RabbitMQ。
4.2.3 配置hosts文件
更改三台MQ节点的计算机名分别为rabbitmq1、rabbitmq2和rabbitmq3,然后修改hosts配置文件
命令:vim /etc/hostname
rabbitmq1
命令:vi /etc/hosts
ip1 rabbitmq1
ip2 rabbitmq2
ip3 rabbitmq3
4.2.4 .erlang.cookie
Rabbitmq的集群是依附于erlang的集群来工作的,所以必须先构建起erlang的集群景象。Erlang的集群中各节点是经由过程一个magic cookie来实现的,这个cookie存放在/var/lib/rabbitmq/.erlang.cookie中,文件是400的权限。所以必须保证各节点cookie一致,不然节点之间就无法通信。
命令:cat /var/lib/rabbitmq/.erlang.cookie
我的mygic cookie : EOAPJWYDKHNVFEKOMOHJ
4.2.5 添加管理服务,启动rabbitmq服务
添加管理服务命令:rabbitmq-plugins enable rabbitmq_management
启动命令:rabbitmq-server –detached或service rabbitmq-server start
4.2.6 将rabbitmq2、rabbitmq3作为内存节点加入rabbitmq1节点集群中
rabbitmqctl stop_app //停掉rabbit应用
rabbitmqctl join_cluster rabbit@rabbitmq1 //加入到磁盘节点
rabbitmqctl start_app //启动rabbit应用
4.2.7 查看集群状态
命令:rabbitmqctl cluster_status
4.2.8 新增用户
rabbitmqctl add_user admin admin@123
rabbitmqctl set_user_tags admin administrator
4.2.9 admin用户授权
4.2.10 创建RabbitMQ策略(创建镜像模式)
上面已经完成RabbitMQ默认集群模式,但并不保证队列的高可用性,尽管交换机、绑定这些可以复制到集群里的任何一个节点,但是队列内容不会复制。虽然该模式解决一项目组节点压力,但队列节点宕机直接导致该队列无法应用,只能等待重启,所以要想在队列节点宕机或故障也能正常应用,就要复制队列内容到集群里的每个节点,必须要创建镜像队列。
镜像队列是基于普通的集群模式的,然后再添加一些策略,所以得先配置普通集群,然后才能设置镜像队列,我们就以上面的集群接着做。
4.2.11 创建队列
5常用命令
5.1修改账号密码
rabbitmqctl change_password username Newpassword
5.2同步镜像
rabbitmqctl sync_queue 队列名称
5.3修改节点类型
修改内存节点为磁盘节点
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbitmq1
rabbitmqctl start_app
5.4设置开机自启动
chkconfig rabbitmq-server on
2.命令行管理工具rabbitmqadmin的安装使用
1 服务器安装 rabbitmqadmin
1.1 下载
wget http://localhost:15672/cli/rabbitmqadmin
1.2 权限
chmod +x rabbitmqadmin
1.3 修改环境变量
vim /etc/profile
添加
export PATH=$PATH:/usr/local/
立即生效
source /etc/profile
2 rabbitmqadmin命令的使用
2.1 创建exchange(topic类型为例)
rabbitmqadmin declare exchange name=my.topic type=topic
2.2 创建queue
rabbitmqadmin declare queue name=testhzw durable=true
2.3 创建binding
rabbitmqadmin declare binding source=my.topic destination=testhzw routing_key=my.#
注意:source对应创建的exchange, destination对应创建的queue
2.4 发送消息
rabbitmqadmin publish routing_key=my.message.hello exchange=my.topic payload=“hello”
注意:routing_key对应创建binding时的routing_key,#是通配符,my.# 表示
2.5 查看队列里的消息
rabbitmqadmin get queue=test requeue=true(true表示查看不消费,false查看并消费,队列里就没有这条消息了)
2.6 删除队列
rabbitmqadmin delete queue name=test
rabbitmq不仅能用程序发送消息,也能用rabbitmqadmin以命令行的方式发送消息。
rabbitmq的安装与命令行管理工具rabbitmqadmin的使用相关推荐
- 《三》kubectl命令行管理工具、YAML配置详解
kubectl命令行管理工具 kubectl自动补全功能设置 执行: 1.yum install -y bash-completion 2.source <(kubectl completion ...
- 曙光服务器bios开启虚拟化支持,中科曙光虚拟化培训教程汇总:3.1 使用针对ESXi的常见LSI 命令行管理工具 v1.0.pdf...
使用针对ESXi的常见LSI命令行管理 工具 v1.0 版本 发布日期 修改人 修改原因 1.0 2017.04.11 梁旭 首次发布 1 目录 一.vib 工具包安装 3 1.安装针对LSI 220 ...
- RVM命令行管理工具安装
什么是RVM? 首先,rvm是一个命令行工具,可以提供一个便携的多版本的Ruby环境的管理和切换. RVM的安装 步骤1: curl -SSL https://rvm.io/mpapis.asc | ...
- SQL Server 命令行管理工具:SqlLocalDB.exe
SqlLocalDB.exe 是一个简单的工具,它使用户能够从命令行轻松管理 LocalDB 实例. 它作为 LocalDB 实例 API 的简单包装实现. 与在很多类似的 SQL Server 工具 ...
- kubectl命令行管理工具
kubectl 就是 kube-apiserver 的客户端程序,是通过连接 master 节点的 apiserver 上实现各种 k8s 相关对象资源的增删改查 k8s 可管理对象资源: 资源分类 ...
- virsh命令行管理工具
KVM虚拟机管理工具 virsh virsh是使用 libvirt management API 构建的管理工具,是kvm虚拟机常用的管理工具 virsh 含义是 virtualization she ...
- ASM管理命令行三工具:KFOD、KFED和AMDU
ASM管理命令行三工具:KFOD.KFED和AMDU ASM(Automatic Storage Management)是Oracle目前主推的软集群存储策略.一般而言,管理ASM的工具包括使用sql ...
- Vue入门教程:node安装vue命令行工具及启动项目
安装淘宝npm镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org 全局安装vue命令行工具 cnpm install - ...
- Linux拜拜!微软给WSL加入GPU支持,Windows终于迎来命令行包管理工具
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 白交 发自 凹非寺 量子位 报道 | 公众号 QbitAI 看完昨晚微软Build大 ...
最新文章
- CodeIgniter源码分析(一) 目录结构
- 数据采集录入填报时如何只更新当前修改行
- php post nginx 400,Nginx静态文件响应POST请求 提示405错误的解决方法
- 程序员养生(01) -- 心态
- c++ 函数模板_C++函数模板(泛型编程)
- MiniProfiler工具介绍
- python 参数一样结果不一样_使用不同的参数多次调用同一个函数python
- Modown v4.11+Erphpdown10.01资源付费下载插件
- 堆排序算法(图解详细流程)
- 华为手机热点无法连接_华为手机热点连不上
- 平面设计基本艺术表现形式有哪些
- 左拥快手右抱抖音,丁磊直播究竟图什么?
- Android studio @Author的使用以及TAG的自动生成
- sx1278组网-子设备
- 网易面试一面【游戏测试工程师】
- 用python做归结演绎推理_Python中惯用的一些操作总结(未完待续)
- 保险产品即Token,众安科技的新区块链项目背后有何门道?
- css零到一基础教程006:CSS 颜色
- Struts2框架漏洞总结与复现(上) 含Struts2检测工具
- 页面调用Adobe Reader自带的控件实现pdf打印