RabbitMQ部署安装
生活随笔
收集整理的這篇文章主要介紹了
RabbitMQ部署安装
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
RabbitMQ消息發送過程
總結:生產者將消息發送給交換器,交換器和隊列綁定 。當生產者發送消息時所攜帶的 RoutingKey與綁定時的BindingKey 相匹配時,消息會被存入相應的隊列之中。消費者可以訂閱相應的隊列來獲取消息。RabbitMQ軟件部署
1.環境準備
#1)配置主機名(需要與hosts配置相同) hostnamectl set-hostname rabbitmq-1#軟件包準備(有版本沖突,具體查看官方文檔) rabbitmq-server-generic-unix-3.8.0 otp_src_22.3.tar.gz#創建用戶 useradd yjp#修改hosts文件 10.0.0.30 rabbitmq-1-30 10.0.0.31 rabbitmq-1-31 10.0.0.32 rabbitmq-1-322.軟件安裝
依賴安裝
yum -y install gcc gcc-c++ ncurses-devel openssl-devel perl5#創建相關目錄并附權 mkdir -p /data/yjp/rabbitmq/mnesia mkdir -p /home/logs/yjp mkdir -p /usr/local/yjpchown -R yjp.yjp /data/yjp /home/logs/yjp /usr/local/yjp安裝otp_src_22.3.tar.gz
cd /data/package tar -zxvf otp_src_22.3.tar.gz cd otp_src_22.3 ./configure --prefix=/usr/local/yjp/erlang --without-javac make && make installtouch /etc/profile.d/erl.sh cat <<EOF>/etc/profile.d/erl.sh export PATH=$PATH:/usr/local/yjp/erlang/bin EOFsource /etc/profile.d/erl.sh安裝rabbimtq
cd /data/package tar -xvf rabbitmq-server-generic-unix-3.8.0.tar -C /usr/local/yjp/ cd /usr/local/yjp/ mv rabbitmq_server-3.8.0/ rabbitmqtouch /etc/profile.d/rabbitmq.sh cat <<EOF>/etc/profile.d/rabbitmq.sh export PATH=$PATH:/usr/local/yjp/rabbitmq/sbin EOF source /etc/profile.d/rabbitmq.sh配置文件
cat <<EOF>/usr/local/yjp/rabbitmq/etc/rabbitmq/rabbitmq-env.conf RABBITMQ_MNESIA_BASE=/data/yjp/rabbitmq/mnesia RABBITMQ_LOG_BASE=/home/logs/yjp/rabbitmq RABBITMQ_LOGS=\$RABBITMQ_LOG_BASE/rabbitmq.log RABBITMQ_SASL_LOGS=\$RABBITMQ_LOG_BASE/sasl.log vm_memory_high_watermark=0.6 NODE_PORT=6000 EOF在程序中添加環境變量
vi /usr/local/yjp/rabbitmq/sbin/rabbitmq-server ERLANG_HOME=/usr/local/yjp/erlang ERL_DIR=/usr/local/yjp/erlang/bin/ export PATH=$PATH:$ERLANG_HOME/bin#權限修復 cd /usr/local/yjp chown -R yjp.yjp rabbitmq erlang開機腳本及自啟動
cat <<EOF> /usr/lib/systemd/system/rabbitmq-server.service [Unit] Description=RabbitMQ-Server After=syslog.target.network.target[Service] LimitNOFILE=100000 Environment=RABBITMQ_HOME=/usr/local/yjp/rabbitmq Environment=RABBITMQ_ENV=/usr/local/yjp/rabbitmq/sbin/rabbitmq-env Type=forking KillMode=control-group ExecStart=/usr/local/yjp/rabbitmq/sbin/rabbitmq-server -detached ExecStop=/usr/local/yjp/rabbitmq/sbin/rabbitmqctl shutdown User=yjp Group=yjp RestartSec=20 Restart=always StartLimitInterval=200 StartLimitBurst=5 StartLimitAction=none[Install] WantedBy=multi-user.target EOF#配置 日志輪轉cat <<EOF> /etc/logrotate.d/rabbitmq /home/logs/yjp/rabbitmq/*.log { weekly missingokrotate 20compressdelaycompressnotifemptysharedscriptspostrotatesu yjp -c "/usr/local/yjp/rabbitmq/sbin/rabbitmqctl rotate_logs > /dev/null"endscriptsu yjp yjp } EOF#自啟動服務 systemctl enable rabbitmq-server.service#啟動服務 systemctl start rabbitmq-server.service#開啟管理界面 su - yjp rabbitmq-plugins enable rabbitmq_management搭建集群與常用命令
#同步cookie文件cd /home/yjp/cat .erlang.cookie BBDWDRRSYIEYQRCKLEUP#這個文件內容寫到另外兩臺服務器,這里10.0.0.30 作為參照 #將文件內容復制到另外兩臺服務器上,2臺機器先要執行chmod a+w /home/yjp/.erlang.cookie 編輯完之后改回來chmod a-w /home/yjp/.erlang.cookie#然后另外兩臺服務器上 分別執行systemctl restart rabbitmq-server.service su - yjp rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster rabbit@rabbitmq-1-30 #--disc rabbitmqctl start_app #結束#檢查服務rabbitmqctl cluster_status#添加賬號密碼rabbitmqctl add_user admin ADXT3TLwkhsZJYfO rabbitmqctl set_user_tags admin administrator rabbitmqctl change_password admin ADXT3TLwkhsZJYfOrabbitmqctl add_user yjp yjp rabbitmqctl set_user_tags yjp impersonator#添加vhost rabbitmqctl add_vhost /production#vhost 授權 .* 匹配所有 ^$ 不匹配任何 rabbitmqctl [--node <node>] [--longnames] [--quiet] set_permissions [--vhost <vhost>] <username> <conf> <write> <read>rabbitmqctl set_permissions -p / admin '.*' '.*' '.*' rabbitmqctl set_permissions -p / yjp '.*' '.*' '.*'#配置策略rabbitmqctl set_policy -p /production ha-all-production "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'rabbitmqctl list_policies -p /#移除故障節點(在故障節點執行刪除數據,在master節點執行移除操作)rm -rf /data/yjp/rabbitmq/*rabbitmqctl -n rabbit@rabbitmq-1-237 forget_cluster_node rabbit@rabbitmq-1-239#rabbitmqadmin插件添加參考文檔https://blog.csdn.net/sifeimeng/article/details/84802111?ops_request_misc=&request_id=&biz_id=&utm_medium=distribute.pc_search_result.none-task-blog-2~all~es_rank~default-3-84802111.pc_search_all_es&utm_term=rabbitmqadmin%E4%B8%8B%E8%BD%BD&spm=1018.2226.3001.4187#清理隊列消息 rabbitmqadmin -p ${vhostpath} purge_queue ${queue_name}#刪除隊列 rabbitmqadmin -p ${vhostpath} purge_queue ${queue_name}rabbitmqadmin delete user name={user_name}rabbitmqadmin delete queue name={queue_name}rabbitmqadmin delete exchange name={exchange_name}#查看隊列rabbitmqadmin get queue=test requeue=true (不消費) rabbitmqadmin get queue=test requeue=false (并消費)Web的ui界面
總結
以上是生活随笔為你收集整理的RabbitMQ部署安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大话IT第12期:揭密疯狂的lulzse
- 下一篇: AVR单片机及其开发环境