开头
学习如逆水行舟,尤其是IT行业有着日新月异的节奏。
而且现在这个浮躁而又拜金的社会,我相信很多人做技术并非出于热爱,只是被互联网的高薪吸引,毕竟技术岗位非常枯燥,不仅要面对奇奇怪怪的需求,还要不停的充实自己避免被淘汰。所以,我们更要抓紧每一次可以学习和进步的机会。没有撤退可言!
即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!
我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为明年的金三银四做准备!
正文
ZooKeeper 很流行,有个基本的疑问:
- ZooKeeper 是用来做什么的?
- 之前没有ZK,为什么会诞生 ZK?
OK,解答一下上面的疑问:(下面是凭直觉说的)
- ZooKeeper 是用于简化分布式应用开发的,对开发者屏蔽一些分布式应用开发过程中的底层细节
- ZooKeeper 对外暴露简单的 API,用于支持分布式应用开发
- ZooKeeper 在提供上述功能的同时,其还是一个 高性能、高可用、高可靠的分布式集群
上面说这么多,总结一下,ZK 能解决分布式应用开发的问题,ZK 能很好的解决问题。到这一步,疑问就更多了:
- 分布式应用开发,有哪些常见问题?ZK 是如何屏蔽这些底层细节的?
- ZooKeeper 对外暴露了那些 API?这些 API 如何支持分布式应用开发的?这些 API 还能简化吗?API 的语义性怎么样?
- ZooKeeper 自身是一个高性能、高可用、高可靠的分布式集群,那有个简单的问题:
- 高性能是指什么?ZooKeeper 为了达到高性能,做了哪些工作?
- 高可用同上
- 高可靠同上
Note:本篇 wiki 就是为了解决上述第一个疑问的。(其他疑问会在其他 blog 中逐步解答)
为什么有 ZooKeeper
一个应用程序,涉及多个进程协作时,业务逻辑代码中混杂有大量复杂的进程协作逻辑。