瘋狂創客圈 Java 高並發【 億級流量聊天室實戰】實戰系列 【博客園總入口 】
架構師成長+面試必備之 高並發基礎書籍 【Netty Zookeeper Redis 高並發實戰 】
瘋狂創客圈 高並發 環境 視頻,陸續上線:
- Windows Redis 安裝(帶視頻)
- Linux Redis 安裝(帶視頻)
- Windows Zookeeper 安裝(帶視頻)
- Linux Zookeeper 安裝(帶視頻)
- RabbitMQ 離線安裝(帶視頻)
- Nacos 安裝(帶視頻)
小視頻以及所需工具的百度網盤鏈接,請參見 瘋狂創客圈 高並發社群 博客
依賴包安裝
Rabbitmq安裝主要依賴兩個rpm依賴包:** erlang和socat**。
Rabbitmq依賴包的下載和安裝
下載erlang, 在https://packagecloud.io/rabbitmq/erlang頁面選擇對應版本的erlang的rpm安裝包(centos7需要19.3以上版本)。這里選擇的是版本為22.0.6。
瘋狂創客圈的網盤,有提供離線包
將下載后的erlang安裝包上傳到Linux的/usr/local目錄,然后,使用rpm命令進行安裝,命令如下:
sudo rpm -ivh /usr/local/erlang-22.0.6-1.el6.x86_64.rpm
socat 依賴包的下載和安裝
什么是socat ?
socat 是Linux系統下的一強大易用的網絡工具,名字來由是" Socket CAT",可以看作是netcat的加強版,socat的官方網站:http://www.dest-unreach.org/socat/。socat是一個兩個獨立數據通道之間的雙向數據傳輸的繼電器。這些數據通道包含文件、管道、設備(終端或調制解調器等)、插座(Unix,IP4,IP6 - raw,UDP,TCP)、SSL、SOCKS4客戶端或代理CONNECT。 Socat支持廣播和多播、抽象Unix sockets、Linux tun/tap、GNU readline 和 PTY。它提供了分叉、記錄和進程間通信的不同模式。socat的主要特點就是在兩個數據流之間建立通道;且支持眾多協議和鏈接方式:ip, tcp, udp, ipv6, pipe,exec,system,open,proxy,openssl,socket等。
如何下載socat?
首先在http://www.rpmfind.net/linux/rpm2html/search.php?query=socat頁面上,找到匹配目標Linux(這里是centos 7)系統的 rpm安裝包, 這里選擇的是socat-1.7.3.2-2.el7.x86_64.rpm 安裝包。
瘋狂創客圈的網盤,有提供離線包
安裝socat離線包
將下載后的socat安裝包上傳到Linux的/usr/local目錄,使用rpm命令進行安裝,命令如下:
sudo rpm -ivh /usr/local/socat-1.7.3.2-2.el7.x86_64.rpm
RabbitMQ 單節點安裝過程
第一步:下載需要安裝的Rabbitmq版本
下載需要安裝的Rabbitmq版本,這里為3.7.17,CentOS系統下對應版本的下載地址為:
瘋狂創客圈的網盤,有提供離線包
第二步:rpm命令進行安裝RabbitMQ
將安裝包上傳到Linux的/usr/local目錄,然后,使用rpm命令進行安裝,命令如下:
sudo rpm -ivh /usr/local/rabbitmq-server-3.7.17-1.el7.noarch.rpm
RabbitMQ的啟動和配置
1 啟動RabbitMQ
啟動RabbitMQ消息服務器,可以執行下面的命令:
sudo service rabbitmq-server start
2 RabbitMQ管理賬戶的配置
執行命令 rabbitmqctl add_user admin admin,設置賬戶密碼為admin admin
rabbitmqctl add_user admin admin
3 為管理員設置權限
執行命令 rabbitmqctl set_user_tags admin administrator,設置admin為管理員權限
rabbitmqctl set_user_tags admin administrator
4 打開rabbitmq web管理
執行命令 rabbitmq-plugins enable rabbitmq_management,打開rabbitmq web管理。
rabbitmq-plugins enable rabbitmq_management
5 登陸管理端,並打開訪問權限
管理鏈接為:http://192.168.233.128:15672,登陸賬戶密碼為設置的admin admin
查看用戶權限,默認狀態下權限是不允許訪問(此時程序訪問5672端口是連接被拒絕)。
點擊用戶名,進入用戶頁面,直接點擊設置權限。此時刷新頁面回到Users頁面,權限變成可訪問。
6 停止
[root@localhost work]# service rabbitmq-server stop
Redirecting to /bin/systemctl stop rabbitmq-server.service
[root@localhost work]# service rabbitmq-server status
Redirecting to /bin/systemctl status rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Thu 2019-12-05 07:29:11 PST; 8s ago
Process: 27084 ExecStop=/usr/sbin/rabbitmqctl shutdown (code=exited, status=0/SUCCESS)
Process: 1526 ExecStart=/usr/sbin/rabbitmq-server (code=exited, status=0/SUCCESS)
Main PID: 1526 (code=exited, status=0/SUCCESS)
Status: "Initialized"
Nov 24 18:07:40 localhost.localdomain rabbitmq-server[1526]: Starting broker...
Nov 24 18:07:40 localhost.localdomain rabbitmq-server[1526]: systemd unit for activation check: "rabbitmq-server.service"
Nov 24 18:07:40 localhost.localdomain systemd[1]: Started RabbitMQ broker.
Nov 24 18:07:42 localhost.localdomain rabbitmq-server[1526]: completed with 4 plugins.
Dec 05 07:28:44 localhost.localdomain systemd[1]: Stopping RabbitMQ broker...
Dec 05 07:28:49 localhost.localdomain rabbitmqctl[27084]: Shutting down RabbitMQ node rabbit@localhost running at PID 1526
Dec 05 07:28:57 localhost.localdomain rabbitmqctl[27084]: Waiting for PID 1526 to terminate
Dec 05 07:28:57 localhost.localdomain rabbitmq-server[1526]: Gracefully halting Erlang VM
Dec 05 07:29:11 localhost.localdomain rabbitmqctl[27084]: RabbitMQ node rabbit@localhost running at PID 1526 successfully shut down
Dec 05 07:29:11 localhost.localdomain systemd[1]: Stopped RabbitMQ broker.
PS:常見問題
一. http://ip:15672不能訪問,確認兩點:1. 添加用戶、給用戶設置管理員權限、rabbitmq-plugins這三步是否執行成功。2. 使用firewall打開5672/15672端口。具體步驟如下:
sudo service firewalld start
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=15672/tcp --permanent
sudo service firewalld start(如果系統不要求開啟防火牆,可以在設置完以后再關閉它)
備注:即使防火牆處於關閉狀態,也應該先打開端口再關閉,否則在有些機器上會仍然端口不通。
或者 關閉防火牆
首先使用systemctl status firewalld 命令,查看防火牆的狀態,執行命令如下:
[root@localhost ~]# systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 四 2019-07-25 19:15:01 CST; 18h ago
Docs: man:firewalld(1)
Main PID: 634 (firewalld)
Memory: 220.0K
CGroup: /system.slice/firewalld.service
└─634 /usr/bin/python -Es /usr/sbin/firewalld --nofork –nopid
結果中的Active: active (running) ,表示防火牆正在運行,實驗和測試環境,建議進行關閉。關閉防火牆的命令如下:
service firewalld stop
首先查看防火牆狀態:
service iptables status
永久性生效,重啟后不會復原
chkconfig iptables off
chkconfig iptables on
關閉:
即時生效,重啟后復原
具體,請關注 Java 高並發研習社群 【博客園 總入口 】
最后,介紹一下瘋狂創客圈:瘋狂創客圈,一個Java 高並發研習社群 【博客園 總入口 】
瘋狂創客圈,傾力推出:面試必備 + 面試必備 + 面試必備 的基礎原理+實戰 書籍 《Netty Zookeeper Redis 高並發實戰》
瘋狂創客圈 Java 死磕系列
- Java (Netty) 聊天程序【 億級流量】實戰 開源項目實戰
- Netty 源碼、原理、JAVA NIO 原理
- Java 面試題 一網打盡
- 瘋狂創客圈 【 博客園 總入口 】