385.4. 사용 사례


385.4.1. znode에서 읽기

다음 스니펫은 이미 존재하는 경우 znode/somepath/somenode/ 에서 데이터를 읽습니다. 검색된 데이터는 교환으로 배치되고 경로의 나머지 부분에 전달됩니다.

from("zookeeper://localhost:39913/somepath/somenode").to("mock:result");
Copy to Clipboard Toggle word wrap

노드가 아직 존재하지 않으면 끝점이 생성을 대기하도록 플래그를 제공할 수 있습니다.

from("zookeeper://localhost:39913/somepath/somenode?awaitCreation=true").to("mock:result");
Copy to Clipboard Toggle word wrap

385.4.2. znode 에서 읽기(추가 Camel 2.10 이후)

Zoo Cryostat ensemble에서 수신된 WatchedEvent 로 인해 데이터를 읽을 때 CamelZookeeperEventType 헤더는 WatchedEvent 로부터 Zoo Cryostat의 EventType 값을 보유합니다. 데이터를 처음에 읽히는 경우( WatchedEvent)에 의해 트리거되지 않은 경우 CamelZookeeperEventType 헤더가 설정되지 않습니다.

385.4.3. znode에 쓰기

다음 스니펫에서는 이미 존재하는 경우 /somepath/somenode/ 의 znode에 대한 페이로드를 작성합니다.

from("direct:write-to-znode")
    .to("zookeeper://localhost:39913/somepath/somenode");
Copy to Clipboard Toggle word wrap

유연성을 위해 끝점을 사용하면 대상 znode 를 메시지 헤더로 동적으로 지정할 수 있습니다. CamelZoo CryostatNode 문자열에 의해 키가 지정된 헤더가 있으면 헤더 값이 서버의 znode 경로로 사용됩니다. 예를 들어 위의 동일한 경로 정의를 사용하는 경우 다음 코드 조각은 /somepath/somenode 에 데이터가 아니라 /somepath/someothernode 헤더의 경로에 데이터를 작성합니다.

주의

testPayload 는 Zoo Cryostat에 저장된 데이터가 바이트 기반이므로 바이트로 변환할 수 있어야 합니다.

Object testPayload = ...
template.sendBodyAndHeader("direct:write-to-znode", testPayload, "CamelZooKeeperNode", "/somepath/someothernode");
Copy to Clipboard Toggle word wrap

또한 노드가 없는 경우 노드를 생성하려면 create 옵션을 사용해야 합니다.

from("direct:create-and-write-to-znode")
    .to("zookeeper://localhost:39913/somepath/somenode?create=true");
Copy to Clipboard Toggle word wrap

버전 2.11 을 시작하여 CamelZookeeperOperation 헤더를 사용하여 노드를 DELETE 로 설정할 수도 있습니다.

from("direct:delete-znode")
    .setHeader(ZooKeeperMessage.ZOOKEEPER_OPERATION, constant("DELETE"))
    .to("zookeeper://localhost:39913/somepath/somenode");
Copy to Clipboard Toggle word wrap

또는 이와 동등한 경우:

<route>
  <from uri="direct:delete-znode" />
  <setHeader headerName="CamelZookeeperOperation">
     <constant>DELETE</constant>
  </setHeader>
  <to uri="zookeeper://localhost:39913/somepath/somenode" />
</route>
Copy to Clipboard Toggle word wrap

Zookeeper 노드는 유형이 다를 수 있습니다. '임시(Ephememeral)' 또는 'Persistent' 및 'Sequenced' 또는 'Unsequenced'일 수 있습니다. 각 유형에 대한 자세한 내용은 여기에서 확인할 수 있습니다. 기본적으로 끝점은 unsequenced 임시 노드를 생성하지만 유형은 uri config 매개변수 또는 특수 메시지 헤더를 통해 쉽게 조작할 수 있습니다. 생성 모드에 예상되는 값은 CreateMode 열거의 이름입니다.

  • PERSISTENT
  • PERSISTENT_SEQUENTIAL
  • EPHEMERAL
  • EPHEMERAL_SEQUENTIAL

예를 들어 URI 구성을 통해 영구 znode 를 생성하려면 다음을 수행합니다.

from("direct:create-and-write-to-persistent-znode")
    .to("zookeeper://localhost:39913/somepath/somenode?create=true&createMode=PERSISTENT");
Copy to Clipboard Toggle word wrap

또는 CamelZookeeperCreateMode 헤더를 사용합니다.

주의

testPayload 는 Zoo Cryostat에 저장된 데이터가 바이트 기반이므로 바이트로 변환할 수 있어야 합니다.

Object testPayload = ...
template.sendBodyAndHeader("direct:create-and-write-to-persistent-znode", testPayload, "CamelZooKeeperCreateMode", "PERSISTENT");
Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat