jms
5860 단어 jms
maxInactivityDuration 최대 정지 시간 허용(메시지 서버 메시지 없음) maxReconnectDelay 최대 재연결 간격
Activemq 보안 메커니즘 및 안정성 연구
1) 보안 액세스 메커니즘:
activemq 시작 시 프로필 로드 $ACTIVEMQ_HOME/conf/activemq.xml,activemq.xml의
<plugins>
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="system" password="manager"
groups="users,admins"/>
<authenticationUser username="user" password="password"
groups="users"/>
<authenticationUser username="guest" password="password" groups="guests"/>
</users>
</simpleAuthenticationPlugin>
<!-- lets configure a destination based authorization mechanism -->
<authorizationPlugin>
<map>
<authorizationMap>
<authorizationEntries>
<authorizationEntry queue=">" read="admins" write="admins" admin="admins" />
<authorizationEntry queue="USERS.>" read="users" write="users" admin="users" />
<authorizationEntry queue="GUEST.>" read="guests" write="guests,users" admin="guests,users" />
<authorizationEntry topic=">" read="admins" write="admins" admin="admins" />
<authorizationEntry topic="USERS.>" read="users" write="users" admin="users" />
<authorizationEntry topic="GUEST.>" read="guests" write="guests,users" admin="guests,users" />
<authorizationEntry topic="ActiveMQ.Advisory.>" read="guests,users" write="guests,users" admin="guests,users"/>
</authorizationEntries>
<!-- let's assign roles to temporary destinations. comment this entry if we don't want any roles assigned to temp destinations -->
<tempDestinationAuthorizationEntry>
<tempDestinationAuthorizationEntry read="tempDestinationAdmins" write="tempDestinationAdmins" admin="tempDestinationAdmins"/>
</tempDestinationAuthorizationEntry>
</authorizationMap>
</map>
</authorizationPlugin>
</plugins>
그 중에서 어떤 사용자가 어떤 종류의 대기열에 접근할 수 있는지에 대해 제한을 두었다.
클라이언트 자바 연결 activemq의 설정은 다음과 같습니다.
<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL">
<value>tcp://10.100.8.5:61616?wireFormat.maxInactivityDuration=0&jms.useAsyncSend=true</value>
</property>
<property name="userName" value="system"/>
<property name="password" value="manager"/>
</bean>
2) 로컬에서만 activemq를 연결할 수 있도록 제한:
위의 0.0.0.0.0을localhost 또는 127.0.0.1로 바꾸면 본 기기에서만 연결할 수 있도록 제한할 수 있습니다.
3) 메인프레임 메커니즘:
연결된 URL을 다음과 같이 설정합니다.
failover:(tcp://primary:61616,tcp://secondary:61616)?randomize=false
primary가 끊어지면 secondary가 자동으로 연결됩니다.
예:
<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<!-- mq's URL -->
<!-- wireFormat.maxInactivityDuration=0 means never close the inactive connection -->
<property name="brokerURL">
<value>failover:(tcp://localhost:61616?wireFormat.maxInactivityDuration=0,tcp://10.100.8.5:61616?wireFormat.maxInactivityDuration=0)?randomize=false&jms.useAsyncSend=true</value>
</property>
</bean>
failover:를 사용할 때 jms.*형식의 매개 변수는 괄호 밖에 써야 합니다. 그렇지 않으면activemq는 정확하게 해석할 수 없습니다.
4) 동일한 시스템에서 여러 MQ Broker를 시작합니다.
마스터의 프로필은 conf/activemq입니다.xml, 복사하여 activemq2로 저장합니다.xml, 그리고 다음과 같은 수정을 합니다.
1. 브로커의name 속성을 수정합니다. 예를 들어:brokerName="slaveBroker", 브로커의 속성 추가 masterConnectorURI="tcp://masterhost:62001"
2. master의 data directory와 중복되지 않도록 data directory 위치를 수정합니다.
<persistenceAdapter>
<kahaDB directory=”${activemq.base}/data/kahaDB2” />
</persistenceAdapter>
3. WEB 콘솔 구성 수정:
웹 컨트롤러의 설정은jetty에 있습니다.xml에서 이 파일을 복사하여jetty2로 저장합니다.xml, 그리고 jetty2.xml은 웹 콘솔의 프로필입니다.
그리고 제티 2.xml에서 웹 서비스의 포트를 수정하여 충돌을 피합니다.
<bean id=”Connector” …>
<property name=”port” value=”8102” />
</bean>
슬레이브 브로커 시작:
cd ${activemq-base}/bin
./activemq xbean:activemq2.xml &
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
실효 연결의 검측만약 상술한 상황이 발생한다면, 이 자원들은 서버에 남아 정리되지 않을 것이다.이것은 자원 유출 현상을 초래하고 최종적으로 서버 메모리가 넘치거나 다른 자원의 넘침 오류를 초래할 수 있다. 따라서 서버에서는 자원의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.