总结
虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。
架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。
如果你也想成为一名好的架构师,那或许这份Java成长笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。
get和stat的区别是get比stat多返回了节点数据:
[zk: localhost:2181(CONNECTED) 19] get /zookeeper/quota
cZxid = 0x0 #创建节点的id
ctime = Thu Jan 01 08:00:00 CST 1970 #节点的创建时间
mZxid = 0x0 #修改节点的id
mtime = Thu Jan 01 08:00:00 CST 1970 #修改节点的时间
pZxid = 0x0 #子节点的id
cversion = 0 #子节点的版本
dataVersion = 0 #当前节点数据的版本
aclVersion = 0 #权限的版本
ephemeralOwner = 0x0 #判断是否是临时节点
dataLength = 0 #数据的长度
numChildren = 0 #子节点的数量
create 创建节点
- create [-s] [-e] path data acl 可以注意一下各个版本的变化
-s: 创建顺序节点 自动累加(全局累加)
-e:创建临时节点
set path data [version] 修改节点
根据版本号修改
delete path [version] 删除节点
delete只能用来删除叶子节点,如果节点下有子节点的话则不能删除
rmr path
用来删除节点,与delete的区别是delete只能用来删除叶子节点,如果节点下有子节点的话则不能删除,则rmr可以删除非叶子节点,即节点下有子节点时仍可以删除节点,zk中的delete类似于Linux下的rmdir,只能用来删除空目录,而rmr则类似于rm -rf,不管目录下面有什么都递归删除
关于watcher机制大体的理解可以为,当每个节点发生变化,都会触发watcher事件,类似于mysql的触发器。zk中 watcher是一次性的,触发后立即销毁。可以参考https://blog.csdn.net/hohoo1990/article/details/78617336
-
stat path [watch]
设置watch事件 -
get path [watch]
设置watch事件 -
子节点创建和删除时触发watch事件,子节点修改不会触发该事件
stat path [watch] 设置watch事件
ZK的节点有5种操作权限:CREATE
、READ
、WRITE
、DELETE
、ADMIN
也就是 增、删、改、查、管理权限,这5种权限简写为crwda
(即:每个单词的首字符缩写)。
注:这5种权限中,delete
是指对子节点的删除权限,其它4种权限指对自身节点的操作权限
身份的认证有4种方式:
-
world
:默认方式,相当于全世界都能访问 -
auth
:代表已经认证通过的用户(cli中可以通过addauth digest user:pwd 来添加当前上下文中的授权用户) -
digest
:即用户名:密码这种方式认证,这也是业务系统中最常用的 -
ip
:使用Ip地址认证
使用[scheme:id:permissions]
来表示acl权限
getAcl:获取某个节点的acl权限信息
setAcl 设置权限
acl Auth 密码明文设置
acl digest 密码密文设置
acl ip 控制客户端
- 使用四字命令需要安装
nc
命令,(yum install nc
)
stat 查看状态信息
echo stat | nc 127.0.0.1 2181
ruok 查看zookeeper是否启动
echo ruok | nc 127.0.0.1 2181
dump 列出没有处理的节点,临时节点
echo dump | nc 127.0.0.1 2181
conf 查看服务器配置
echo conf | nc 127.0.0.1 2181
cons 显示连接到服务端的信息
echo cons | nc 127.0.0.1 2181
最后
终极手撕架构师的学习笔记:分布式+微服务+开源框架+性能优化
[外链图片转存中…(img-C1LUyxEF-1715328235024)]