本帖最后由 fangxing 于 2018-4-12 13:47 编辑
Rabbitmq 安装
一 单机安装.............................................................................................................. 2 1. 安装rpm包.................................................................................................... 2 2. 启动,停止服务............................................................................................. 2 3. 添加管理员用户............................................................................................. 2 4. 启动和关闭监控插件...................................................................................... 3 二 集群安装.............................................................................................................. 3 2. 安装rabbit server并启动................................................................................ 3 3. 同步erlang.cookie文件................................................................................... 3 4. 使用detached参数......................................................................................... 4 5. 组成集群........................................................................................................ 4 6. 设置镜像队列策略.......................................................................................... 4 7. 启动管理插件................................................................................................. 5 8. haproxy搭建.................................................................................................... 5 三 参考资料.............................................................................................................. 6 一 单机安装Rabbitmq rmp安装包下载地址:
Erlang 安装包下载地址:
Rabbitmq 是基于erlang运行的,所以必须要先安装erlang! 以下用rabbitmq-server-3.6.0-1为例! 下载erlang-18.2-1.el6.x86_64.rpm和rabbitmq-server-3.6.0-1.noarch.rpm
1. 安装rpm包 rpm -ivherlang-18.2-1.el6.x86_64.rpm rabbitmq-server-3.6.0-1.noarch.rpm
默认安装完成后路径: 参数文件路径:(默认下面为空) /etc/rabbitmq rabbitmq.config ---如果添加参数,需要自己创建这个文件 日志文件路径: /var/log/rabbitmq 数据文件路径: /var/lib/rabbitmq/mnesia 安装后文件目录: /usr/lib/rabbitmq /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.0 plugins目录: /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.0/plugins
2. 启动,停止服务 servicerabbitmq-server start --启动服务器 servicerabbitmq-server stop --停止服务 servicerabbitmq-server status --查看服务状态
3. 添加管理员用户 rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问。 添加其他用户: rabbitmqctl add_user rabbitmq rabbitmq ---设置用户为管理员 rabbitmqctlset_user_tags rabbitmq administrator ---设置虚拟主机 / 中的权限 rabbitmqctlset_permissions -p / rabbitmq ".*" ".*" ".*"
4. 启动和关闭监控插件 rabbitmq-pluginsenable rabbitmq_management 关闭监控插件: rabbitmq-pluginsdisable rabbitmq_management 启动后即可通过web页面管理rabbitmq 查看安装了那些插件: rabbitmq-pluginslist
二 集群安装3台rabbitmq,一台磁盘模式(仅用来做备份),两台内存模式(提供对外服务).
1. 节点信息 192.168.2.111dataNode01 192.168.2.112dataNode02 192.168.2.113dataNode03 并将改信息在3台服务器的/etc/hosts中添加
2. 安装rabbit server并启动在3台服务器上分别安装好erlang和rabbitmq-server。 启动dataNode01上的rabbitmq服务 servicerabbitmq-server start
3. 同步erlang.cookie文件 将dataNode01上的/var/lib/rabbitmq/.erlang.cookie文件覆盖到其他2个节点上,注意权限也要保留! scp.erlang.cookie dataNode02:/var/lib/rabbitmq/ scp.erlang.cookie dataNode03:/var/lib/rabbitmq/ 复制完成后重启3台rabbitmq server!
4. 使用detached参数停止所有节点RabbitMq服务,然后使用detached参数独立运行! servicerabbitmq-server stop 使用detached参数,在后台启动Rabbit: rabbitmq-server-detached 查看单个rabbitmq的集群状态 [iyunv@dataNode01~]# rabbitmqctl cluster_status Cluster statusof node rabbit@dataNode01 ... [{nodes,[{disc,[rabbit@dataNode01]}]}, {running_nodes,[rabbit@dataNode01]}, {cluster_name,<<"rabbit@dataNode01">>}, {partitions,[]}]
5. 组成集群 将dataNode02、dataNode03作为内存节点与dataNode01连接起来 在dataNode02和dataNode03上分别执行: rabbitmqctlstop_app rabbitmqctljoin_cluster --ram rabbit@dataNode01 rabbitmqctlstart_app
查看集群状态 [iyunv@dataNode02rabbitmq]# rabbitmqctl cluster_status Cluster statusof node rabbit@dataNode02 ... [{nodes,[{disc,[rabbit@dataNode01]}, {ram,[rabbit@dataNode03,rabbit@dataNode02]}]}, {running_nodes,[rabbit@dataNode03,rabbit@dataNode01,rabbit@dataNode02]}, {cluster_name,<<"rabbit@dataNode01">>}, {partitions,[]}] 也可以在管理插件上查看集群状态:连接地址和单机类似
6. 设置镜像队列策略 在任意一个节点运行即可: rabbitmqctl set_policy ha-all '.*''{"ha-mode":"all"}'
rabbitmqctlset_policy [-p <vhostpath>] [--priority <priority>] [--apply-to<apply-to>] <name> <pattern> <definition> name 策略名称 pattern 正则表达式,用来匹配资源,符合的就会应用设置的策略 definition 是json格式设置的策略。 apply-to 表示策略应用到什么类型的地方,一般有queues,exchange和all,默认是all priority 是个整数优先级 其中ha-mode有三种模式: all: 同步至所有的. exactly: 同步最多N个机器. 当现有集群机器数小于N时,同步所有,大于等于N时则不进行同步. N需要额外通过ha-params来指定. nodes: 只同步至符合指定名称的nodes. N需要额外通过ha-params来指定.
7. 启动管理插件启动监控插件: --默认是没有启动 rabbitmq-pluginsenable rabbitmq_management 创建管理用户和单机一样! 每个节点都要启动,启动后就能在任意一个节点上登录看到所有信息(用户密码共享,即只需要在一个节点上创建用户)
8. haproxy搭建yum installhaproxy 更改/etc/haproxy/haproxy.cfg ---文件需要修改 在最后加上: listenrabbitmq_cluster 0.0.0.0:5672 mode tcp balance roundrobin option tcplog option tcpka server rqslave1 192.168.2.112:5672 check inter 2000 rise 2 fall 3 server rqslave2 192.168.2.113:5672 check inter 2000 rise 2 fall 3 # server rqmaster 192.168.2.111:5672 check inter 2000rise 2 fall 3
启动haproxy service haproxyrestart
三 参考资料官网:
安装页面:
安装参考:rabbitmq集群+haproxy
|