Zookeeper interview questions (30 ATM selected questions)

Code farmer architecture 2020-11-10 17:23:38
zookeeper interview questions atm selected

ZooKeeper Interview questions

ZooKeeper Interview questions  PDF download

1. ZooKeeper What is it? ?

ZooKeeper Is an open source distributed coordination service . It is a software that provides consistency services for distributed applications , Distributed applications can be based on Zookeeper Implementation such as data publishing / subscribe 、 Load balancing 、 Naming service 、 Distributed coordination / notice 、 Cluster management 、Master The election 、 Distributed lock and distributed queue .

ZooKeeper The goal is to encapsulate complex, error-prone, critical services , Will be simple to use interface and efficient performance 、 A stable system is provided to the user .

Zookeeper The following distributed consistency features are guaranteed :

  1. Sequential consistency
  2. Atomicity
  3. A single view
  4. reliability
  5. The real time ( Final consistency )

The client's read request can be processed by any machine in the cluster , If the read request registers a listener on the node , This monitor is also connected by zookeeper Machine to deal with . For write requests , These requests will be sent to others at the same time zookeeper After the machine and the agreement , The request will return success . therefore , With zookeeper More cluster machines , The throughput of read requests will increase, but the throughput of write requests will decrease .

Order is zookeeper A very important feature of , All updates are global and orderly , Each update has a unique timestamp , This timestamp is called zxid(Zookeeper Transaction Id). And read requests are only ordered relative to updates , That is to say, the return result of the read request will contain this zookeeper Abreast of the times zxid.

2. ZooKeeper What is offered ?

  1. file system
  2. A notification mechanism

3. Zookeeper file system

Zookeeper Provides a multi-level node namespace ( Nodes are called znode). Unlike file systems , These nodes can set the associated data , In the file system, only file nodes can store data, but directory nodes can't .

Zookeeper To ensure high throughput and low latency , The tree structure is maintained in memory , This characteristic makes Zookeeper It can't be used to store large amounts of data , The upper limit of data storage for each node is 1M.

4. Zookeeper How do I keep the state of master and slave nodes synchronized ?

Zookeeper At the heart of that is the atomic broadcasting mechanism , This mechanism ensures that server Synchronization between . The protocol that implements this mechanism is called Zab agreement .Zab There are two modes of protocol , They are recovery mode and broadcast mode .

Recovery mode

When the service starts or after the leader crashes ,Zab It's in recovery mode , When leaders are elected , And most of them server Finished and leader After status synchronization of , Recovery mode is over . State synchronization ensures leader and server Have the same system state .

Broadcast mode

once leader Already with most of follower After state synchronization , It can start broadcasting news , That is to say, enter the broadcast state . At this time when a server Join in ZooKeeper In service , It will start in recovery mode , Find out leader, And on and on leader State synchronization . By the end of synchronization , It also participates in the news broadcast .ZooKeeper The service has been maintained at Broadcast state , until leader Collapsed or leader Lost most of followers Support .

5. Four types of data nodes Znode

  1. PERSISTENT- Persistent node : Unless you delete , Otherwise, nodes always exist in Zookeeper On
  2. EPHEMERAL- Temporary node : The lifecycle of the temporary node is bound to the client session , Once the client session fails ( The client and zookeeper Disconnection does not necessarily invalidate the session ), All temporary nodes created by this client will be removed .
  3. PERSISTENT_SEQUENTIAL- Persistent order nodes : Basic features are the same as persistent nodes , Just added the order attribute , After the node name, an auto increasing integer number maintained by the parent node will be appended .
  4. EPHEMERAL_SEQUENTIAL- Temporary order node : The basic characteristics are the same as the temporary nodes , Added order attribute , After the node name, an auto increasing integer number maintained by the parent node will be appended .

6. Zookeeper Watcher Mechanism – Data change notice

Zookeeper Allow the client to send a message to the server Znode Sign up for a Watcher monitor , When some specified events on the server trigger this Watcher, The server will send an event notification to the specified client to realize the distributed notification function , The client then responds by Watcher Notification status and event types make business changes .

Working mechanism :

  1. Client registration watcher
  2. Server-side processing watcher
  3. Client callback watcher

Watcher Feature summary :

①. Disposable

Whether it's the server or the client , Once a Watcher By touch Hair ,Zookeeper Will be removed from the corresponding storage . This design effectively reduces the pressure on the server , Otherwise, for nodes that update very frequently , The server will continuously send event notifications to the client , No matter for the network or the server, the pressure is very big .

②. Client serial execution

client Watcher The callback process is a serial synchronization process .

③. Light weight

Watcher The notice is very simple , It only tells the client that an event has occurred , It will not explain the specific content of the event .

The client registers with the server Watcher When , It doesn't make the client real Watcher The object entity is passed to the server , It's only used in client requests boolean The type attribute is marked .

④. watcher event Send asynchronously watcher Notification events for from server Send to client It's asynchronous , There is a problem , Between different clients and servers socket communicate , Due to network delay or other factors, the client listens for events when it is not available , because Zookeeper It provides ordering guarantee, That is, after the client listens to the event , To feel what it's monitoring znode There is a change . So we use Zookeeper You can't expect to be able to monitor every change in a node .Zookeeper Only ultimate consistency can be guaranteed , There is no guarantee of strong consistency .

⑤. register watcher getData、exists、getChildren

⑥. Trigger watcher create、delete、setData

⑦. When a client connects to a new server ,watch Will be triggered by any session event . When you lose connection to a server , Is unable to receive watch Of . And when client When reconnecting , If necessary , All previously registered watch, Will be re registered . Usually it's completely transparent . Only in a special case ,watch May lose : For an uncreated znode Of exist watch, If it is created during client disconnection , And then I deleted it before connecting to the client , In this case , This watch Events may be lost .

7. Client registration Watcher Realization

  1. call getData()/getChildren()/exist() Three API, Pass in Watcher object
  2. Tag request request, encapsulation Watcher To WatchRegistration
  3. Encapsulated into Packet object , Send to the server request
  4. After receiving the server response , take Watcher Sign up to ZKWatcherManager Ongoing management
  5. Request returns , To complete the registration .

8. Server-side processing Watcher Realization

① Server receive Watcher And store

Client request received , Process the request to determine if registration is required Watcher, If necessary, the node path of the data node and ServerCnxn(ServerCnxn Represents the connection between a client and a server , Realized Watcher Of process Interface , It can be seen as a Watcher object ) Stored in WatcherManager Of WatchTable and watch2Paths In the middle .

②Watcher Trigger

Receive... On the server setData() Transaction request trigger NodeDataChanged Event as an example :

  1. encapsulation WatchedEvent

Will notify status (SyncConnected)、 Event type (NodeDataChanged) And encapsulate the node path into a WatchedEvent object

  1. Inquire about Watcher

from WatchTable Search according to the node path Watcher

  1. Did not find ; It indicates that no client has registered on the data node Watcher
  2. find ; Extract and extract from WatchTable and Watch2Paths Delete the corresponding Watcher( You can see it here Watcher It's one-time on the server side , One trigger will fail )

③ call process Method to trigger Watcher

here process Mainly through ServerCnxn Corresponding TCP Connect to send Watcher Event notification .

9. Client callback Watcher

  1. client SendThread Thread receives event notification , Leave it to EventThread Thread callback Watcher.
  2. Client's Watcher The mechanism is also one-off , Once triggered , The Watcher Is failure .

10. ACL Authority control mechanism


Currently in Linux/Unix File system , It is also the most widely used way of authority control . It is a coarse-grained file system permission control mode .

ACL(Access Control List) Access control list

It includes three aspects :

Access mode (Scheme)

    1. IP: from IP Address granularity for permission control
    2. Digest: The most commonly used , Use something similar to username:password For permission configuration , It is convenient to distinguish different applications for authority control
    3. World: The most open way of authority control , It's a special kind digest Pattern , There is only one permission token “world:anyone”
    4. Super: The super user

Authorized person

The authorized object refers to the user or a specified entity given permission , for example IP Address or machine light .

jurisdiction Permission

  1. CREATE: Data node creation permission , Allow authorized objects in this Znode Create a child node
  2. DELETE: Delete permission of child node , Allow the authorization object to delete the child nodes of this data node
  3. READ: Read permission of data node , Allow the authorized object to access the data node and read its data content or list of child nodes, etc
  4. WRITE: Data node update permission , Allow the authorized object to update the data node
  5. ADMIN: Data node management authority , The authorization object is allowed to ACL Related setting operation

11. Chroot characteristic

3.2.0 After version , Added Chroot characteristic , This feature allows each client to set a namespace for itself . If a client is set up Chroot, Then any operation of the client to the server , Will be limited to its own namespace .

By setting Chroot, Be able to apply a client to Zookeeper A subtree on the server side corresponds to , In those multiple applications, there is one Zookeeper In the group scene , It is very helpful to realize the isolation between different applications .

12. session management

Bucket strategy : Manage similar sessions in the same block , For convenience Zookeeper The session is isolated in different blocks and the same block is processed in a unified way .

The principle of distribution : Every conversation “ Time out next time ”(ExpirationTime)

Calculation formula :

ExpirationTime_ = currentTime + sessionTimeout

ExpirationTime = (ExpirationTime_ / ExpirationInrerval + 1) *

ExpirationInterval , ExpirationInterval Refer to Zookeeper Session timeout check interval , Default tickTime

13. Server role


  1. The only scheduler and processor of a transaction request , Ensure the sequence of cluster transactions
  2. The dispatcher of each service within the cluster


  1. Handle non transactional requests from clients , Forward the transaction request to Leader The server
  2. Participate in transaction request Proposal Vote for
  3. Participate in Leader The election vote


  1. 3.0 A server role introduced after version , Improve the non transaction processing ability of the cluster without affecting the transaction processing ability of the cluster
  2. Handle non transactional requests from clients , Forward the transaction request to Leader The server
  3. Don't vote in any way

14. Zookeeper Next Server Working state

The server has four states , Namely LOOKING、FOLLOWING、LEADING、OBSERVING.

  1. LOOKING: Look for look for Leader state . When the server is in this state , It will assume that there is no Leader, So we need to enter Leader Election status .
  2. FOLLOWING: Follower status . Indicates that the current server role is Follower.
  3. LEADING: Leadership status . Indicates that the current server role is Leader.
  4. OBSERVING: Observer status . Indicates that the current server role is Observer.

15. Data synchronization

The whole cluster is finished Leader After the election ,Learner(Follower and Observer Is called ) back Leader Server to register . When Learner The server wants to Leader After the server is registered , Enter data synchronization .

Data synchronization process :( All in the way of message delivery )

Learner towards Learder register

Data synchronization

Synchronous confirmation

Zookeeper There are four types of data synchronization :

  1. Direct differentiation synchronization (DIFF Sync )
  2. First roll back and then differential synchronization (TRUNC+DIFF Sync )
  3. Roll back synchronization only (TRUNC Sync )
  4. Full amount of synchronization (SNAP Sync )

Before data synchronization ,Leader The server will complete data synchronization initialization :


  1. from learner Sent when the server registers ACKEPOCH Extract... From the message lastZxid( The Learner The last thing the server does ZXID)


Leader The server Proposal Cache queue committedLog Medium minimum ZXIDmaxCommittedLog:

  1. Leader The server Proposal Cache queue committedLog The largest of ZXID Direct differentiation synchronization (DIFF Sync )
  2. scene :peerLastZxid Be situated between minCommittedLog and maxCommittedLog First roll back and then differential synchronization (TRUNC+DIFF Sync )
  3. scene : When new Leader The server found a Learner The server contains a transaction record that it does not have , Then we need to let the Learner The server rolls back the transaction – Roll back to Leader There is... On the server , At the same time, it is the closest to peerLastZxid Of ZXID Roll back synchronization only (TRUNC Sync )
  4. scene :peerLastZxid Greater than maxCommittedLog

Full amount of synchronization (SNAP Sync )

  1. Scene one :peerLastZxid Less than minCommittedLog
  2. Scene two :Leader There is no... On the server Proposal Cache queues and peerLastZxid It's not equal to lastProcessZxid

16. zookeeper How to ensure the order consistency of transactions ?

zookeeper A global incremental transaction is used Id To mark , be-all proposal( proposal ) It was added when it was proposed zxid,zxid It's actually a 64 Digit number , high 32 Is it epoch( period ; An era ; the ; The new age ) Used to identify leader cycle , If there's a new one leader To produce ,epoch Will increase by itself , low 32 Bits are used to increment the count . When new things come into being proposal When , According to the two-stage process of database , First of all, I'll talk to others server Issue transaction execution request , If more than half of the machines can execute and succeed , Then it will start to execute .

17. Why do distributed clusters have Master Master node ?

In a distributed environment , Some business logic only needs one machine in the cluster to execute , Other machines can share this result , This can greatly reduce the repeated calculation , Improve performance , So we need to do leader The election .

18. zk How are node outages handled ?

Zookeeper It's also a cluster , The recommended configuration is no less than 3 Servers .Zookeeper We also need to ensure that when a node goes down , Other nodes will continue to provide services .

If it's a Follower Downtime , also 2 Servers provide access , because Zookeeper There are multiple copies of the data on , Data is not lost ;

If it's a Leader Downtime ,Zookeeper New ones will be elected Leader.

ZK The mechanism of clustering is that as long as more than half of the nodes are normal , The cluster can provide services normally . Only in ZK Too many nodes , Only half or less of the nodes can work , Clusters fail .


  1. 3 Of nodes cluster You can hang up 1 Nodes (leader You can get 2 ticket >1.5)
  2. 2 Of nodes cluster You can't hang up on anything 1 There are nodes (leader You can get 1 ticket <=1)

19. zookeeper Load balancing and nginx Load balancing difference

zk The load balance of can be adjusted ,nginx Just being able to adjust the weight , Others that need to be controlled need to write their own plug-ins ; however nginx The throughput ratio of zk Much larger , We should say which way to choose by business .

20. Zookeeper What are several deployment modes ?

Zookeeper There are three deployment modes :

  1. Single deployment : Running on a cluster ;
  2. Cluster deployment : Multiple cluster operation ;
  3. Pseudo cluster deployment : One cluster starts multiple Zookeeper Instance operation .

21. Cluster at least a few machines , What are the rules of clustering ? In the cluster has 3 Servers , One of the nodes is down , This is the time Zookeeper Is it still usable ?

The cluster rule is 2N+1 platform ,N>0, namely 3 platform . Can continue to use , As long as less than half of the singular servers are down, they can continue to be used .

22. Does the cluster support dynamic addition of machines ?

In fact, it is the horizontal expansion ,Zookeeper Not so good in this respect . Two ways :

Restart all : Close all Zookeeper service , Change the configuration and start . Does not affect previous client sessions .

Restart one by one : Under the principle that more than half of life is available , The restart of a machine does not affect the external service provided by the whole cluster . This is a common way .

3.5 The version starts to support dynamic expansion .

23. Zookeeper For nodes watch Are monitoring notifications permanent ? Why not forever ?

No . official declaration : One Watch Event is a one-time trigger , When it's set Watch When the data has changed , The server sends the change to the settings Watch The client of , In order to inform them .

Why not forever , for instance , If the server changes frequently , In many cases, the listening client , Every change should be notified to all clients , Put a lot of pressure on the network and servers .

It's usually client execution getData(“/ node A”,true), If node A There has been a change or deletion , The client will get it watch event , But after that node A Another change has taken place , And the client has no settings watch event , No more sending to the client .

in application , In many cases , Our client does not need to know every change of the server , I just need the latest data .

24. Zookeeper Of java What does the client have ?

java client :zk Self contained zkclient And Apache Open source Curator.

25. chubby What is it? , and zookeeper What do you think ?

chubby yes google Of , Complete realization paxos Algorithm , Not open source .zookeeper yes chubby Open source implementation , Use zab agreement ,paxos Variations of the algorithm .

26. Say a few zookeeper Common commands .

Common commands :ls get set create delete etc. .

27. ZAB and Paxos The relation and difference of algorithm ?

The same thing :

  1. There is a similarity between the two Leader The role of the process , It is responsible for coordinating multiple Follower Running process
  2. Leader The process will wait for more than half of Follower After giving the right feedback , To submit a proposal
  3. ZAB Agreement , Every Proposal All of them contain a epoch Value to represent the current Leader cycle ,Paxos The Chinese name is Ballot

Difference :

  1. ZAB It is used to build a highly available distributed data primary and secondary system (Zookeeper),Paxos It is used to build a distributed consistency state machine system .

28. Zookeeper Typical application scenarios

Zookeeper It's a typical release / The distributed data management and coordination framework of subscription mode , Developers can use it to publish and subscribe distributed data .

Through to Zookeeper The rich data nodes in are used in cross , coordination Watcher Event notification mechanism , It is very convenient to build a series of core functions that will be involved in distributed applications , Such as :

  1. Data Publishing / subscribe
  2. Load balancing
  3. Naming service
  4. Distributed coordination / notice
  5. Cluster management
  6. Master The election
  7. Distributed lock
  8. Distributed queues

Data Publishing / subscribe


Data Publishing / Subscription system , The so-called configuration center , As the name implies, publishers publish data for subscribers to subscribe to .


Get data dynamically ( Configuration information )

Implementation data ( Configuration information ) Centralized management and dynamic update of data

  1. Design patterns
  2. Push Pattern
  3. Pull Pattern

data ( Configuration information ) characteristic

  1. The amount of data is usually small
  2. Data content is dynamically updated at run time
  3. The machines in the cluster share , Consistent configuration

Such as : Machine list information 、 Run time switch configuration 、 Database configuration information, etc

be based on Zookeeper How to implement

  1. data storage : Put the data ( Configuration information ) Store in Zookeeper A data node on
  2. Data acquisition : The application starts the initialization node from Zookeeper Data nodes read data , And register a data change on this node Watcher
  3. Data changes : When changing data , to update Zookeeper Corresponding node data ,Zookeeper Data change notification will be sent to each client , After receiving the notice, the client can read the changed data again .

Load balancing

zk The naming service

Naming service is to obtain the address of a resource or service by a specified name , utilize zk Create a global path , This path can be used as a name , Point to the cluster in the cluster , Address of the service provided , Or a remote object and so on .


Distributed notification and coordination

For system scheduling : The operator actually changes the status of a node through the console , then zk Send these changes to the watcher All clients of .

For the performance report : Each worker process creates a temporary node in a directory . And carry the progress data of the work , In this way, the summarized process can monitor the changes of the directory sub nodes to obtain the real-time global situation of the work progress .


zk The naming service ( file system )

Naming service is to obtain the address of a resource or service by a specified name , utilize zk Create a global path , It's the only way , This path can be used as a name , Point to the cluster in the cluster , Address of the service provided , Or a remote object and so on .

zk Configuration management ( file system 、 A notification mechanism )


The program is distributed on different machines , Put the configuration information of the program in zk Of znode Next , When a configuration changes , That is to say znode When something changes , By changing zk The contents of a directory node in , utilize watcher Notify each client , To change the configuration .

Zookeeper Cluster management ( file system 、 A notification mechanism )

Cluster management doesn't care about two things : Whether there are machines to exit and join 、 The election master.

For the first point , All machine conventions create temporary directory nodes in the parent directory , Then listen to the parent directory node

Child node change message for . Once a machine hangs up , The machine and zookeeper Is disconnected , The temporary directory node it created is deleted , All other machines are notified : A sibling directory was deleted , therefore , Everybody knows that : It's on board .

New machines are similar , All machines are notified : New brother directory added ,highcount Have a , For the second point , Let's change it a little bit , All machines create temporary sequence number directory nodes , Select the machine with the smallest number as master Just fine .


Zookeeper Distributed lock ( file system 、 A notification mechanism )

With zookeeper The consistency file system , The problem of locks becomes easy . There are two types of lock services , One is to keep exclusive , The other is to control the timing .

For the first category , We will zookeeper On the one znode Think of it as a lock , adopt createznode The way to achieve . All clients are going to create /distribute_lock node , Finally, the client successfully created owns the lock . Delete the self created distribute_lock The node releases the lock .

For the second category , /distribute_lock Already exist in advance , All clients create temporary sequence number directory nodes under it , And choose master equally , Get the lock with the smallest number , Use up delete , Convenient in turn .


Zookeeper Queue management ( file system 、 A notification mechanism )

Two types of queues :

Synchronous queue , When the members of a queue gather , This queue is only available , Otherwise, wait for all members to arrive .

Queue by FIFO Mode of entry and exit operation .

  1. The first category , Create a temporary directory node under the contract directory , Whether the number of listening nodes is the number we require .
  2. The second category , It is consistent with the basic principle of control sequence scenario in distributed lock service , It's numbered , List by number . Create... In a specific directory PERSISTENT_SEQUENTIAL node , When the creation is successful Watcher Notification waiting queue , The queue deletes the node with the smallest serial number for consumption . In this scenario Zookeeper Of znode Used for message store ,znode The stored data is the message content in the message queue ,SEQUENTIAL The sequence number is the number of the message , Take it out in order . Because the created node is persistent , So don't worry about the loss of queue messages .

29. Zookeeper What are the features ?

  1. Cluster management : Monitor node survival status 、 Running requests, etc ;
  2. Primary node election : After the primary node hangs up, you can start a new round of primary election from the standby node , The main node election is the process of this election , Use Zookeeper Can help with this process ;
  3. Distributed lock :Zookeeper Two types of locks are available : An exclusive lock 、 Shared lock . An exclusive lock means that only one thread at a time can use the resource , Shared lock is read lock sharing , Reading and writing are mutually exclusive , That is, multiple threads can read the same resource at the same time , If you want to use a write lock, you can only use one thread .Zookeeper Distributed locks can be controlled .
  4. Naming service : In distributed systems , By using the naming service , The client application can get the address of the resource or service according to the specified name , Information such as providers .

30. The way Zookeeper Notification mechanism of ?

client End to end znode Build a watcher event , When it's time to znode When something changes , these client Will receive zk The notice of , then client According to znode Change to make business changes, etc .

31. Zookeeper and Dubbo The relationship between ?

Zookeeper The role of :

zookeeper Used to register services and load balance , Which service is provided by which machine must let the caller know , In a nutshell ip The correspondence between address and service name . Of course, this correspondence can also be implemented in the caller's business code by hard coding , But if the machine that provides the service fails, the caller cannot know , If you don't change the code, you will continue to request the suspended machine to provide services .zookeeper Through the heartbeat mechanism, you can detect the machine that is down and put the machine's ip And service correspondence is removed from the list . As for supporting high concurrency , Simply put, it's horizontal expansion , Increase the computing power by adding machines without changing the code . By adding new machines to zookeeper Registration service , More service providers can serve more customers .


It's a tool for managing the middle tier , There are a lot of service access and service providers need to be scheduled between the business layer and the data warehouse ,dubbo Provide a framework to solve this problem .

Notice the dubbo It's just a framework , What you put on the shelf is entirely up to you , It's like a car skeleton , You need your wheel engine . In order to complete the scheduling in this framework, there must be a distributed registry , Store metadata for all services , You can use it. zk, You can also use other , It's just that everybody uses zk.

zookeeper and dubbo The relationship between :

Dubbo The registry will be abstracted , It can be connected to different storage media to provide services to the registry , Yes ZooKeeper,Memcached,Redis etc. .

Introduced ZooKeeper As a storage medium , Just put ZooKeeper The characteristics of . The first is load balancing , The capacity of a single registry is limited , When the flow reaches a certain level Then we need to divert , Load balancing exists for shunting , One ZooKeeper The group cooperates with the corresponding Web Applications can easily achieve load balancing ; Resources synchronization , Load balancing alone is not enough , Data and resources between nodes need to be synchronized ,ZooKeeper Cluster has such function naturally ; Naming service , Use the tree structure to maintain a global list of service addresses , The service provider is starting When , towards ZooKeeper Specified node on /dubbo/${serviceName}/providers Write your own URL Address , This operation completes the service release . Other features are Mast The election , Distributed locks, etc .

本文为[Code farmer architecture]所创,转载请带上原文链接,感谢

  1. 【计算机网络 12(1),尚学堂马士兵Java视频教程
  2. 【程序猿历程,史上最全的Java面试题集锦在这里
  3. 【程序猿历程(1),Javaweb视频教程百度云
  4. Notes on MySQL 45 lectures (1-7)
  5. [computer network 12 (1), Shang Xuetang Ma soldier java video tutorial
  6. The most complete collection of Java interview questions in history is here
  7. [process of program ape (1), JavaWeb video tutorial, baidu cloud
  8. Notes on MySQL 45 lectures (1-7)
  9. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  10. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  11. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  12. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  13. 【递归,Java传智播客笔记
  14. [recursion, Java intelligence podcast notes
  15. [adhere to painting for 386 days] the beginning of spring of 24 solar terms
  16. K8S系列第八篇(Service、EndPoints以及高可用kubeadm部署)
  17. K8s Series Part 8 (service, endpoints and high availability kubeadm deployment)
  18. 【重识 HTML (3),350道Java面试真题分享
  19. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  20. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  21. [re recognize HTML (3) and share 350 real Java interview questions
  22. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  23. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  24. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  25. RPC 1: how to develop RPC framework from scratch
  26. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  27. RPC 1: how to develop RPC framework from scratch
  28. 一次性捋清楚吧,对乱糟糟的,Spring事务扩展机制
  29. 一文彻底弄懂如何选择抽象类还是接口,连续四年百度Java岗必问面试题
  30. Redis常用命令
  31. 一双拖鞋引发的血案,狂神说Java系列笔记
  32. 一、mysql基础安装
  33. 一位程序员的独白:尽管我一生坎坷,Java框架面试基础
  34. Clear it all at once. For the messy, spring transaction extension mechanism
  35. A thorough understanding of how to choose abstract classes or interfaces, baidu Java post must ask interview questions for four consecutive years
  36. Redis common commands
  37. A pair of slippers triggered the murder, crazy God said java series notes
  38. 1、 MySQL basic installation
  39. Monologue of a programmer: despite my ups and downs in my life, Java framework is the foundation of interview
  40. 【大厂面试】三面三问Spring循环依赖,请一定要把这篇看完(建议收藏)
  41. 一线互联网企业中,springboot入门项目
  42. 一篇文带你入门SSM框架Spring开发,帮你快速拿Offer
  43. 【面试资料】Java全集、微服务、大数据、数据结构与算法、机器学习知识最全总结,283页pdf
  44. 【leetcode刷题】24.数组中重复的数字——Java版
  45. 【leetcode刷题】23.对称二叉树——Java版
  46. 【leetcode刷题】22.二叉树的中序遍历——Java版
  47. 【leetcode刷题】21.三数之和——Java版
  48. 【leetcode刷题】20.最长回文子串——Java版
  49. 【leetcode刷题】19.回文链表——Java版
  50. 【leetcode刷题】18.反转链表——Java版
  51. 【leetcode刷题】17.相交链表——Java&python版
  52. 【leetcode刷题】16.环形链表——Java版
  53. 【leetcode刷题】15.汉明距离——Java版
  54. 【leetcode刷题】14.找到所有数组中消失的数字——Java版
  55. 【leetcode刷题】13.比特位计数——Java版
  56. oracle控制用户权限命令
  57. 三年Java开发,继阿里,鲁班二期Java架构师
  58. Oracle必须要启动的服务
  59. 万字长文!深入剖析HashMap,Java基础笔试题大全带答案
  60. 一问Kafka就心慌?我却凭着这份,图灵学院vip课程百度云