搭建JEESZ分散式架構6--ZooKeeper 集群的安裝

来源:http://www.cnblogs.com/xiaomianaocc/archive/2017/05/11/6841832.html
-Advertisement-
Play Games

ZooKeeper是一個分散式開源框架,提供了協調分散式應用的基本服務,它向外部應用暴露一組通用服務——分散式同步(Distributed Synchronization).命名服務(Naming Service).集群維護(Group Maintenance)等,簡化分散式應用協調及其管理的難度, ...


 ZooKeeper是一個分散式開源框架,提供了協調分散式應用的基本服務,它向外部應用暴露一組通用服務——分散式同步(Distributed Synchronization).命名服務(Naming Service).集群維護(Group Maintenance)等,簡化分散式應用協調及其管理的難度,提供高性能的分散式服務。ZooKeeper本身可以以Standalone模式安裝運行,不過它的長處在於通過分散式ZooKeeper集群(一個Leader,多個Follower),基於一定的策略來保證ZooKeeper集群的穩定性和可用性,從而實現分散式應用的可靠性。(我是網上抄寫的,方便大家學習,請勿吐槽!!)

Dubbo 建議使用 Zookeeper 作為服務的註冊中心。 

Zookeeper 集群中只要有過半的節點是正常的情況下,那麼整個集群對外就是可用的。

正是基於這個 特性,要將 zookeeper集群的節點數量要為奇數(2n+1:如 3、5、7 個節點)

聲明:以上都是官網的原話,此教程主要是供大家學習,請各位不要吐槽

根據您自己的業務來決定伺服器配置,我這邊定義了三台伺服器,如下:

伺服器1:xxx.xxx.xxx.xx1  埠:2181、2881、3881 

伺服器2:xxx.xxx.xxx.xx2  埠:2182、2882、3882 

伺服器3:xxx.xxx.xxx.xx3  埠:2183、2883、3883

1、 修改操作系統的/etc/hosts 文件,添加 IP 與主機名映射:

[root@cloud   ~]# vi /etc/hosts

# zookeeper servers

xxx.xxx.xxx.xx1 jeesz-zk-01

xxx.xxx.xxx.xx2 jeesz-zk-02

xxx.xxx.xxx.xx3 jeesz-zk-03

2、 下載或上傳 zookeeper-3.4.6.tar.gz 到/home/jeesz/zookeeper 目錄:

[root@cloud   ~]# cd/home/jeesz/zookeeper

$ wgethttp://apache.fayea.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

3、 由於我已經下載並上傳了文件,故這邊直接記錄詳細的安裝過程,解壓 zookeeper 安裝包,並按節點號對 zookeeper 目錄重命名:

[root@cloud   zookeeper]# tar -zxvfzookeeper-3.4.6.tar.gz

在xxx.xxx.xxx.xx1伺服器:

[root@cloud   zookeeper]# mvzookeeper-3.4.6 node-01

在xxx.xxx.xxx.xx2伺服器:

[root@cloud   zookeeper]# mvzookeeper-3.4.6 node-02

在xxx.xxx.xxx.xx3伺服器:

[root@cloud  zookeeper]# mvzookeeper-3.4.6 node-03

4、 分別在 zookeeper 節點目錄下創建以下目錄:

[root@cloud  ~]# /home/jeesz/zookeeper/node-0X (X 代表節點號 1、2、3)

[root@cloud  node-0X]# mkdirdata

[root@cloud  node-0X] # mkdirlogs

5、 將 zookeeper/node-0X/conf 目錄下的 zoo_sample.cfg 文件拷貝一份,命名為 zoo.cfg:

[root@cloud  conf] cp zoo_sample.cfgzoo.cfg

6、 修改 zoo.cfg 配置文件:

[root@cloud conf] # vi zoo.cfg

zookeeper/node-01 的配置(/home/jeesz/zookeeper/node-01/conf/zoo.cfg)如下:

dataDir=/home/jeesz/zookeeper/node-01/data

dataLogDir=/home/jeesz/zookeeper/node-01/logs

clientPort=2181

server.1=jeesz-zk-01:2881:3881

server.2=jeesz-zk-02:2882:3882

server.3=jeesz-zk-03:2883:3883

 

zookeeper/node-02 的配置(/home/jeesz/zookeeper/node-02/conf/zoo.cfg)如下:

dataDir=/home/jeesz/zookeeper/node-02/data

dataLogDir=/home/jeesz/zookeeper/node-02/logs

clientPort=2182

server.1=jeesz-zk-01:2881:3881

server.2= jeesz -zk-02:2882:3882

server.3= jeesz -zk-03:2883:3883

zookeeper/node-03 的配置(/home/jeesz/zookeeper/node-03/conf/zoo.cfg)如下:

dataDir=/home/jeesz/zookeeper/node-03/data

dataLogDir=/home/jeesz/zookeeper/node-03/logs

clientPort=2183

server.1= jeesz-zk-01:2881:3881

server.2= jeesz-zk-02:2882:3882

server.3= jeesz-zk-03:2883:3883

7、 在dataDir=/home/jeesz/zookeeper/node-0X/data 下創建 myid 文件

編輯 myid 文件,併在對應的IP 的機器上輸入對應的編號。如在 node-01 上,myid文件內容就是

1,node-02 上就是 2,node-03 上就是 3:

[root@cloud  ~]# vi/home/jeesz/zookeeper/node-01/data/myid 

1

[root@cloud  ~]# vi/home/jeesz/zookeeper/node-02/data/myid 

2

[root@cloud  ~]# vi/home/jeesz/zookeeper/node-03/data/myid 

3

8、 在防火牆中打開要用到的埠 218X、288X、388X

[root@cloud  ~]# vi/etc/sysconfig/iptables

如伺服器 01 增加以下 3 行:

## zookeeper

-A INPUT -m state --state NEW -m tcp -p tcp--dport 2181 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp--dport 2881 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp--dport 3881 -j ACCEPT

重啟防火牆:

[root@cloud  ~]# serviceiptables restart

查看防火牆埠狀態:

[root@cloud  ~]# serviceiptables status

註意:centos7中使用方法不同,大家可以上網查詢一下

9、 啟動並測試 zookeeper(要用 jeesz 用戶啟動,不要用 root):

(1) 到/home/jeesz/zookeeper/node-0X/bin 目錄中執行:

[root@cloud  ~]# /home/jeesz/zookeeper/node-01/bin/zkServer.shstart

[root@cloud  ~]# /home/jeesz/zookeeper/node-02/bin/zkServer.shstart

[root@cloud  ~]# /home/jeesz/zookeeper/node-03/bin/zkServer.shstart

(2) 輸入 jps 命令查看進程: 

[root@cloud  ~]# jps

1456 QuorumPeerMain

其中,QuorumPeerMain 是 zookeeper 進程,說明啟動正常

(3) 查看狀態:

[root@cloud  ~]# /home/jeesz/zookeeper/node-01/bin/zkServer.sh status

(4) 查看 zookeeper 服務輸出信息:

由於服務信息輸出文件在/home/jeesz/zookeeper/node-0X/bin/zookeeper.out

[root@cloud  ~]# tail-500f zookeeper.out

10、停止 zookeeper 進程:

[root@cloud  ~]# zkServer.shstop

11、配置 zookeeper 開機使用 jeesz 用戶啟動:

編輯 node-01、node-02、node-03 中的/etc/rc.local 文件,分別加入:

[root@cloud  ~]# vi/etc/rc.local

su - root -c'/home/jeesz/zookeeper/node-01/bin/zkServer.sh start'

su - root -c '/home/jeesz/zookeeper/node-02/bin/zkServer.shstart'

su - root -c'/home/jeesz/zookeeper/node-03/bin/zkServer.sh start'

 

源碼地址獲取:mingli

有興趣的朋友們可以前往球球哦~一起分享學習技術:2042849237

請大家持續關註搭建分散式架構7--Zookeeper註冊中心安裝


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 如何理解委托與事件 從事C#工作者,只有理解了委托和事件其中的奧秘,才算得上C#入門。我認為,只有懂得了什麼是委托,如何用委托鏈製造事件,才算正式進入了C#的世界。否則,你只是一個C語言編程者。 1.什麼是委托 委托,其實質是一個函數指針,但在C#中,本著萬物皆對象的原則,委托是一個類(故可以寫在命 ...
  • 一、前端搭建 1、前端用到js:uploadify(下載地址:http://www.uploadify.com/download/)、layer (下載地址:http://layer.layui.com/),下載之後把它們放在你的項目里 列如 2、根據你的需要在你項目適當的位置建立上傳文件的目錄 列 ...
  • string 轉換成 Char[] string ss = "我愛你,中國"; char[] cc = ss.ToCharArray(); Char[] 轉換成string string s = new string(cc); byte[] 與 string 之間的裝換 byte[] bb = En ...
  • 這是一套基於ZKWeb網頁框架和Angular 4.0編寫的開源管理後臺Demo,實現了前後端分離和模塊化開發, 地址是: https://github.com/zkweb framework/ZKWeb.MVVMDemo ,開源協議是MIT,你可以隨意的修改並用於個人或商業用途 我之前已經公開了一 ...
  • 力軟的敏捷開發框架線上體驗中,存在漏洞,我們可以利用它來獲得我們所需要的代碼,具體的步驟如下:(體驗地址見最下方) 轉自:https://my.oschina.net/u/3154687/blog/896525 1.在頂部菜單欄中找到PC端開發 2.進入PC端開發界面後,點擊單表開發模板 3.選擇相 ...
  • 對象序列化: protocal buffers :性能好,侵入性強,編寫proto文件 hessian:性能穩定 ...
  • 1 #include 2 #include 3 4 using namespace std; 5 6 class STSystemA 7 { 8 public: 9 void OperationA() 10 { 11 coutOperationA(); 53 m_... ...
  • 網站大全 國外的花瓣--Pinterest • The world’s catalog of ideas 字體海洋--求字體網提供中文和英文字體庫下載、識別與預覽服務,找字體的好幫手 原創設計UI--站酷 (ZCOOL) - 設計師互動平臺 - 打開站酷,發現更好的設計! 花瓣的同行者--Adobe ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...