1. 程式人生 > >[dubbo實戰] dubbo+zookeeper偽叢集搭建

[dubbo實戰] dubbo+zookeeper偽叢集搭建

    zookeeper作為註冊中心,伺服器和客戶端都要訪問,如果有大量的併發,肯定會有等待。所以可以通過zookeeper叢集解決。

一、為什麼需要zookeeper呢?

   大部分分散式應用需要一個主控、協調器或者控制器來管理物理分佈的子程序。目前,大多數都要開發私有的協調程式,缺乏一個通用機制,協調程式的反覆編寫浪費,且難以形成通用、伸縮性好的協調器,zookeeper提供通用的分散式鎖服務,用以協調分散式應用。所以說zookeeper是分散式應用的協作服務。

二、zookeeper的工作原理

   核心原理是原子廣播,這個機制保證了各個server之間的同步,實現這個機制的協議叫做Zab協議,它有兩種模式:恢復和廣播模式。

   當服務啟動或者在領導者崩潰後,Zab就進入了恢復模式,當領導者被選舉出來,恢復模式就結束了。

    一旦zookeeper內部同步好了後,就可以開始廣播資訊了,這時候當一個server加入zookeeper服務中,它會在恢復模式下啟動,並且同步狀態,同步結束後它也參與廣播訊息。

三、叢集搭建準備

1.我用了三個zookeeper服務,分別是zookeeper-1,zookeeper-2,zookeeper-3

2.在每個zookeeper下新增data和log檔案

3.配置zoo.cfg檔案

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=E:/zookeeper/zookeeper-1/data
# the directory where the log
dataLogDir=E:/zookeeper/zookeeper-1/log 
# the port at which the clients will connect
clientPort=2181
#Clusters
server.1=192.168.24.140:2888:3888
server.2=192.168.24.140:2889:3889
server.3=192.168.24.140:2890:3890 
 每個zookeeper的埠配置都應該不同,分別是2181,2182,2183

4.在data檔案新增myid檔案,並且裡面的內容分別為:1,2,3

5.在dubbo專案中,provider和consumer的xml檔案中修改zookeeper的地址,如下:

<!-- 本機 偽叢集 測試 -->     
    <dubbo:registry  protocol="zookeeper"  address="192.168.24.140:2181,192.168.24.140:2182,192.168.24.140:2183"  />

四、測試

    先分別啟動zookeeper,然後依次啟動服務和客戶端。啟動服務的時候會看到連線到哪個zookeeper上了。為了測試叢集的特性,比如客戶端啟動後zookeeper-1提供服務,我關掉它,那麼程式就繼續發起連線,接著可能zookeeper-2提供服務。

   因為現在有三臺伺服器,所以要求至少有2臺正常啟動才能執行正常。那麼zookeeper-2也關閉,那程式不會連線zookeeper-3,一直報錯,提示no further connection。

   上面說了停掉某個服務,zookeeper內部會選舉出下一個leader來,它內部存在投票選舉機制。這裡不多說了。就像mongodb叢集,會根據心跳機制選出主伺服器。

   接下來的測試,我繼續開啟zookeeper-1或zookeeper-2,能正常提供服務。把zookeeper-3關閉,如果zookeeper-1和zookeeper-2重新啟動成功後,也是能提供服務的。內部在恢復模式下同步狀態。


相關推薦

[dubbo實戰] dubbo+zookeeper叢集搭建

    zookeeper作為註冊中心,伺服器和客戶端都要訪問,如果有大量的併發,肯定會有等待。所以可以通過zookeeper叢集解決。 一、為什麼需要zookeeper呢?    大部分分散式應用需

Zookeeper叢集搭建

搭建要求 : 真實的叢集是需要部署在不同的伺服器上的,但是在我們測試時同時啟動十幾個虛擬機器記憶體會吃不消,所以我們通常會搭建偽叢集,也就是把所有的服務都搭建在一臺虛擬機器上,用埠進行區分。 我們這裡要求搭建一個三個節點的Zookeeper叢集(偽叢集)。 在z

Windows下Zookeeper叢集搭建

一、下載 下載地址:Apache Zookeeper下載 或(https://mirrors.cnnic.cn/apache/zookeeper/),下載Zookeeper安裝檔案,字尾為.tar.gz。我下載的檔案是zookeeper-3.4.13.tar.gz。 二、叢集安裝目錄 在

zookeeper 叢集搭建

簡介 Zookeeper 是 一個分散式。開放原始碼的分散式應用程式協調服務,是Google Chubby的一個開源實現,大多數的分散式應用都需要Zookeeper的支援,這篇文章先簡單的和大家分享如何搭建一個zookeeper叢集。(筆者注:Chubb

分享知識-快樂自己:zookeeper 叢集搭建

1):單一 zookeeper  搭建步驟 2):zookeeper 偽叢集搭建 1):新建一個叢集目錄 [[email protected] opt]# mkdir zookeeper_cluster 2):進入 zookeeper_cluster 目錄 複製三份

kafka+zookeeper叢集搭建

(一.zookeeper偽叢集搭建)1.建立3個zoo.cfg(zoo1.cfg,zoo2.cfg,zoo3.cfg)zoo1.cfg 設定:# 資料資料夾dataDir=/usr/local/zook

[dubbo實戰] dubbo+zookeeper集群搭建

view 中修改 back int address 註冊中心 weight rep clipboard zookeeper作為註冊中心,服務器和客戶端都要訪問,如果有大量的並發,肯定會有等待。所以可以通過zookeeper集群解決。 一、為什麽需要zookeeper呢?

單機搭建zookeeper叢集

一:簡介 分散式應用程式可以基於Zookeeper實現例如配置管理、資料釋出/訂閱、負載均衡、命名服務、協調通知、叢集管理、Master選舉、分散式鎖、分散式佇列等功能。 https://zookeeper.apache.org/ ###Zookeeper中重要的概念:

Windows環境下搭建ZooKeeper叢集

        在生產環境和開發環境ZooKeeper服務的搭建,我們一般常用叢集和單機兩種模式。但是在自己學習過程中,如果想要了解叢集模式的效能,則可以使用偽叢集來了解ZooKeeper叢集模式下的一些工作機制。 1.下載與配置   &

zookeeper windows叢集搭建

解壓後,目錄重新命名為zookeeper1,進入 conf目錄,把zoo_sample.cfg 複製一份,重新命名為zoo.cfg 編輯zoo_simple.cfg 配置資料目錄和日誌目錄: 先在zookeeper1目錄下,新建目錄 data、l

ZooKeeper】單機叢集搭建(適用於mac)

1.配置 可以選擇需要的版本,我下載的是zookeeper-3.4.6.tar.gz,解壓得到資料夾zookeeper-3.4.3 由於手頭機器不足,所以在一臺機器上部署了3個server,如果你手頭也比較緊,也可以這麼做。 在主資料夾下建立一個zoo

zookeeper叢集搭建模式

所謂偽叢集就是在單機模擬叢集模式zookeeper的執行。 配置檔案 下面是我配置的偽叢集分佈模式,分別通過zoo1.cfg、zoo2.cfg、zoo3.cfg來模擬三臺機器的zookeeper叢集: zoo1.cfg內容如下: # The numb

Zookeeper叢集搭建

Zookeeper偽叢集的搭建 1.選擇自己需要的版本號進行下載 wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz 注意:Zookeeper是需要依賴

elasticsearch叢集搭建手冊(叢集搭建

安裝部署 建立程式目錄 安裝目錄 mkdir /usr/local/elasticsearch mkdir /usr/local/elasticsearch/6.4.3 mkdir /usr/local/elasticsearch/6.4.3/01 #第一個節

zookeeper分散式搭建

一、描述 偽分散式叢集就是在一臺機器部署多個zk應用,部署之前伺服器需要有jdk環境 java -version可以顯示相關java資訊才可以進行zookeeper搭建 二、步驟 第一步下載好zookeeper-3.4.9.tar.gz 然後解壓tar -zxvf zookeeper-3.4.

hbase(一) 叢集搭建

一句話介紹                hbase 高可靠、高效能、可伸縮、分散式 的列式儲存型資料庫。 依賴:         環境 : Jdk1.8         zookeeper  為hbase分散式儲存協同服務 (偽分散式可暫不安裝,hbase自

CentOS7單機安裝Zookeeper叢集

操作環境 CentOS:CentOS-7-x86_64-DVD-1503-01 ZooKeeper:zookeeper-3.4.13.tar.gz 安裝wget命令 yum -y install wget 安裝Java 檢視當前系統是否有Java

Ubuntu虛擬機器 Zookeeper+Kafka叢集搭建

機器和環境 三臺ubuntu 16.04 64bit ip地址 zookeeper主從 kafka broker id 172.16.227.128 follower 1 172.1

Zookeeper——分散式叢集搭建

準備伺服器 - 192.168.214.150 centos6-1 - 192.168.214.151 centos6-2 - 192.168.214.152 centos6-3 Java環境 檢視java版本 [root@cent

sheepdog+zookeeper儲存叢集搭建:4個節點安裝sheepdog(其中有3個為zookeeper節點)

1、首先在4個儲存節點中的3個節點上安裝3節點zookeeper,詳見 http://blog.csdn.net/u010855924/article/details/52847308 2、第四個儲存節點僅僅需要rpm -ivh zookeeper-3.4.6-redhat