idea遠端除錯tomcat jpda
阿新 • • 發佈:2020-10-22
目錄
rabbimtq簡介
rabbitmq是用erlang語言開發的,erlang語言最初用於交換機領域,這樣就使得rabbitmq和broker(server)之間進行資料互動的效能是非常優秀的,erlang有著和原生socket一樣的延遲,叢集非常方便,因為erlang天生就是分散式語言,但其本身不支援負載均衡。
rabbitmq模式
rabbitmq模式大概分為以下三種:
- 單一模式
- 普通模式(預設的叢集模式)
- 映象模式(把需要的佇列做成映象佇列,存在於多個節點。屬於rabbitmq的HA方案,在對業務的可靠性要求較高的場合中比較適用)
rabbitmq特點
rabbitmq的叢集節點包括記憶體節點和磁碟節點。rabbitmq支援訊息的持久化也就是資料解除安裝磁碟上,最合適的方案就是既有磁碟節點,又有記憶體節點。
rabbitmq叢集安裝
環境規劃
- 10.200.200.10 rabbitmq01 --disk
- 10.200.200.20 rabbitmq02 --ram
- 10.200.200.30 rabibtmq03 --ram
1、安裝依賴包
yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz socat
2、下載erlang
wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm
3、下載rabbitmq
wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm
4、安裝erlang和rabbitmq
rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
5、修改hosts,保證三臺伺服器直接都可以相互ping通
vim /etc/hosts
10.200.200.10 rabbitmq01
10.200.200.20 rabbitmq02
10.200.200.30 rabibtmq03
6、啟動rabbitmq服務
systemcetl start rabbitmq-server
7、選擇其中一臺erlang.cookie為準,拷貝到其他節點,這裡假設為第一臺
cd /var/lib/rabbitmq/
scp .erlang.cookie root@rabbit02:/var/lib/rabbitmq/
scp .erlang.cookie root@rabbit03:/var/lib/rabbitmq/
8、拷貝完如果直接重啟的話會導致服務起不來,因為檔案的許可權不對
cd /var/lib/rabbitmq/
chown -R rabbitmq. .erlang.cookie
chmod 400 .erlang.cookie
9、檢查外掛
/usr/lib/rabbitmq/bin/rabbitmq-plugins list //檢視外掛安裝情況
/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management //啟用rabbitmq_management服務
systemctl restrart rabbitmq-server
10、將rabbitmq02/rabbitmq03加入到叢集節點
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq01
rabbitmqctl start_app
11、檢視叢集狀態
rabbitmqctl cluster_status
12、新增全域性映象策略
admin->Policies->Add/update a policy
Name:ha_all
Pattern:^
Defiinition: ha-mode=all
Add policy
或者使用命令列工具
./rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}' ./rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
在建立佇列時,Arguments中設定ha-mode
= all
,建立完成之後,在Policy中要看到剛剛建立的queue,會顯示+2(表示3個節點)。
當有節點故障時,服務恢復,顯示粉色的+,需要在該節點手動執行 rabbitctl sync_quere
佇列名稱同步,就會恢復。