원칙
사육사 달성을 사용하여 마스터 - 슬레이브 구현은, ActiveMQ를 효과적인 해결책이 될 매우 사용할 수 있습니다.
가용성 원리 :
- 사육사 (클러스터)를 사용하여 모든의 ActiveMQ 브로커 등록합니다.
- 오직 하나의 브로커 (즉, 마스터 노드) 외부에서 서비스를 제공 할 수있는, 다른 브로커가 슬레이브로 간주하는 대기 상태에있다.
- 주인이 오류로 인해 서비스를 제공 할 수없는 경우, 내부 메커니즘 사육사 선거의 사용은 마스터 브로커가 슬레이브에서 노드 역할을 선출 서비스를 제공 할 것입니다.
환경 준비
호스트 이름 | 체계 | IP 주소 | ZK 포트 | MQ 버전 | MQ 메시징 포트 | MQ 콘솔 포트 | |
---|---|---|---|---|---|---|---|
node01 | Centos7.5 | 172.16.1.11 | 2,181 | 5.15.6 | 61616 | 8161 | |
node02 | Centos7.5 | 172.16.1.12 | 2,181 | 5.15.6 | 61616 | 8161 | |
node03 | Centos7.5 | 172.16.1.13 | 2,181 | 5.15.6 | 61616 | 8161 |
사육사 클러스터
설치 기사가 도입되기 전에 클러스터를 사육사 CentOS는 7 사육사 프리젠 테이션 및 클러스터 설치를 이것은 또한 환경의 사용이다;
ActiveMQ를 설치
다운로드 :
- 공식 웹 사이트를 다운로드
- 바이두는 디스크 다운로드 주소 클라우드 추출 코드 : x5ua를
다음 작업은 세 개의 서버의 운영에 필요합니다 :
cd /opt/soft/
tar xf apache-activemq-5.15.6-bin.tar.gz
mv apache-activemq-5.15.6 /opt/activemq-5.16.6
ln -s /opt/activemq-5.16.6 /opt/activemq
ls -ld /opt/activemq*
# lrwxrwxrwx 1 root root 20 Mar 1 14:22 /opt/activemq -> /opt/activemq-5.16.6
# drwxr-xr-x 10 root root 193 Sep 4 2018 /opt/activemq-5.16.6
구성
의 개정,
다음과 같은 라인 brokerName
값 activemq-cluster
, 또는 여기에 사용자 정의 값은 두 개의 추가 같은 캔 클러스터를 표시해야합니다.
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="activemq-cluster" dataDirectory="${activemq.data}">
수정 II.
다음과 같이 요구 등 정보 사육사를 추가, 클러스터 관련 정보를 증가 :
당신은 소스 파일에 persistenceAdapter 태그를 삭제할 수 있습니다, 다음 포트 관련 변경 사항 아래에 직접 내용을 복사합니다.
이러한 구성에 따라, 나머지 두 구성 될 필요가있는 유일한 차이에 필요하다 hostname
각 컴퓨터 변형의 이름 값에 상응한다.
<persistenceAdapter>
<!--<kahaDB directory="${activemq.data}/kahadb"/> -->
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:62222"
zkAddress="172.16.1.11:2181,172.16.1.12:2181,172.16.1.13:2181"
hostname="node01"
sync="local_disk"
zkPath="/activemq/leveldb-stores"
/>
</persistenceAdapter>
테스트 시작
좋은 후 세 개의 서버의 위의 구성에 따라 수정 테스트를 시작
/opt/activemq/bin/activemq start
# INFO: Loading '/opt/activemq-5.16.6//bin/env'
# INFO: Using java '/opt/jdk/bin/java'
# INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
# INFO: pidfile created : '/opt/activemq-5.16.6//data/activemq.pid' (pid '12405')
참고 : 세 가지 서비스가 시작 후에는 것을 주목해야한다, 클러스터는 정상이며, 하나의 기계가 서비스를 제공하기 위해, 나머지 두 개의 포트를 수신하지 않습니다
보기 :
node01 :
[root@node01 conf]# netstat -lntup | egrep '61616|8161|62222'
tcp6 0 0 :::8161 :::* LISTEN 12405/java
tcp6 0 0 :::62222 :::* LISTEN 12405/java
tcp6 0 0 :::61616 :::* LISTEN 12405/java
node02 :
[root@node02 data]# netstat -lntup | egrep '61616|8161|62222'
[root@node02 data]#
node03 :
[root@node03 data]# netstat -lntup | egrep '61616|8161|62222'
[root@node03 data]#