zookeeper的访问机制
访问控制列表:
简称ACL,在javaAPI中,创建znode 的时候,需要这个参数,练习中使用的是:ZooDefs.Ids.OPEN_ACL_UNSAFE(使用完全开发的ACL,允许客户端对znode进行读/写)
每个znode创建时都会带有一个ACL列表,用于决定谁可以对它执行何种操作。
客户端身份验证机制
ACL依赖与zookeeper的客户端身份验证机制。zookeeper提供一下几种身份验证方式:
- digest 通过用户名和密码来识别客户端
- sasl 通过Kerberos 类识别客户端
- ip 通过客户端的IP地址类识别客户端
在建立一个zookeeper的会话之后客户可以对自己进行身份验证。虽然znode的ACL列表会要求客户端是经过验证的,但是zookeeper的身份验证过程却是可选的,客户端必须自己进行身份验证来支持对znode的访问。
e.g:
// 使用digest方式(用户名和密码)进行身份验证
zk.addAuthInfo("digest"