中间件RabbitMQ之运维篇
一、RabbtMQ简介
1.1 AMQP
AMQP(高级消息队列协议)是一个异步消息传递所使用的应用层协议规范,作为线路层协议,而不是API (例如JMS),AMQP客户端能够无视消息的来源任意发送和接受信息。AMQP的原始用途只是为金融界提供个可以彼此协作的消息协议,而现在的目标则是为通用消息队列架构提供通用构建工具。因此,面向消息的中间件(MOM) 系统,例如发布/订阅队列,没有作为基本元素实现。反而通过发送简化的AMQ实体,用户被赋予了构建例如这些实体的能力。这些实体也是规范的一部分, 形成了在线路层协议顶端的一个层级: AMQP模型。 这个模型统了消息模式, 诸如之前提到的发布门订阅,队列,事务以及流数据,并且添加了额外的特性,例如更易于扩展,基于内容的路由。
1.2 RabbitMQ的两大核心组件是Exchange和Queue。如图所示:

2. Virtual Host:其实是一个虚拟概念,类似于权限控制组,一个Virtual Host里面可以有若干个Exchange和Queue,但是权限控制的最小粒度是Virtual Host。
3. Exchange:接受生产者发送的消息,并根据Binding规则将消息路由给服务器中的队列。ExchangeType决定了Exchange路由消息的行为,例如,在RabbitMQ中, ExchangeType有direct、Fanout 和Topic三种,不同类型的Exchange路由的行为是不一样的。
5. Message:由Header和Body组成, Header是由生产者添加的各种属性的集合,包括Message是否被持久化、由哪个Message Queue接受、优先级是多少等。而Body是真正需要传输的APP数据。
6.BindingKey:所谓绑定就是将一个特 定的Exchange(routing-key) 和一个特定的Queue(Binding-Key)绑定起来, 绑定关键字成为BindingKey。
1.3 Exchange分类一-广播式交换器类型
1.3.1 Fanout Exchange -广播式路由键。
你只需要简单的将队列绑定到交换机上。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复制的消息。Fanout 交换机转发消息是最快的。

1.3.2 Direct Exchange -直接交互式处理路由键。
1.3.2 Topic Exchange -主题式交换器。

二、RabbitMQ安装及启动
rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
yum install -y rabbitmq-server.noarch
/sbin/rabbitmq-plugins list
/sbin/rabbitmq-plugins enable rabbitmq_management
systemctl start rabbitmq-server.service 等价 /sbin/rabbitmq-server start | stop | restart | reload
二、Rabbi tMQ常用配置介绍
注意,这两个文件默认是没有的,如果需要必须自己创建。
1. rabbitmq-env.conf这个文件的位置是确定和不能改变的, 位于: /etc/rabbitmq目录下 (这个目录需要自己创建)。
RABBITMQ_NODE_IP_ADDRESS:指定ip地址
RABBITMQ_CONFIG_FILE:配置文件的路径,注意配置文件后缀必须是config
2、disk_free_limit磁盘低水位线,若磁盘容量低于指定值则停止接收数据。
3、vm_memory_high_watermark, 设置内存低水位线, 若低于该水位线,则开启流控机制,默认值是0.4.即内存总量的40%。
三、RabbitMQ命令介绍及web界面操作
1、rabbitmqctl add_user username password 添加用户及密码;
[root@mage-monitor-01~/]#/sbin/rabbitmqctl add_user xiaoming
Creating user "xiaoming" ...
...done.
也可以在web页面操作:登录http://10.0.0.201:15672 (你自己的IP),用户guest(超级用户),密码:guest

2、rabbitmgctl add_vhost vhostname 创建Vhost; rabbitmqctl delete_vhost vhostname 删除Vhost;
[root@mage-monitor-01~/]#/sbin/rabbitmqctl add_vhost test_linux
Creating vhost "test_linux" ...
...done.

3、rabbitmqctl set_permissions -p V_host user “.*” “.*” “.*” 绑定权限,并且具备读写的权限;
[root@mage-monitor-01~/]#/sbin/rabbitmqctl set_permissions -p test_linux xiaoming ".*" ".*" ".*"
Setting permissions for user "xiaoming" in vhost "test_linux" ...
...done.

3、rabbitmqctl change_password username newpassword 修改用户密码; /sbin/rabbitmqctl delete_user <username> 删除用户;
[root@mage-monitor-01~/]#/sbin/rabbitmqctl delete_user xiaoming
Deleting user "xiaoming" ...
...done.
4、rabbitmqctl list_queues 显示所有队列。
5、rabbitmqctl list_vhosts 遍历所有虚拟主机信息;
中间件RabbitMQ之运维篇的更多相关文章
- Flume实战案例运维篇
Flume实战案例运维篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Flume概述 1>.什么是Flume Flume是一个分布式.可靠.高可用的海量日志聚合系统,支 ...
- rabbitmq常见运维命令和问题总结
常见运维命令作用: yum安装erlang的环境配置: ERLANG_HOME=/usr/lib64/erlang export PATH=$PATH:$ERLANG_HOME/bin 常见rabbi ...
- python自动化运维篇
1-1 Python运维-课程简介及基础 1-2 Python运维-自动化运维脚本编写 2-1 Python自动化运维-Ansible教程-Ansible介绍 2-2 Python自动化运维-Ansi ...
- 【mongoDB运维篇④】Shard 分片集群
简述 为何要分片 减少单机请求数,降低单机负载,提高总负载 减少单机的存储空间,提高总存空间. 常见的mongodb sharding 服务器架构 要构建一个 MongoDB Sharding Clu ...
- RabbitMq相关运维
# 命令查询所有用户列表rabbitmqctl list_users # 使用命令对 xiandian-admin 用户进行授权set_permissions xiandian-admin '.*' ...
- 【mongoDB运维篇②】备份与恢复(导入与导出)
导入/导出可以操作的是本地的mongodb服务器,也可以是远程的服务器 所以,都有如下通用选项: -h host 主机 --port port 端口 -u username 用户名 -p passwd ...
- 【mongoDB运维篇①】用户管理
3.0版本以前 在mongodb3.0版本以前中,有一个admin数据库, 牵涉到服务器配置层面的操作,需要先切换到admin数据库.即 use admin , 相当于进入超级用户管理模式,mongo ...
- linux中ftp的安装过程记录[运维篇]
安装FTP的全过程记录,对于相同情况希望有所帮助.[centOS] 1.查询本机是否安装vsftpd: rpm -qa |grep vsftpd : 2.安装ftp服务 yum install vsf ...
- 【mongoDB运维篇③】replication set复制集
介绍 replicattion set 多台服务器维护相同的数据副本,提高服务器的可用性,总结下来有以下好处: 数据备份与恢复 读写分离 MongoDB 复制集的结构以及基本概念 正如上图所示,Mon ...
随机推荐
- jmeter压测、操作数据库、分布式linux下运行、webservice接口测试、charles抓包
一.jmeter压测 在线程组中设置好,然后添加http请求,t添加聚合报告查看压力测试结果,如图: 一般压测时间10-15分钟,如果是稳定性测试,一般n*12小时,这些并发用户一直在请求. tps: ...
- oracle-ords
oracle rest data service ORDS Perforce adv. 一定,必须:必然地pagination n. 标记页数:页码,分页Online documentat ...
- Guava 3: 集合Collections
一.引子 Guava 对JDK集合的拓展,是最成熟且最受欢迎的部分.本文属于Guava的核心,需要仔细看. 二.Guava 集合 2.1 Immutable Collections不可变集合 1.作用 ...
- Http协议基础及发展历史
一.网络分层协议 经典五层模型 1.物理层:(电脑的硬件,网卡端口,网线,网线连出去的光缆) 定义物理设备如何传输数据 2.数据链路层 在通信的实体间建立数据链路连接. 两台机器物理上是可以连接在一起 ...
- 20165312 实验一 Java开发环境的熟悉
20165312 实验一 Java开发环境的熟悉 一.实验内容及步骤 (一)使用JDK编译.运行简单的Java程序 Ctrl+Shift+T打开终端 输入cd cxgg20165312/test进入目 ...
- 关于AsyncSocket
写篇博客,在我项目中用到了一个很重要的第三方---AsyncSocket,写下我对AsyncSocket使用心得.我的项目中是APP对硬件直接交互,APP对硬件发指令的时候不需要 ...
- 通过spark sql 将 hdfs上文件导入到mongodb
功能:通过spark sql 将hdfs 中文件导入到mongdo 所需jar包有:mongo-spark-connector_2.11-2.1.2.jar.mongo-java-driver-3.8 ...
- Flume架构
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统: Flume 介绍 Flume是由cloudera软件公司产出的高可用.高可靠.分布式的海量日志收集系 ...
- k8s学习笔记之一:kubernetes简介
一.虚拟化技术 1.什么是虚拟化技术 虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立 ...
- vmdk转qcow2格式
关闭vm 多文件格式转换成单文件格式vmdk 进入cmd命令行模式的窗口 进入VMware workstations的安装路径下 vmware-vdiskmanager.exe -r "E: ...