1. 程式人生 > 實用技巧 >idea遠端除錯tomcat jpda

idea遠端除錯tomcat jpda

目錄

rabbimtq簡介

rabbitmq是用erlang語言開發的,erlang語言最初用於交換機領域,這樣就使得rabbitmq和broker(server)之間進行資料互動的效能是非常優秀的,erlang有著和原生socket一樣的延遲,叢集非常方便,因為erlang天生就是分散式語言,但其本身不支援負載均衡。

rabbitmq模式

rabbitmq模式大概分為以下三種:

  1. 單一模式
  2. 普通模式(預設的叢集模式)
  3. 映象模式(把需要的佇列做成映象佇列,存在於多個節點。屬於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佇列名稱同步,就會恢復。