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的使用相关推荐

  1. 《三》kubectl命令行管理工具、YAML配置详解

    kubectl命令行管理工具 kubectl自动补全功能设置 执行: 1.yum install -y bash-completion 2.source <(kubectl completion ...

  2. 曙光服务器bios开启虚拟化支持,中科曙光虚拟化培训教程汇总:3.1 使用针对ESXi的常见LSI 命令行管理工具 v1.0.pdf...

    使用针对ESXi的常见LSI命令行管理 工具 v1.0 版本 发布日期 修改人 修改原因 1.0 2017.04.11 梁旭 首次发布 1 目录 一.vib 工具包安装 3 1.安装针对LSI 220 ...

  3. RVM命令行管理工具安装

    什么是RVM? 首先,rvm是一个命令行工具,可以提供一个便携的多版本的Ruby环境的管理和切换. RVM的安装 步骤1: curl -SSL https://rvm.io/mpapis.asc | ...

  4. SQL Server 命令行管理工具:SqlLocalDB.exe

    SqlLocalDB.exe 是一个简单的工具,它使用户能够从命令行轻松管理 LocalDB 实例. 它作为 LocalDB 实例 API 的简单包装实现. 与在很多类似的 SQL Server 工具 ...

  5. kubectl命令行管理工具

    kubectl 就是 kube-apiserver 的客户端程序,是通过连接 master 节点的 apiserver 上实现各种 k8s 相关对象资源的增删改查 k8s 可管理对象资源: 资源分类 ...

  6. virsh命令行管理工具

    KVM虚拟机管理工具 virsh virsh是使用 libvirt management API 构建的管理工具,是kvm虚拟机常用的管理工具 virsh 含义是 virtualization she ...

  7. ASM管理命令行三工具:KFOD、KFED和AMDU

    ASM管理命令行三工具:KFOD.KFED和AMDU ASM(Automatic Storage Management)是Oracle目前主推的软集群存储策略.一般而言,管理ASM的工具包括使用sql ...

  8. Vue入门教程:node安装vue命令行工具及启动项目

    安装淘宝npm镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org 全局安装vue命令行工具 cnpm install - ...

  9. Linux拜拜!微软给WSL加入GPU支持,Windows终于迎来命令行包管理工具

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 白交 发自 凹非寺  量子位 报道 | 公众号 QbitAI 看完昨晚微软Build大 ...

最新文章

  1. CodeIgniter源码分析(一) 目录结构
  2. 数据采集录入填报时如何只更新当前修改行
  3. php post nginx 400,Nginx静态文件响应POST请求 提示405错误的解决方法
  4. 程序员养生(01) -- 心态
  5. c++ 函数模板_C++函数模板(泛型编程)
  6. MiniProfiler工具介绍
  7. python 参数一样结果不一样_使用不同的参数多次调用同一个函数python
  8. Modown v4.11+Erphpdown10.01资源付费下载插件
  9. 堆排序算法(图解详细流程)
  10. 华为手机热点无法连接_华为手机热点连不上
  11. 平面设计基本艺术表现形式有哪些
  12. 左拥快手右抱抖音,丁磊直播究竟图什么?
  13. Android studio @Author的使用以及TAG的自动生成
  14. sx1278组网-子设备
  15. 网易面试一面【游戏测试工程师】
  16. 用python做归结演绎推理_Python中惯用的一些操作总结(未完待续)
  17. 保险产品即Token,众安科技的新区块链项目背后有何门道?
  18. css零到一基础教程006:CSS 颜色
  19. Struts2框架漏洞总结与复现(上) 含Struts2检测工具
  20. 页面调用Adobe Reader自带的控件实现pdf打印

热门文章

  1. 送5本刚刚出版的《大数据时代生存法则》
  2. ORACLE经验汇总
  3. 技术宅记录下看过的番
  4. 有哪些道理是你毕业多年后才明白的?
  5. 6 如何保障项目按期完工? 人人都是项目经理系列(第6/13篇)
  6. 京东某被裁员工:虽然公司裁掉了我,但我不能裁掉我的未来!
  7. Swift之网络编程-网络监测
  8. python跨表处理数据_python 利用panda 实现列联表(交叉表)
  9. 3月刊特别策划:移动应用排名与开发者的机会
  10. iPad如何越狱?4.2.1完美越狱教程 二 (cydia 安装)