| 主机名 | IP地址 | 操作系统 | rabbitmq版本 |
|---|---|---|---|
| mq1 | 192.168.10.180 | Centos 7 | rabbitmq3.9.7 |
| mq2 | 192.168.10.181 | Centos 7 | rabbitmq3.9.7 |
| mq3 | 192.168.10.183 | Centos 7 | rabbitmq3.9.7 |
[root@mq1 ~]# yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel ncurses-devel Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.sjtu.edu.cn * extras: ftp.sjtu.edu.cn * updates: ftp.sjtu.edu.cn Package 1:make-3.82-24.el7.x86_64 already installed and latest version Package gcc-4.8.5-44.el7.x86_64 already installed and latest version Package gcc-c++-4.8.5-44.el7.x86_64 already installed and latest version Package kernel-devel-3.10.0-1160.59.1.el7.x86_64 already installed and latest version Package m4-1.4.16-10.el7.x86_64 already installed and latest version Package ncurses-devel-5.9-14.20130511.el7_4.x86_64 already installed and latest version Package 1:openssl-devel-1.0.2k-24.el7_9.x86_64 already installed and latest version Package ncurses-devel-5.9-14.20130511.el7_4.x86_64 already installed and latest version Nothing to do [root@mq1 ~]#2.安装erlang环境 2.1 下载erlang解压并重名名
[root@mq1 ~]# wget http://erlang.org/download/otp_src_24.0.tar.gz --2022-02-28 14:41:08-- http://erlang.org/download/otp_src_24.0.tar.gz Resolving erlang.org (erlang.org)... 192.121.151.106 Connecting to erlang.org (erlang.org)|192.121.151.106|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 101193664 (97M) [application/gzip] Saving to: ‘otp_src_24.0.tar.gz’ 100%[=============================================================================>] 101,193,664 250KB/s in 6m 45s 2022-02-28 14:47:54 (244 KB/s) - ‘otp_src_24.0.tar.gz’ saved [101193664/101193664] [root@mq1 ~]# tar xf otp_src_24.0.tar.gz [root@mq1 ~]# mv otp_src_24.0 /usr/local/erlang2.2 检查编译环境,配置安装路径
[root@mq1 ~]# cd /usr/local/erlang/ [root@mq1 erlang]# ./configure --prefix=/usr/local/erlang --without-javac2.3 编译安装
[root@mq1 erlang]# make && make install2.4 加入环境变量,如下即为成功
[root@mq1 erlang]# source /etc/profile [root@mq1 erlang]# tail -n 1 /etc/profile export PATH=$PATH:/user/local/erlang/bin [root@mq1 erlang]# ln -s /usr/local/erlang/bin/erl /usr/local/bin/erl [root@mq1 erlang]# erl Erlang/OTP 24 [erts-12.0] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] Eshell V12.0 (abort with ^G) 1>3.安装rabbitmq 3.1 下载rabbitmq
[root@mq1 ~]# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.7/rabbitmq-server-generic-unix-3.9.7.tar.xz3.2 配置hosts
[root@mq1 ~]# vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.10.180 mq13.3 安装rabbitmq
[root@mq1 ~]# tar xf rabbitmq-server-generic-unix-3.9.7.tar [root@mq1 ~]# ls otp_src_24.0.tar.gz rabbitmq_server-3.9.7 rabbitmq-server-generic-unix-3.9.7.tar [root@mq1 ~]# mv rabbitmq_server-3.9.7/ /data/rabbitmq3.4 添加环境变量
[root@mq1 ~]# cat >> /etc/profile << EOF > export PATH=/data/rabbitmq/sbin:$PATH > EOF [root@mq1 ~]# source /etc/profile3.5 启动mq后台管理方式
[root@mq1 ~]# rabbitmq-plugins enable rabbitmq_management Enabling plugins on node rabbit@mq1: rabbitmq_management The following plugins have been configured: rabbitmq_management rabbitmq_management_agent rabbitmq_web_dispatch Applying plugin configuration to rabbit@mq1... The following plugins have been enabled: rabbitmq_management rabbitmq_management_agent rabbitmq_web_dispatch set 3 plugins. Offline change; changes will take effect at broker restart. [root@mq1 ~]#3.6 运行rabbitmq
[root@mq1 ~]# rabbitmq-server
2022-02-28 15:35:46.446039+08:00 [info] <0.222.0> Feature flags: list of feature flags found:
2022-02-28 15:35:46.471099+08:00 [info] <0.222.0> Feature flags: [ ] implicit_default_bindings
2022-02-28 15:35:46.471247+08:00 [info] <0.222.0> Feature flags: [ ] maintenance_mode_status
2022-02-28 15:35:46.471353+08:00 [info] <0.222.0> Feature flags: [ ] quorum_queue
2022-02-28 15:35:46.471446+08:00 [info] <0.222.0> Feature flags: [ ] stream_queue
2022-02-28 15:35:46.471745+08:00 [info] <0.222.0> Feature flags: [ ] user_limits
2022-02-28 15:35:46.471863+08:00 [info] <0.222.0> Feature flags: [ ] virtual_host_metadata
2022-02-28 15:35:46.471958+08:00 [info] <0.222.0> Feature flags: feature flag states written to disk: yes
2022-02-28 15:35:47.253160+08:00 [noti] <0.44.0> Application syslog exited with reason: stopped
2022-02-28 15:35:47.253395+08:00 [noti] <0.222.0> Logging: switching to configured handler(s); following messages may not be visible in this log output
## ## RabbitMQ 3.9.7
## ##
########## Copyright (c) 2007-2021 VMware, Inc. or its affiliates.
###### ##
########## Licensed under the MPL 2.0. Website: https://rabbitmq.com
Erlang: 24 [emu]
TLS Library: OpenSSL - OpenSSL 1.0.2k-fips 26 Jan 2017
Doc guides: https://rabbitmq.com/documentation.html
Support: https://rabbitmq.com/contact.html
Tutorials: https://rabbitmq.com/getstarted.html
Monitoring: https://rabbitmq.com/monitoring.html
Logs: /data/rabbitmq/var/log/rabbitmq/rabbit@mq1.log
/data/rabbitmq/var/log/rabbitmq/rabbit@mq1_upgrade.log
Config file(s): (none)
Starting broker...
completed with 3 plugins.
三、集群部署
1.安装mq(同上)
2.修改配置文件(其他两台对应修改mq2、mq3)
[root@mq1 ~]# cd /data/rabbitmq/etc/rabbitmq [root@mq1 rabbitmq]# touch rabbitmq-env.conf [root@mq1 rabbitmq]# cat rabbitmq-env.conf NODENAME=rabbit@mq1 MNESIA_base=/data/rabbitmq/mnesia LOG_base=/data/rabbitmq/log3.重启进程,重载配置文件
[root@mq1 rabbitmq]# netstat -antp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 6906/beam.smp tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 5581/epmd tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 7437/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6855/sshd: /usr/sbi tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 6653/cupsd tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 6906/beam.smp tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 6910/master tcp 0 0 127.0.0.1:65432 127.0.0.1:4369 TIME_WAIT - tcp 0 0 192.168.10.180:4369 192.168.10.180:61106 TIME_WAIT - tcp 0 0 192.168.10.180:4369 192.168.10.180:61110 TIME_WAIT - tcp 0 0 127.0.0.1:4369 127.0.0.1:65438 ESTABLISHED 5581/epmd tcp 0 336 192.168.10.180:22 20.0.0.3:51939 ESTABLISHED 20039/sshd: root@pt tcp 0 0 192.168.10.180:4369 192.168.10.180:61112 TIME_WAIT - tcp 0 0 127.0.0.1:65434 127.0.0.1:4369 TIME_WAIT - tcp 0 0 127.0.0.1:65438 127.0.0.1:4369 ESTABLISHED 6906/beam.smp tcp6 0 0 :::5672 :::* LISTEN 6906/beam.smp tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::4369 :::* LISTEN 5581/epmd tcp6 0 0 :::22 :::* LISTEN 6855/sshd: /usr/sbi tcp6 0 0 ::1:631 :::* LISTEN 6653/cupsd tcp6 0 0 ::1:25 :::* LISTEN 6910/master [root@mq1 rabbitmq]# kill -9 6906 [root@mq1 rabbitmq]# rabbitmq-plugins enable rabbitmq_management Enabling plugins on node rabbit@mq1: rabbitmq_management The following plugins have been configured: rabbitmq_management rabbitmq_management_agent rabbitmq_web_dispatch Applying plugin configuration to rabbit@mq1... Plugin configuration unchanged. [root@mq1 rabbitmq]# rabbitmq-server -detached4.添加用户(三台都要)
[root@mq1 rabbitmq]# rabbitmqctl add_user admin 123456 Adding user "admin" ... Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more. [root@mq1 rabbitmq]# rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*" Setting permissions for user "admin" in vhost "/" ... [root@mq1 rabbitmq]# rabbitmqctl set_user_tags admin administrator Setting tags for user "admin" to [administrator] ... [root@mq1 rabbitmq]# rabbitmqctl list_users Listing users ... user tags admin [administrator] guest [administrator]5.修改erlang.cookie权限,传送到其他服务器
[root@mq1 ~]# chmod 400 .erlang.cookie [root@mq1 ~]# scp .erlang.cookie 192.168.10.181:/root The authenticity of host '192.168.10.181 (192.168.10.181)' can't be established. ED25519 key fingerprint is SHA256:Q7berYeCACYwLcFtyUEZxThcf6TSoKTMMERfs0NUx3M. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '192.168.10.181' (ED25519) to the list of known hosts. (root@192.168.10.181) Password: .erlang.cookie 100% 20 23.8KB/s 00:00 [root@mq1 ~]# scp .erlang.cookie 192.168.10.183:/root (root@192.168.10.183) Password: .erlang.cookie 100% 20 31.3KB/s 00:00 [root@mq1 ~]#6.停止mq2和mq3的进程,加入集群 6.1 mq2作为磁盘节点
[root@mq2 ~]# rabbitmqctl stop_app Stopping rabbit application on node rabbit@mq2 ... [root@mq2 ~]# rabbitmqctl join_cluster rabbit@mq1 Clustering node rabbit@mq2 with rabbit@mq1 [root@mq2 ~]# rabbitmqctl start_app Starting node rabbit@mq2 ...6.2 mq3作为内存节点
[root@mq3 ~]# rabbitmqctl stop_app Stopping rabbit application on node rabbit@mq3 ... [root@mq3 ~]# rabbitmqctl join_cluster --ram rabbit@mq1 Clustering node rabbit@mq3 with rabbit@mq1 [root@mq3 ~]# rabbitmqctl start_app Starting node rabbit@mq3 ...7.查看集群状态
[root@mq1 ~]# rabbitmqctl cluster_status Cluster status of node rabbit@mq1 ... Basics Cluster name: rabbit@mq1 Disk Nodes rabbit@mq1 rabbit@mq2 RAM Nodes rabbit@mq3 Running Nodes rabbit@mq1 rabbit@mq2 rabbit@mq3四、使用 1.修改rabbitmq密码
[root@mq1 ~]# rabbitmqctl change_password admin '123123' Changing password for user "admin" ...
未完待续



