Rabbitmq安装文档
来源:互联网 发布:原帅数据 编辑:程序博客网 时间:2024/06/06 01:15
Window 安装
本篇经验将和大家介绍 RabbitMQ安装与配置步骤,希望对大家的工作和学习有所帮助!
安装
1 Rabbit MQ 是建立在强大的Erlang OTP平台上,因此安装RabbitMQ之前要先安装Erlang。
erlang:http://www.erlang.org/download.html
rabbitmq:http://www.rabbitmq.com/download.html
注意:Window程序安装,按默认选项下一步下一步,执行完毕即可
1.用的最新版本的3.6.6
2.默认安装的Rabbit MQ 监听端口是:5672
END
配置
1 安装完以后erlang需要手动设置ERLANG_HOME 的系统变量。
输入:set ERLANG_HOME=C:\Program Files\erl8.0 (设置环境变量最新版本的会自动在环境变量中添加,如果没有添加的话用最,手动添加,不建议用set 方式设置环境变量)
2 激活Rabbit MQ's Management Plugin
使用Rabbit MQ 管理插件,可以更好的可视化方式查看Rabbit MQ 服务器实例的状态,你可以在命令行中使用下面的命令激活。
输入:rabbitmq-plugins.bat enable rabbitmq_management
如下图所示:
同时,我们也使用rabbitmqctl控制台命令(位于 rabbitmq_server-3.6.6\sbin>)来创建用户,密码,绑定权限等。
3 创建管理用户
输入:rabbitmqctl.bat add_user admin admin
如下图所示:
4 设置管理员
输入:rabbitmqctl.bat set_user_tags admin administrator
如下图所示:
5 设置权限
输入:rabbitmqctl.bat set_permissions -p / admin ".*" ".*" ".*"
如下图所示:
6 其他命令
查询用户: rabbitmqctl.bat list_users
查询vhosts: rabbitmqctl.bat list_vhosts
启动RabbitMQ服务: net stop RabbitMQ && net start RabbitMQ
以上这些,账号、vhost、权限、作用域等基本就设置完了。
END
Rabbit MQ管理后台
1 使用浏览器打开http://localhost:15672 访问Rabbit Mq的管理控制台,使用刚才创建的账号登陆系统即可。
Rabbit MQ 管理后台,可以更好的可视化方式查看RabbitMQ服务器实例的状态,如下图所示:
END
创建vhosts
1 创建vhosts, 在admin页面,点击右侧Virtual Hosts ,如下图所示:
2 将刚创建的OrderQueue分配给相关用户。
3 其他创建exchange ,queue 大家自己在后台创建吧,这里不再赘述。
Linux 安装
实验环境
RabbitMQ 集群
server1.example.com IP: 10.10.10.11 Node: disk
server2.example.com IP: 10.10.10.12 Node: disk
server3.example.com IP: 10.10.10.13 Node: disk
RabbitMQ相关端口
4369 (epmd), RabbitMQ和CLI工具使用的对等发现服务25672 (Erlang distribution) 用于Erlang分布式节点和CLI工具通信的端口,并从动态范围分配(默认情况下为单个)5672, 5671 (AMQP 0-9-1 without and with TLS)15672 rabbitmqadmin 的 HTTP API客户端(只有管理插件开启的时候可以访问和使用)61613, 61614 (if STOMP is enabled)1883, 8883 (if MQTT is enabled)
YUM方式
添加EPEL源
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
添加Erlang源
# yum install wget# rpm -Uvh http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
安装RabbitMQ
# wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-3.6.1-1.noarch.rpm# rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc# yum install rabbitmq-server-3.6.1-1.noarch.rpm
手动RPM方式
安装RabbitMQ
# wget http://www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm# wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-3.6.1-1.noarch.rpm# wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc# rpm --import rabbitmq-signing-key-public.asc# rpm -Uvh erlang-18.3-1.el7.centos.x86_64.rpm rabbitmq-server-3.6.1-1.noarch.rpm
注: 如果是RedHat6,erlang下载地址为 http://www.rabbitmq.com/releases/erlang/erlang-18.3-1.el6.x86\_64.rpm
RabbitMQ单机配置
调整可打开文件/文件描述符数目(高并发支持)
调整系统限制
# vi /etc/sysctl.conf
fs.file-max = 100000
使设置生效
# sysctl -p
查看系统限制
# sysctl fs.file-max
调整用户限制
# vi /etc/security/limits.conf
* soft nofile 65536* hard nofile 65536
重启系统使之生效,检查用户限制是否生效
# ulimit -n
添加/etc/hosts条目
# echo "192.168.136.201 server1">> /etc/hosts
开通防火墙上Web UI访问端口(默认:15672/tcp)
# firewall-cmd --permanent --add-port=15672/tcp# firewall-cmd --reload
设置RabbitMQ服务自启动,并启动RabbbitMQ服务
# chkconfig rabbitmq-server on# service rabbitmq-server start
启用RabbitMQ监控插件
# rabbitmq-plugins enable rabbitmq_management
RabbitMQ用户管理
添加用户(用户名root,密码admin)
# rabbitmqctl add_user admin admin
设置用户角色(设置admin用户为管理员角色)
# rabbitmqctl set_user_tags admin administrator
设置用户权限(设置admin用户配置、写、读的权限)
# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
删除用户(删除guest用户)
# rabbitmqctl delete_user guest
注意:rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问。
如果想使用guest/guest通过远程机器访问,需要在rabbitmq配置文件中(/etc/rabbitmq/rabbitmq.config)中设置loopback_users为[]。
[{rabbit, [{loopback_users, []}]}].
登陆Web UI
在浏览器中打开http://10.10.10.11:15672
输入用户名、密码,登陆成功后的界面
检查RabbitMQ状态
查看进程:
# ps aux | grep -v grep | grep rabbitmq-server
查看端口:
# netstat -tnlp | grep 5672
如果提示netstat命令没找到,请先安装net-tools
# yum install net-tools
查看RabbitMQ状态:
# rabbitmqctl status
RabbitMQ默认配置
# cat /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.1/sbin/rabbitmq-defaults
;)
### next line potentially updated in package install stepsSYS_PREFIX=### next line will be updated when generating a standalone releaseERL_DIR=CLEAN_BOOT_FILE=start_cleanSASL_BOOT_FILE=start_sasl## Set default valuesBOOT_MODULE="rabbit"CONFIG_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmqLOG_BASE=${SYS_PREFIX}/var/log/rabbitmqMNESIA_BASE=${SYS_PREFIX}/var/lib/rabbitmq/mnesiaENABLED_PLUGINS_FILE=${SYS_PREFIX}/etc/rabbitmq/enabled_pluginsPLUGINS_DIR="${RABBITMQ_HOME}/plugins"IO_THREAD_POOL_SIZE=64CONF_ENV_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq-env.conf
;)
从上面看出:
- 系统prefix是空
- 配置文件路径是 /etc/rabbitmq/rabbitmq.config (erlang会自动加上.config后缀)
- 环境配置文件是 /etc/rabbitmq/rabbitmq-env.conf
- 日志文件目录是 /var/log/rabbitmq
- 插件文件目录是 安装目录下的plugins,这里RPM安装方式下是 /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.1/plugins
RabbitMQ集群配置
集群配置在单机配置完成的基础上进行
添加/etc/hosts条目
在server1、server2、server3里的/etc/hosts文件中分别添加:
10.10.10.11 server110.10.10.12 server210.10.10.13 server3
- 设置每个节点Cookie
Rabbitmq的集群是依赖于erlang的集群来工作的,所以必须先构建起erlang的集群环境。Erlang的集群中各节点是通过一个magic cookie来实现的,这个cookie存放在 /var/lib/rabbitmq/.erlang.cookie 中,文件是400的权限。所以必须保证各节点cookie保持一致,否则节点之间就无法通信
# chmod 700 /var/lib/rabbitmq/.erlang.cookie# echo -n "AZVOCZYZZBVFLBPTBXU" > /var/lib/rabbitmq/.erlang.cookie# chmod 400 /var/lib/rabbitmq/.erlang.cookie
建议在RabbitMQ服务启动前修改过cookie,如果RabbitMQ服务已经启动,修改cookie值后,必须重启RabbitMQ服务,这步很关键
# ps -ef | grep ^rabbitmq | awk '{print $2}' | xargs kill -9# service rabbitmq-server start
- 开通防火墙上集群通信端口
# firewall-cmd --permanent --add-port={4369/tcp,25672/tcp}# firewall-cmd --reload
- 加入集群
将 server1、server2 、server3组成集群:
默认是磁盘节点,如果是内存节点的话,需要加--ram参数
在server2、server3上分别运行:
# rabbitmqctl stop_app# rabbitmqctl join_cluster rabbit@server1# rabbitmqctl start_app
- 设置镜像策略
# rabbitmqctl set_policy ha-all "^"'{"ha-mode":"all","ha-sync-mode":"automatic"}'
相关知识
rabbitmqctl (rabbitmq管理工具) rabbitmq-plugins (rabbitmq插件管理工具) rabbitmq-server (rabbitmq服务)
主要配置文件
enabled_plugins:设置允许的插件列表。
rabbitmq.config:设置rabbitmq运行参数,结构为hash数组格式。
rabbitmq-env.conf:rabbitmq环境参数配置
rabbitmq-env.conf中的每项都以RABBITMQ_为前缀,常用参数如下:
RABBITMQ_NODENAME=FZTEC-240088//节点名称RABBITMQ_NODE_IP_ADDRESS=127.0.0.1//IP地址,空串bind所有地址,指定地址bind指定网络接口RABBITMQ_NODE_PORT=5672//TCP端口号,默认是5672RABBITMQ_LOG_BASE=/data/rabbitmq/log //日志所在路径RABBITMQ_PLUGINS_DIR=/data/rabbitmq/plugins //插件所在路径RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia //mnesia所在路径
rabbitmq-env.conf和rabbitmq.config默认是不存在的。
rabbitmq-env.conf需要在缺省位置手动创建一个。
rabbitmq.config需要在RABBITMQ_CONFIG_FILE指定位置手动创建一个。
安装中遇到的问题及解决办法
Centos 7 安装
erlang-19.0-1.el7.centos.x86_64.rpm
rabbitmq-server-3.6.6-1.el7.noarch.rpm
一直报主机名不正确(最后设置以下三个地方解决)
- 配置主机名称 hostnamectl 查看主机名称,用hostnamectl set-hostname 设置主机名称
配置/etc/hosts 设置需要的本次配置的内容如下 1. 130.10.8.207 server1 2. 130.10.8.208 server2 3. 130.10.8.209 server3
设置Rabbitmq的RABBITMQ_NODENAME 值为hosts中的映射 /etc/rabbitmq/rabbitmq_env.conf
断电后rabbitmq无法启动?
正常情况下,集群关闭时,那个节点最后关闭,一定要哪个节点最先启动,但是如果碰见例外情况(同时关闭),例如断电这种时候所有节点都会认为自己不是最后一个关闭的,那么这种时候,只要在任意一个节点上,使用force_boot命令使其再次引导后,然后在本节点上启动即可
- Rabbitmq安装文档
- 【RabbitMQ】Linux安装RabbitMQ
- 安装 rabbitmq
- RabbitMQ安装
- RabbitMQ安装
- rabbitMq安装
- rabbitmq 安装
- rabbitmq安装
- rabbitMQ安装
- 安装rabbitmq
- rabbitmq 安装
- RabbitMQ安装
- rabbitmq 安装
- 安装rabbitmq
- RabbitMQ安装
- RabbitMQ安装
- RabbitMQ安装
- RabbitMQ:安装
- C#实现win7任务栏进度条
- 小程序完美实现仿京东商城分类列表
- 你的不自律,正在慢慢毁掉你
- CI持续集成系统环境---部署Gitlab环境完整记录
- iOS开发debug跟release版本NSLog屏蔽方法
- Rabbitmq安装文档
- Hadoop2.7.2之Hive-2.1.1的Hiveserver2服务和beeline远程调试
- Java基础学习笔记 第一部分 part 4
- XMPPFramework核心类介绍
- 分析器错误 “/”应用程序中的服务器错误 请在类型名称中显式指定程序集。
- MYSQL日期 字符串 时间戳互转
- ADO.NET五大对象
- MFC子窗口和父窗口(SetParent,SetOwner)
- gdb x 命令详解