12. ZooKeeper配额和认证
ZooKeeper具有与其数据模型相关的可配置配额(quota)。 可以设置znode上的配额限制和存储的数据量。如果ZooKeeper命名空间中的一个子树超出与其关联的配额,ZooKeeper会在日志中打印警告消息。但是,如果超出指定的配额,操作并不会取消。
ZooKeeper配额存储在/zookeeper/quota
路径的ZooKeeper树中。 可以从ZooKeeper客户端API和ZooKeeper Java shell中设置,列出和删除配额。 以下截图显示了使用对应set
,list
和del
命令的结果:
在上面的示例中,创建了一个/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
命令。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?