2012-10-23 4 views
1

ActiveMQ를 사용하는 경우 몇 가지 문제가 발생합니다.

1. 브로커가 손상되거나 중단되면 발신자의 메시지가 손실됩니다 (발신자가 다른 사람에게 보낼 수 있음).
2. 소비자는 브로커로부터 모든 메시지를 받지만, 소비자가 모든 메시지를 받았다는 것을 어떻게 알 수 있습니까?
3. 메시지가 손실되면 즉시 알고 싶습니다.ActiveMQ 모니터

프로덕션 환경에서 나는 activemq를 모니터하고 어떤 메시지가 손실되었는지 알고 싶습니다. 누구든지 내게 호의를 줄 수 있습니까?

답변

0

당신은 생산자/소비자가 브로커와 연락을 잃는 즉시 호출되는 리스너를 구현할 수 있습니다. 소비자가 사용을 명시 적으로 ACK 충돌하는 경우

http://activemq.apache.org/maven/5.5.0/activemq-core/apidocs/org/apache/activemq/transport/TransportListener.html

: activemq.apache.org/should-i-use-transactions.html를

당신이 브로커가 충돌하는 경우 메시지 손실을 방지하기 위해 지속성 메시지를 사용할 수 있습니다 activemq.apache.org/what-is-the-difference-between-persistent-and-non-persistent-delivery.html

+0

감사합니다. 프로덕션 환경에서 모니터에 대해 어떻게합니까? – user1767309

+0

영구 메시지를 사용한다고 가정하고 소비자가 메시지를 수신하고 확인 응답 할 때까지 브로커 지속성 어댑터 내에 메시지를 저장해야합니다. 하지만 'useAsyncSend'및 'soTimeout'을 사용하는 경우 메시지 손실이 자주 발생합니다. – user1767309