RabbitMQ(消息队列)

保证三台服务器时间同步
 #ntpdate   ntp.api.bz


2、配置好主机名(3台配置一样,主机名必须和host文件对应)
 #vim /etc/hosts
10.200.3.112  rabbitMQ-001 
10.200.3.113  rabbitMQ-002
10.200.3.114  rabbitMQ-003


3、安装依赖包
#yum -y install gcc gcc-c++ glibc glibc-devel make git kernel-headers ncurses-devel openssl-devel autoconf automake unzip zip bzip2 gzip xmlto xsltproc libxslt nc
 
4、安装erlang(rabbitMQ是机遇erlang的,所以需要配置erlang环境)
下载地址:http://www.erlang.org/download.html 
wget http://www.erlang.org/download/otp_src_17.3.tar.gz
#tar  -zxvf  otp_src_17.3.tar.gz
#cd  otp_src_17.3
#./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac
#make 
#make install
#echo "export PATH=/usr/local/erlang/bin:\$PATH" >> /etc/profile.d/app.sh
#source /etc/profile


5、安装Python
#wget https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz
#tar zxvf  Python-2.7.6.tgz
#cd  Python-2.7.6
#./configure  --prefix=/usr/local/python276 && make && make install
#echo "export PATH=/usr/local/python276/bin:\$PATH" >> /etc/profile.d/app.sh
#source /etc/profile
#python -V 查看版本


 
6、安装rabbitmq-server:
下载地址:http://www.rabbitmq.com/download.html
#wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.4.0/rabbitmq-server-3.4.0.tar.gz
#cd /usr/local/src
#tar zxvf rabbitmq-server-3.4.0.tar.gz
#cd rabbitmq-server-3.4.0
#make
#make install TARGET_DIR=/usr/local/rabbitmq SBIN_DIR=/usr/local/rabbitmq/sbin MAN_DIR=/usr/local/rabbitmq/man DOC_INSTALL_DIR=/usr/local/rabbitmq/doc
#echo "export PATH=/usr/local/rabbitmq/sbin:\$PATH" >> /etc/profile.d/app.sh
#source /etc/profile










7、配置 web的监控页面系统
#mkdir /etc/rabbitmq
#/usr/local/rabbitmq/sbin/rabbitmq-plugins enable rabbitmq_management
#/usr/local/rabbitmq/sbin/rabbitmqctl  change_password guest guest






8、配置文件 (rabbitmq默认配置可以使用,配置文件默认是没有的,需要自己创建,各服务器按实际情况更改配置文件)


                                      
vim  /etc/rabbitmq/rabbitmq-env.conf
[plain]  view plain copy
  1. RABBITMQ_NODENAME=rabbit@rabbitMQ-001  
  2. RABBITMQ_NODE_IP_ADDRESS=10.200.3.112  
  3. RABBITMQ_NODE_PORT=5672  
  4. RABBITMQ_LOG_BASE=/usr/local/rabbitmq/log  
  5. RABBITMQ_MNESIA_BASE=/usr/local/rabbitmq/mnesia  
  6. RABBITMQ_PLUGINS_DIR=/usr/local/rabbitmq/plugins  

vim  /etc/rabbitmq/rabbitmq.config
 
[plain]  view plain copy
  1. [{rabbit,[  
  2.     {auth_backends,[rabbit_auth_backend_internal]},  
  3.     {auth_mechanisms,['PLAIN','AMQPLAIN']},  
  4.     {backing_queue_module,rabbit_variable_queue},  
  5.     {cluster_nodes,[]},  
  6.     {collect_statistics,fine},  
  7.     {collect_statistics_interval,5000},  
  8.     {default_permissions,[<<".*">>,<<".*">>,<<".*">>]},  
  9.     {default_user,<<"guest">>},  
  10.     {default_user_tags,[administrator]},  
  11.     {default_vhost,<<"/">>},  
  12.     {delegate_count,16},  
  13.     {error_logger,{file,"/usr/local/rabbitmq/log/rabbitmq/rabbit@rabbitMQ-001.log"}},  
  14.     {frame_max,131072},  
  15.     {hipe_compile,false},  
  16.     {included_applications,[]},  
  17.     {msg_store_file_size_limit,16777216},  
  18.     {msg_store_index_module,rabbit_msg_store_ets_index},  
  19.     {queue_index_max_journal_entries,262144},  
  20.     {sasl_error_logger,{file,"/usr/local/rabbitmq/log/rabbitmq/rabbit@rabbitMQ-001-sasl.log"}},  
  21.     {server_properties,[]},  
  22.     {ssl_listeners,[]},  
  23.     {ssl_options,[]},  
  24.     {  
  25.         tcp_listen_options,  
  26.         [  
  27.             binary,  
  28.             {packet,raw},  
  29.             {reuseaddr,true},  
  30.             {backlog,128},  
  31.             {nodelay,true},  
  32.             {exit_on_close,false}  
  33.         ]  
  34.     },  
  35.     {tcp_listeners,[5672]},  
  36.     {trace_vhosts,[<<"/">>]},  
  37.     {vm_memory_high_watermark,0.4},  
  38.     {loopback_users,[]}  
  39. ]}].  






7、 配置erlang
Rabbitmq的集群是依赖于erlang的集群来工作的,所以必须先构建起erlang的集群环境。Erlang的集群中各节 点是通过一个magic cookie来实现的,这个cookie存放在$HOME/.Erlang.cookie 中,文件是400的权限。所以必须保证各节点cookie保持一致,否则节点之间就无法通信。
将其中一台节点上的.erlang.cookie值复制下来保存到其他节点上。或者使用scp的方法也可,但是要注意文件的权限和属主属组。
$ cat .erlang.cookie  
IYZNFNJIUWABJUELIUFE
将值保存到其他节点上: 先更改文件权限,给予其可写权限:
$chmod 700 .erlang.cookie  
$ echo -n " IYZNFNJIUWABJUELIUFE" >$HOME/.erlang.cookie  
$chmod 400 .erlang.cookie  
直接把.erlang.cookie这个文件scp到其它节点也可以。




9、启动结点:


主节点的操作:
# rabbitmq-server -detached
# rabbitmqctl status


node节点的操作:
# rabbitmq-server -detached
# rabbitmqctl stop_app
# rabbitmqctl reset
# rabbitmqctl join_cluster rabbit@rabbitMQ-001  --ram  #node服务器命令,主服务器不需要此命令。(在两个节点上执行,将节点加入集群)
# rabbitmqctl start_app
# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}' #选择其中一个结点执行node服务器命令,主服务器不需要此命令。(将所有队列设置为镜像队列,即队列被复制到各个节点,各个节点状态保持一致)




10、另外找两台机器做成高可用的haproxy,并配置,以下为示例部分:


#vim haproxy.cfg
[plain]  view plain copy
  1. global  
  2.         log 127.0.0.1   local0  
  3.         log 127.0.0.1   local1 notice  
  4.         maxconn 4096  
  5.         user haproxy  
  6.         group haproxy  
  7.         daemon  
  8.    
  9. defaults  
  10.         log     global  
  11.         #使用tcp监听模式  
  12.         mode    tcp  
  13.         option  tcplog  
  14.         option  dontlognull  
  15.         retries 3  
  16.         option redispatch  
  17.         maxconn 2000  
  18.         contimeout      5000  
  19.         clitimeout      50000  
  20.         srvtimeout      50000  
  21.    
  22. listen  admin_stat  
  23.         #haproxy的web管理端口 8888,自行设置  
  24.         bind 0.0.0.0:8888  
  25.         mode    http  
  26.         stats   refresh 30s  
  27.         #haproxy web管理url,自行设置  
  28.         stats uri /haproxy_stats  
  29.         stats realm Haproxy\ Statistics  
  30.         #haproxy web管理用户名密码,自行设置  
  31.         stats auth admin:admin  
  32.         stats hide-version  
  33.    
  34. listen  rabbitmq 0.0.0.0:5670  
  35.         #监听5670端口,并转发给三个节点的5672端口,采用轮询策略  
  36.         mode    tcp  
  37.         balance roundrobin  
  38.         server  rabbitMQ-001      10.200.3.112:5672      check   inter   2000 rise 2 fall 3  
  39.         server  rabbitMQ-002      10.200.3.113:5672      check   inter   2000 rise 2 fall 3  
  40.         server  rabbitMQ-003      10.200.3.114:5672      check   inter   2000 rise 2 fall 3  










 常用命令:


修改节点类型
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type disc
rabbitmqctl start_app


查看集群状态
rabbitmqctl  cluster_status查看集群状态




登陆web界面:
http://10.200.3.112:15672/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值