赞
踩
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
面试官:呵呵、那你先说一说Zookeeper是什么吧
我:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,主要为了解决分布式架构下数据一致性问题,典型的应用场景有分布式配置中心、分布式注册中心、分布式锁、分布式队列、集群选举、分布式屏障、发布/订阅等场景。
面试官:嗯,Zookeeper是怎样的一个数据结构呢?
我:Zookeeper是一个类似于文件系统的数据结构,最外层我们可以想象成一个大的文件夹,里面都是一些小的文件夹。
================================================================================
面试官:嗯,Zookeeper有几种常用的数据格式呢?
我:Zookeeper中每一个子目录项都是一个znode(目录节点),这些目录节点和我们普通的目录一样可以新建、删除、修改,我们常用的主要有四种类型的znode。
1、持久化目录节点:
客户端与zookeeper断开连接后,该节点依旧存在,只要不手动删除该节点,他将永远存在。
2、持久化顺序编号目录节点:
客户端与zookeeper断开连接后,该节点依旧存在,只是zookeeper给该节点名称进行顺序编号。
3、临时目录节点:
客户端与zookeeper断开连接后,该节点被删除。
4、临时顺序编号目录节点:
客户端与zookeeper断开连接后,该节点被删除,只是zookeeper给该节点名称进行顺序编号。
================================================================================
面试官:嗯,Zookeeper有哪些核心的功能呢?
我:zookeeper有监听通知机制,如果对某个节点进行监听,当这个节点被删除,或者被修改时,监听方会感知到修改消息。
面试官:嗯,既然zookeeper有监听机制,那么可以监听到几种类型的变化呢?
我:可以监听到七种类型变化:
1、None:连接建立事件
2、NodeCreated:节点创建
3、NodeDeleted:节点删除
4、NodeDataChanged:节点数据变化
5、NodeChildrenChanged:子节点列表变化
6、DataWatchRemoved:节点监听被移除
7、ChildWatchRemoved:子节点监听被移除
面试官:我们在开发中使用Synchronized就可以保证线程安全了,为什么还需要使用zookeeper来实现分布式锁呢?
我:如果我们是单机情况下也就是只有一个进程的情况下使用Synchronized是可以保证线程安全的。但是分布式情况下是多个不同的进程,而不是一个进程里面不同的线程,所以Synchronized是无法保证多个进程安全的。
面试官:zookeeper节点有哪些重要信息呢,怎么进行查看?
我:zookeeper节点可以通过stat命令来查看主要信息,其中信息有:
1、cZxid:创建znode的事务id(Zxid的值)。
2、mZxid:最后修改znode的事务id。
3、pZxid:最后添加或删除子节点的事务id(子节点列表发生变化才会发生改变)。
4、ctime:znode创建时间。
5、mtime:znode最近修改时间。
6、dataVersion:znode的当前数据版本。
7、cversion:znode的子节点结果集版本(一个节点的子节点增加、删除都会影响这个版本)。
8、aclVersion:表示对此znode的acl版本。
9、ephemeralOwner:znode是临时znode时,表示znode所有者的sessionid,如果znode不是临时节点,则该字段设置为零。
10、dataLength:znode数据字段的长度。
面试官:zookeeper创建节点,和监听节点有哪些命令?
我:
1、创建持久节点:create /节点名称
2、创建持久顺序节点:create -s /节点名称
3、创建临时节点:create -e /节点名称
4、创建临时顺序节点:create -e -s /节点名称
5、监听节点:get -w /节点名称
================================================================================
面试官:zookeeper有哪些权限控制呢?
我:应该是按照大小个吧,谁个高谁说了算。
面试官:你特么找打是吧,数据那特么有大小个。。。
我:zookeeper有ACL( Access Control List )权限控制,可以控制节点的读写操作,保证数据的安全性,不然的话谁都可以创建和删除节点,那不就乱了套了。
面试官:ACL权限设置有几部分组成呢?
我:有三部分组成,分别是权限模式、授权对象、权限信息。
面试官:能具体说一说这三部分都代表什么吗?
我:权限模式: 就是zookeeper服务器进行权限验证的方式,比如手机解锁是用指纹还是用密码呢,如果用密码,知道密码的都可以解锁你的手机,如果用指纹,只有你自己的手指头可以解锁。所以权限模式大体分为两种类型:
1、范围验证: 范围就是zookeeper可以针对一个ip或者一段ip地址授予权限,相当于指纹解锁,我给我一个手指头,或者所有的脚指头都授予权限。
2、口令验证: 可以理解为用户名密码的方式,这种就相当于密码解锁了,知道了用户名密码后所有的人都相当于授予了权限。
授权对象: 授权对象就是把权限授予给谁,如果是范围验证方式,那么授权对象就是ip地址,如果是口令验证,授权对象就是用户名。
授权信息: 授权信息就是指我们具体的权力是什么,比如我们解锁手机后可以打游戏还是可以听歌,还是可以用手机砸核桃呢。
zookeeper中定义好的权限有5种:
1、数据节点(c:create)创建权限,授予权限的对象可以在数据节点下创建子节点。
2、数据节点(w:wirte)更新权限,授予权限的对象可以更新该数据节点。
3、数据节点(r:read)读取权限,授予权限的对象可以读取该节点的内容以及子节点的列表信息。
4、数据节点(d:delete)删除权限,授予权限的对象可以删除该数据节点的子节点。
5、数据节点(a:admin)管理者权限,授予权限的对象可以对该数据节点体进行ACL权限设置。
面试官:我们怎么查看和设置某个节点的ACL权限信息呢
我:可以通过getAcl来获取某个节点的权限信息,通过setAcl来设置某个节点的权限信息。
==============================================================================
面试官:zookeeper的数据是存储在内存中的吗,怎么进行持久化操作呢?
我:zookeeper和redis很像,数据都是在内存中的,持久化也是两种方式,一种是记录事务日志,一种是快照方式。
记录事务日志磁盘会进行IO操作,事务日志的不断增多会触发磁盘为文件开辟新的磁盘块,所以为了提升磁盘的效率,可以在创建文件的时候就向操作系统申请一块大一点的磁盘块,通过参数zookeeper.preAllocSize配置。
事务日志的存放地址通过zoo.cfg配置文件中的dataDir来指定。
面试官:小伙子真厉害啊,我这边没有什么要问的了,你还有什么问题要问(面试官两眼放光)
我:额。。。面试官这个我的纸质简历可以给我吗,可以不往我的简历上写写画画吗,我明天的面试还要用。
面试官:还面啥别的公司啊,就来我这吧,条件随便开
我:那就100k吧(此时面试官又拿起了他准备好的棍子)
作为过来人,小编是整理了很多进阶架构视频资料、面试文档以及PDF的学习资料,针对上面一套系统大纲小编也有对应的相关进阶架构视频资料
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-Uj1eTjTV-1713181355922)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-IrBFdFx5-1713181355922)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。