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 动态指定为消息标头。如果存在字符串 CamelZooKeeperNode 的标头键,则标头的值将用作服务器上 znode 的路径。对于使用上述相同路由定义的实例,以下代码片段会将数据不写入 /somepath/somenode,而是指向标头 /somepath/someothernode 的路径。

警告

testPayload 必须可以被转换为 字节[],因为 ZooKeeper 中存储的数据基于字节。

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 节点可以有不同的类型,可以是 'Ephemeral' 或 'Persistent' 和 'Sequenced' 或 'Unsequenced'。有关您可以在 此处查看 每种类型的更多信息。默认情况下,端点将创建不透明的临时节点,但该类型可以通过 uri 配置参数或特殊消息标头来轻松操作。创建模式的值只是来自 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 必须可以被转换为 字节[],因为 ZooKeeper 中存储的数据基于字节。

Object testPayload = ...
template.sendBodyAndHeader("direct:create-and-write-to-persistent-znode", testPayload, "CamelZooKeeperCreateMode", "PERSISTENT");
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat