The author of this article :HelloGitHub- Lao Xun

One 、 cause

A good start , It's half the battle .

I'm the author Lao Xun , An ordinary programmer , No, 985 and 211 The background of , I've never worked in a big factory . Just like to study technology , I've always wanted to do a complete series of explaining technology . And then I joined HelloGitHub Open source organization , With your encouragement and help , I started a series of lectures .

After discussion with the egg , Finally, the theme of this series is top open source project ZooKeeper hereinafter referred to as ZK.

ZooKeeper yes Apache A software project of the software foundation , It provides open source distributed configuration services for large-scale distributed computing 、 Synchronization services and name registration . ZooKeeper Used to be Hadoop A subproject of , Now it's a top independent open source project .

The reasons for choosing it are as follows :

  • ZK I used to be around last year , I've studied it for a while , It's just that I didn't make too many records at that time , Just look around for yourself , But it didn't sort it out , There is always a trace of regret in my heart

  • I am Java The programmer , So in terms of reading comprehension , Let's see Java The most intimate code , Most comfortable , And I've developed a certain degree of naked eye DEBUG Ability , You don't have to run the program to deduce the whole process in your head

  • ZK Itself is a basic coordination framework , And other programming languages also have corresponding clients , So the audience is quite wide , also ZK The architecture itself is distributed , It has a certain complexity , It's worth learning

  • ZK There are few books on the market ( Compare with MySQL or Redis) And it's based on ZK The old version of ( Not the latest version ), I want to do my best to contribute to the open source community

Two 、 Introduce

The series is based on the current ZK The latest version :3.6.2

This series is a continuation of HelloGitHub Of Hello The universe , The name for 「HelloZooKeeper」. The article is divided into several parts :

  • Basic introduction ( Installation and use )
  • Business process flow
  • Data memory model
  • The election
  • session management
  • Persistence & agreement
  • Interview questions
  • Configuration Daquan and other ZK Hidden features of

That's about it , Again because ZK The topic itself is quite big , On the other hand, limited by my level , There's no way to do everything 、 ing , So if there is a supplement later, I will make a single article , Add in .

3、 ... and 、 Content

Short step , A thousand miles .

Don't product the little stream , Beyond into the sea .

The explanation of principles will inevitably be linked with boredom , Egg and I are also communicating about what kind of form is easier for everyone to accept , And our goal is to hope that everyone can gain something from our article , So this time :

  • Basically do not explain the source of the way to explain ZK Principle

  • In the process of explanation, I will be empty (chui) structure (niu) A vivid story to help you understand

  • Try to use popular 、 Humorous language makes the complicated knowledge points clear 、 Make it clear

  • Focus on pictures , Words as a supplement , Try to reduce the reading burden of readers

  • From time to time in the article interspersed with some I think very funny network stem 、 emoticon , Further improve the readers' interest in reading

Before the start , There are two sentences I want to say in the front :

The opinions in the article are not necessarily objective facts , But it's all the result of my source code , At least in me Subjective cognition is correct conclusion , Do your best to be responsible to the readers . therefore , If you have any questions, please point out and discuss them , Don't leave a word :“ The garbage ” And went away . It's irresponsible !

When I started writing this series ZK The latest version is 3.6.2, If in the process of writing ZK Ushering in a major upgrade , I'm afraid it's not playing with me ? The version number will not change , For new features that are necessary , It will be introduced separately in the following single article . For fun and depth , Some of the examples cited in this article may not be accurate , It can only be said that we will try our best to get close to the facts and omit some unimportant processes at the same time , So as to reduce the reading burden of readers .

Four 、 expectation

HelloGitHub Wonderful because of you

Since it is HelloGitHub The series of products , How can it be less and GitHub The dream linkage of ?

We will provide a warehouse for articles , I hope you can put some suggestions about the article or about ZK Related discussion , stay issue Zone message :

https://github.com/HelloGitHub-Team/HelloZooKeeper/issues/new

I will try my best to reply to every reader , At the same time, if there are many people who have doubts about knowledge , It will also be collected through a single article , Arrangement issue After the unified answer .

Please don't be stingy with your message , Your message is likely to help other people with the same confusion , Let's put together HelloZooKeeper Build better ~

Friends at all stages , Can be added to The compilation and proofreading of the course in . welcome :

  • Novice : Participate in correcting the wrong words in the text 、 A sick sentence 、 spell 、 Typesetting and so on
  • Users : Participate in content discussion and problem solving 、 Things that help other people
  • old hand : Participate in the writing of the article , Make your name appear in the author column
  • I don't know how to program : Order one Star Support what we're doing !

Project address :https://github.com/HelloGitHub-Team/HelloZooKeeper

Notice : The next one is installation and getting started , Take you into ZooKeeper The world of . See you next week !

5、 ... and 、 Last

I am a HelloGitHub The marinated eggs :

Brother Xun is us HelloGitHub Java The leader of the technology group , He's a senior Java The programmer , Not only is the technology good 、 I love open source, and I'm humorous and humble . He often answers people's questions patiently in the group , I said that he made life by himself Java Group , He said :“ Don't say that , It's all the brothers in the group who support me !”

Written by Xun Ge'er HelloZooKeeper series , From planning to final release 2 months , In order to make boring words interesting , I drew 50 Multiple maps + And insert all kinds of interesting pictures , I believe you will like it . And to keep the series going , He finished 9 I just decided to start publishing , During the period, the quality of the article was constantly polished . With regard to my proposed amendment , He will seriously consider and adopt it while maintaining his own style of writing . The tutorial is also written in an open source and open way , Convenient for everyone to contribute and run , There will be sample projects to help understand later .

The serial articles explaining technology often have no good reading numbers , but HG I'll take this series (10+ piece ) From beginning to end ! Remain true to our original aspiration , I sincerely hope that readers can learn from 《 Explain open source projects 》 Learn something , Find fun and love open source .

HelloGitHub Thank you !


Focus on HelloGitHub official account Receive the first update .

There are more open source projects and treasure projects waiting for you to explore .

The opening : Free and open source ZooKeeper course ( Serial ) More articles about

  1. asp.Net Core Free open source distributed exception log collection framework Exceptionless Setup configuration and easy to use graphic tutorial

    I'm learning from Mr. Zhang Shanyou recently NanoFabric  I learned when I was working on the framework Exceptionless : https://exceptionless.com/ ! So I learned about this open source framework ! Following pair Exceptionl ...

  2. C# Implementation of multi-level subdirectories Zip Compression and decompression instance NET4.6 Under the UTC Time shift [ translate ]ASP.NET Core Web API Use in Oracle Database and Dapper Just read this one asp.Net Core Free open source distributed exception log collection framework Exceptionless Setup configuration and easy to use graphic tutorial asp.net core There are three solutions to add new fields asynchronously and to determine whether some fields are repeated .NET Core Development log

    C# Implementation of multi-level subdirectories Zip Compression and decompression instance Reference resources https://blog.csdn.net/lki_suidongdong/article/details/20942977 a key : Realize the compression of multi-level subdirectories , ...

  3. 【 turn 】asp.Net Core Free open source distributed exception log collection framework Exceptionless Setup configuration and easy to use graphic tutorial

    I'm learning from Mr. Zhang Shanyou recently NanoFabric  I learned when I was working on the framework Exceptionless : https://exceptionless.com/ ! So I learned about this open source framework ! Following pair Exceptionl ...

  4. How to open source for free ERP Odoo Build your team , Sales process and goals

    This quick step-by-step guide will guide you through Odoo CRM, Help you easily handle your sales channels , Always manage your sales channel from lead to account . To configure from  Odoo After the initialization , Generate your database , choice CRM As the first app install ...

  5. Croppic – Free and open source jQuery Image clipping plug-in

    Croppic This open source jQuery The image clipping plug-in can meet the different needs of website developers . Just simply upload the image , You can achieve the image zooming and clipping functions you want . Because of the use of HTML5 FormData   Yes ...

  6. 20 A free one AngularJS Resources and development tutorials

    once ,jQuery Undoubtedly the most popular open source JavaScript library , Now it has a lot of competitors , image AngularJS.React.KnockoutJS wait . ad locum , I want to focus on Angular ...

  7. Odoo : Store ordering and online signature free open source solution

    introduction Odoo It was developed in Europe , The world's number one open source free ERP System . The system comes from 2002 Start developing , After more than ten years of development , It was released in the second half of last year 12.0 edition . The software is free to download , Open source , It has attracted many people around the world to participate in the use and development of ...

  8. Free and open source KiCad EDA Collection and arrangement of Chinese materials (2019-04-30)

    Free and open source KiCad EDA Collection and arrangement of Chinese materials use KiCad It's been a while , For your own convenience , Sort it out KiCad In Chinese , It will be updated irregularly . Will collect KiCad News of . Component packaging Library . Application skills . Open source ...

  9. Net Core Free open source distributed exception log collection framework Exceptionless

    asp.Net Core Free open source distributed exception log collection framework Exceptionless Setup configuration and easy to use graphic tutorial https://www.cnblogs.com/yilezhu/p/9193723.htm ...

  10. turn Hand in hand to teach you the simplest open source project hosting GitHub Introductory tutorial

    Portal since google code After shutting down the download service ,GitHub As the best free open source project hosting site at present , Many open source projects are hosted in github, Some of them are famous players MPC-HC. Friends who are not used to English , difficult ...

Random recommendation

  1. java Member variables in inheritance relations , Construction method , Relationship between member methods

    Java Membership in succession A: Member variables a: The member variable name of the subclass is different from that of the parent class , It's too easy to write that name and visit that name ! b: The member variable name of the subclass is the same as that of the parent class , How to visit this ? Son ...

  2. ( turn ) elementary analysis CSS—— Elements overlap and position Positioning of the z-index The order

    Many times in the project html Unexpected overlap error in page elements , Most of them are still position In the case of positioning z-index The problem of . In fact, every time we solve similar problems, our thinking is roughly the same , After all, it's still true z-index My understanding is rather vague , Can solve the problem ...

  3. C++ Algorithm interface using reference

    C++ Algorithm interface reference Algorithm reference :[algorithm] compile :g++ -std=c++11 xxx_algorithm.cpp function :./a.out 1. Keep the original sequence operation all_of template ...

  4. JSTL Related use of

    index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UT ...

  5. Browser full screen requestFullScreen Full screen and F11 Full screen

    One . brief introduction There are two ways of full screen browser , One is HTML5 Newly added requestFullscree Full screen , The other is press F11 Full screen implementation , This article will explain the two full screen features and implementation code . Two .requestFullscreen whole ...

  6. Ruffian scale embedded : Voice processing tools Jays-PySPEECH Birth notes - Indexes

    Hello everyone , I'm ruffian Heng , It's a serious technical ruffian . This series of ruffian scales introduces you to the voice processing tools Jays-PySPEECH Be born . The intelligent voice interaction market has developed rapidly in recent years , One of its typical applications, smart speaker products, has now entered thousands of households , I'm very impressed by you ...

  7. Automatically determine the unit according to the file size B,KB,MB,GB

    <php> /** * File size formatting * @param integer $size Initial file size , Unit is byte * @return array Formatted file size and unit array , Unit is by ...

  8. vs Add library files to WinMM.Lib

    C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\WinMM.Lib;

  9. java Stream switching BASE64 Some of the problems

    java transformation BASE64 In the process , There are a lot of empty endings ! It's not clear why this is happening for the time being - ``` java // according to url Address converted to BASE64 public static String getURLIma ...

  10. Use JDBC Execute more than one statement at a time ( With MySQL For example )

    The prerequisites for reading this article : The most basic SQL sentence The most basic JDBC operation ( Insert a single record ) If you need to use it urgently, please look at the last code directly . stay JDBC in , The easiest way to modify a record is to use executeUpdate() ...