384.4. 사용 사례


384.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

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

ZooKeeper ensemble에서 수신된 WatchedEvent 로 인해 데이터를 읽을 때 CamelZookeeperEventType 헤더는 해당 WatchedEvent에서 ZooKeeper의 EventType 값을 보유합니다. 데이터를 처음에 읽히면 ( WatchedEvent) CamelZookeeperEventType 헤더가 설정되지 않습니다.

384.4.3. znode에 쓰기

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

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

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

주의

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

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 부터는 DELETE 로 설정하여 CamelZookeeperOperation 헤더를 사용하여 노드를 삭제 할 수도 있습니다.

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 노드는 다른 유형을 가질 수 있습니다. 'Ephemer' 또는 'Persistent' 및 'Sequenced' 또는 'sequenced'일 수 있습니다. 각 유형에 대한 자세한 내용은 여기에서 확인할 수 있습니다. 기본적으로 끝점은 처리되지 않은 임시 노드를 생성하지만 uri config 매개변수 또는 특수 message 헤더를 통해 유형을 쉽게 조작할 수 있습니다. 만들기 모드에서 예상되는 값은 CreateMode ECDHE의 이름일 뿐입니다.

  • 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 는 ZooKeeper에 저장된 데이터가 바이트 기반이므로 byte[] 로 변환할 수 있어야 합니다.

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