175.8. 예
175.8.1. Cryostat 클러스터로 (거부) 메시지 전송
아래 코드 조각에 설명된 것처럼 producer 엔드포인트를 사용하여 message를 보냅니다.
from("direct:start").to("jgroups:myCluster"); ... producerTemplate.sendBody("direct:start", "msg")
위의 코드 조각(동일 또는 기타 물리적 시스템에서)에서 메시지를 수신하려면 아래 코드 조각에 표시된 것처럼 지정된 클러스터에서 들어오는 메시지를 수신합니다.
mockEndpoint.setExpectedMessageCount(1); mockEndpoint.message(0).body().isEqualTo("msg"); ... from("jgroups:myCluster").to("mock:messagesFromTheCluster"); ... mockEndpoint.assertIsSatisfied();
175.8.2. 클러스터 보기 변경 알림 수신
아래 스니펫에서는 클러스터 멤버십 변경과 관련된 알림을 수신하는 소비자 끝점을 생성하는 방법을 보여줍니다. 기본적으로 끝점에서 일반 메시지만 사용합니다.
mockEndpoint.setExpectedMessageCount(1); mockEndpoint.message(0).body().isInstanceOf(org.jgroups.View.class); ... from("jgroups:clusterName?enableViewMessages=true").to(mockEndpoint); ... mockEndpoint.assertIsSatisfied();
175.8.3. 클러스터 내의 싱글톤 경로 유지
아래 스니펫에서는 Camel Contexts 클러스터에 싱글톤 소비자 경로를 유지하는 방법을 보여줍니다. 마스터 노드가 종료되면 슬레이브 중 하나가 새 마스터로 선택되고 시작됩니다. 이 특정 예제에서는 싱글톤 jetty 인스턴스를 주소의 http://localhost:8080/orders` 에서 요청을 수신 대기 상태로 유지하려고 합니다.
JGroupsLockClusterService service = new JGroupsLockClusterService(); service.setId("uniqueNodeId"); ... context.addService(service); from("master:mycluster:jetty:http://localhost:8080/orders").to("jms:orders");