2013-04-08 3 views
-2

내가 클라이언트 - 서버 응용 프로그램을 만들거야 ... 내가 ActiveMQ를에 초보자입니다, 그래서 몇 가지 질문이 있어요, 서버 측에서 ActiveMQ를 사용합니다. 모든 클라이언트는 메시지를 보내므로 모든 클라이언트의 메시지를받는 서버에 단일 대기열이 있습니다. 내가 아는 한 문제가되지 않습니다.모니터 ActiveMQ를 주제

그러나 또 다른 한가지가가 ... 메시지를 수신 한 후, 서버는 작동하며 각 수신 메시지에 대한 응답 메시지를 형성하고,이 메시지는 보낸 사람에 대한뿐만 아니라, 모든 클라이언트에 대해 전달해야합니다. 그리고 연결이 복구되었을 때 현재 어떤 클라이언트에 연결이없는 경우 클라이언트는이 클라이언트가 오프라인 상태 일 때 전송 된 모든 메시지 서버를 수신해야합니다 (손실 없음).

시작은 ActiveMQ를 배우고, 나는 해결책을 발견 : 서버의 "출력 큐"의 특정 번호 및 클라이언트의 수와 같은이 숫자가있다. 따라서 응답을 작성한 후 서버 응용 프로그램은 모든 "출력 대기열"을 거쳐 메시지를 각 대기열에 저장합니다. 이 변형에서 각 클라이언트는 고유 한 ID를 가지며 모든 응답 메시지로 OWN 대기열을 수신하므로 서버에서 우리는 각 클라이언트가 수신 한 메시지 수 (장점)를 모니터링 할 수 있습니다. 또한 큐브에있는 많은 동일한 개체가 서버 쪽의 각 클라이언트를 수동으로 추가하는 것은 단점이라고 생각합니다.

는 ActiveMQ를 대한 자세한 학습, 나는 주제 및 영구 가입자를 발견했다. 설명 된 문제에 필요한 것 같습니다. 하지만 이제 내 질문은 - 어떻게 주제 메시지를 모니터링 할 수 있습니까? jconsole의 브라우저 관리자 도구에서 보았지만 아직이 메시지를 볼 수 없습니다. 가능한가? 그리고 미래에 대한 질문 - 주제를이 문제에 대한 좋은 아이디어로 사용하고 있습니까? 또는 설명한대로 특정 개수의 출력 대기열을 사용하는 것이 더 좋을 수 있습니까?

답변

1

영구 가입은 아마 길을 가야하는 것입니다. 그러나 경험 한 바와 같이 약간의 운영 투명성을 희생해야합니다.

당신은뿐만 아니라 잠재적으로 문제를 해결할 수있는 가상 목적지를 좀보고 할 수 있습니다.

http://activemq.apache.org/virtual-destinations