0

如果我想更新 Zookeeper 中的数据

client.setData().forPath(“/demo/path”, “其他数据”.getBytes())

如果它会成功吗

  1. ZooKeeper 很好
  2. 客户很好
  3. 路径存在
  4. 你有权利

因为我看过一篇文章,它说只有2N+1台服务器中的N台服务器认为更新操作成功,那么它是成功的,如果少于N台服务器认为OK,它会返回FAIL,我怎么能处理这些情况

http://blog.cloudera.com/blog/2009/12/observers-making-zookeeper-scale-even-further/

4

1 回答 1

-1

当你使用 "client.setData().forPath("/demo/path", "other data".getBytes())" 设置数据时......如果数据写入成功,它将返回一个统计结构.

  1. 如果节点不退出,它将抛出异常。因此,始终建议在设置数据之前检查“client.Exits()”。
  2. 当客户端没有 ACL 权限时,它将在 Stat 结构中提及。

在内部,第一个数据被写入主机,然后写入其他从机。如果您有 2N+1 个服务器的集合..您需要至少 N 个服务器运行该集合才能运行。

希望这能解决你的问题

于 2014-08-14T10:23:46.633 回答