ActiveMQ 노트 (2): ZooKeeper 기반 HA 프로젝트

activemq 홈 페이지 에서 master / slave 의 HA 방안 3 가 지 를 제 시 했 습 니 다. 상세 한 내용 은 다음 과 같 습 니 다.http://activemq.apache.org/masterslave.html 공유 파일 디 렉 터 리 기반 db, zookeeper.
이 컴퓨터 에 zookeeper 기반 activemq 클 러 스 터 를 만 드 는 방법 을 보 여 줍 니 다.
1. 디 렉 터 리 activemq 1 에 activemq 를 설치 한 다음 conf / activemq. xml 를 수정 합 니 다.
 1     <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}">
 2         ...
 3         <persistenceAdapter>
 4             <!--<kahaDB directory="${activemq.data}/kahadb"/>-->
 5             <replicatedLevelDB
 6                     directory="activemq-data"
 7                     replicas="3"
 8                     bind="tcp://0.0.0.0:0"
 9                     zkAddress="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"
10                     zkSessionTimeout="2s"
11                     zkPath="/activemq/leveldb-stores"
12             />
13         </persistenceAdapter>
14         ...
15     </broker>

주: zk 의 HA 를 확보 하기 위해 서 본 기 계 는 적어도 3 개의 zk 노드 가 있어 야 합 니 다. 제 가 예전 의 글 을 참고 하여 구축 할 수 있 습 니 다.
 
2. activemq1 을 2 분 복사 하여 activemq2, activemq3 로 바 꿉 니 다. 이 컴퓨터 테스트 이기 때문에 포트 충돌 을 방지 하기 위해 이 두 디 렉 터 리 의 activemq. xml 는 포트 를 수정 해 야 합 니 다.
        <transportConnectors>
            <transportConnector name="openwire"
                                uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="amqp"
                                uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="stomp"
                                uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="mqtt"
                                uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="ws"
                                uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
        </transportConnectors>

위의 이 몇 개의 포트 는 모두 상황 을 보고 조정 합 니 다. 3 개의 activemq 가 충돌 하지 않도록 보증 하면 됩 니 다.
 
3. zk1, zk2, zk3, 그리고 activemq1, activemq2, activemq3 를 시작 하면 됩 니 다.
주: 출력 을 편리 하 게 관찰 하기 위해 activemq 를 시작 할 때. / activemq. sh console 로 시작 하 는 것 을 권장 합 니 다.
 
4. 테스트 실패
정상적으로 시작 한 후에 수 동 으로 master 를 멈 추고 나머지 2 개의 노드 단말기 출력 을 관찰 합 니 다. 정상 적 인 상황 에서 잠시 후에 하 나 는 자동 으로 master 로 올 라 갑 니 다.
 
마지막 으로 상기 HA 방안 을 사용 한 후에 시스템 의 가용성 이 향상 되 었 지만 본 컴퓨터 에서 테스트 한 결과 전편 과 같은 테스트 코드 와 사례 를 발견 했다. 단일 노드 가 실 행 될 때 1 초 에 8k + 개의 메 시 지 를 보 낼 수 있 고 zookeeper 의 HA 방안 을 사용 한 후에 1 초 에 500 개의 메 시 지 를 기록 할 수 있 으 며 성능 에 대한 요구 가 높 은 장면 에 대해 다른 방안 을 사용 하 는 것 을 권장 한다.예 를 들 어 다음 편 에서 소개 할 Networks of brokers 기반 HA 방안 이다.
참고 글:
http://activemq.apache.org/replicated-leveldb-store.html

좋은 웹페이지 즐겨찾기