12. ZooKeeper配额和认证

ZooKeeper具有与其数据模型相关的可配置配额(quota)。 可以设置znode上的配额限制和存储的数据量。如果ZooKeeper命名空间中的一个子树超出与其关联的配额,ZooKeeper会在日志中打印警告消息。但是,如果超出指定的配额,操作并不会取消。

ZooKeeper配额存储在/zookeeper/quota路径的ZooKeeper树中。 可以从ZooKeeper客户端API和ZooKeeper Java shell中设置,列出和删除配额。 以下截图显示了使用对应setlistdel命令的结果:
操作配额

在上面的示例中,创建了一个/quota_example的新建znode,并设置了两个子znode的配额。 然后,列出了分配的配额,以及如何删除分配的配额。

当我们在/quota_example下面创建第三个子节点时,ZooKeeper日志文件中会显示以下警告消息,通知我们超出了配额:
超出配额消息

ZooKeeper还提供可配置的选项来控制服务的身份验证和授权。
zookeeper.DigestAuthenticationProvider.superDigest参数使ZooKeeper ensemble管理员能够以超级用户身份访问znode层次结构。 ZooKeeper服务不对通过身份验证的用户进行任何ACL检查。 此功能在默认情况下是禁用的。

要为超级用户生成Digest认证,可以使用参数super:<password>调用org.apache.zookeeper.server.auth.DigestAuthenticationProvider的Java系统属性。 一旦生成了Digest认证,需要在启动ZooKeeper服务器时提供super:<data>作为系统属性。

ZooKeeper客户端需要传递super:<password> Digest和认证数据方案来与ZooKeeper服务器进行认证。 在使用ZooKeeper shell时,可以使用addauth命令。

posted @   林本托  阅读(1404)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示