Dubbo註冊中心叢集Zookeeper
Dubbo註冊中心叢集Zookeeper-3.4.6
Dubbo建議使用Zookeeper作為服務的註冊中心。
Zookeeper叢集中只要有過半的節點是正常的情況下,那麼整個叢集對外就是可用的。正是基於這個特性,要將ZK叢集的節點數量要為奇數(2n+1:如3、5、7個節點)較為合適。
ZooKeeper與Dubbo服務叢集架構圖
伺服器1:192.168.1.81 埠:2181、2881、3881
伺服器2:192.168.1.82 埠:2182、2882、3882
伺服器3:192.168.1.83 埠:2183、2883、3883
1、修改作業系統的/etc/hosts檔案,新增IP與主機名對映:
# zookeeper clusterservers
192.168.1.81 edu-zk-01
192.168.1.82 edu-zk-02
192.168.1.83 edu-zk-03
2、下載或上傳zookeeper-3.4.6.tar.gz到/home/wusc/zookeeper目錄:
$ cd /home/wusc/zookeeper
$ wget http://apache.fayea.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
3、解壓zookeeper安裝包,並按節點號對zookeeper目錄重新命名:
$ tar -zxvf zookeeper-3.4.6.tar.gz
伺服器1:
$ mv zookeeper-3.4.6 node-01
伺服器2:
$ mv zookeeper-3.4.6 node-02
伺服器3:
$ mv zookeeper-3.4.6 node-03
4、在各zookeeper節點目錄下建立以下目錄:
$ cd /home/wusc/zookeeper/node-0X (X代表節點號1、2、3,以下同解)
$ mkdir data
$ mkdir logs
5、將zookeeper/node-0X/conf目錄下的zoo_sample.cfg檔案拷貝一份,命名為zoo.cfg:
$ cp zoo_sample.cfg zoo.cfg
6、修改zoo.cfg配置檔案:
zookeeper/node-01
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/wusc/zookeeper/node-01/data
dataLogDir=/home/wusc/zookeeper/node-01/logs
clientPort=2181
server.1=edu-zk-01:2881:3881
server.2=edu-zk-02:2882:3882
server.3=edu-zk-03:2883:3883
zookeeper/node-02的配置(/home/wusc/zookeeper/node-02/conf/zoo.cfg)如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/wusc/zookeeper/node-02/data
dataLogDir=/home/wusc/zookeeper/node-02/logs
clientPort=2182
server.1=edu-zk-01:2881:3881
server.2=edu-zk-02:2882:3882
server.3=edu-zk-03:2883:3883
zookeeper/node-03的配置(/home/wusc/zookeeper/node-03/conf/zoo.cfg)如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/wusc/zookeeper/node-03/data
dataLogDir=/home/wusc/zookeeper/node-03/logs
clientPort=2183
server.1=edu-zk-01:2881:3881
server.2=edu-zk-02:2882:3882
server.3=edu-zk-03:2883:3883
引數說明:
tickTime=2000
tickTime這個時間是作為Zookeeper伺服器之間或客戶端與伺服器之間維持心跳的時間間隔,也就是每個tickTime時間就會發送一個心跳。
initLimit=10
initLimit這個配置項是用來配置Zookeeper接受客戶端(這裡所說的客戶端不是使用者連線Zookeeper伺服器的客戶端,而是Zookeeper伺服器叢集中連線到Leader的Follower 伺服器)初始化連線時最長能忍受多少個心跳時間間隔數。當已經超過10個心跳的時間(也就是tickTime)長度後 Zookeeper 伺服器還沒有收到客戶端的返回資訊,那麼表明這個客戶端連線失敗。總的時間長度就是 10*2000=20 秒。
syncLimit=5
syncLimit這個配置項標識Leader與Follower之間傳送訊息,請求和應答時間長度,最長不能超過多少個tickTime的時間長度,總的時間長度就是5*2000=10秒。
dataDir=/home/wusc/zookeeper/node-01/data
dataDir顧名思義就是Zookeeper儲存資料的目錄,預設情況下Zookeeper將寫資料的日誌檔案也儲存在這個目錄裡。
clientPort=2181
clientPort這個埠就是客戶端(應用程式)連線Zookeeper伺服器的埠,Zookeeper會監聽這個埠接受客戶端的訪問請求。
server.A=B:C:D
server.1=edu-zk-01:2881:3881
server.2=edu-zk-02:2882:3882
server.3=edu-zk-03:2883:3883
A是一個數字,表示這個是第幾號伺服器;
B是這個伺服器的IP地址(或者是與IP地址做了對映的主機名);
C第一個埠用來叢集成員的資訊交換,表示這個伺服器與叢集中的Leader伺服器交換資訊的埠;
D是在leader掛掉時專門用來進行選舉leader所用的埠。
注意:如果是偽叢集的配置方式,不同的 Zookeeper 例項通訊埠號不能一樣,所以要給它們分配不同的埠號。
7、在dataDir=/home/wusc/zookeeper/node-0X/data下建立myid檔案
編輯myid檔案,並在對應的IP的機器上輸入對應的編號。如在node-01上,myid檔案內容就是1,node-02上就是2,node-03上就是3:
$ vi /home/wusc/zookeeper/node-01/data/myid ## 值為1
$ vi /home/wusc/zookeeper/node-02/data/myid ## 值為2
$ vi /home/wusc/zookeeper/node-03/data/myid ## 值為3
8、在防火牆中開啟要用到的埠218X、288X、388X
切換到root使用者許可權,執行以下命令:
# chkconfigiptables on
# service iptablesstart
編輯/etc/sysconfig/iptables
# 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
重啟防火牆:
# service iptables restart
檢視防火牆埠狀態:
# service iptables status
9、啟動並測試zookeeper(要用wusc使用者啟動,不要用root):
(1)使用wusc使用者到/home/wusc/zookeeper/node-0X/bin目錄中執行:
$ /home/wusc/zookeeper/node-01/bin/zkServer.shstart
$ /home/wusc/zookeeper/node-02/bin/zkServer.shstart
$ /home/wusc/zookeeper/node-03/bin/zkServer.shstart
(2)輸入jps命令檢視程序:
$ jps
1456QuorumPeerMain
其中,QuorumPeerMain是zookeeper程序,說明啟動正常
(3)檢視狀態:
$ /home/wusc/zookeeper/node-01/bin/zkServer.sh status
(4)檢視zookeeper服務輸出資訊:
由於服務資訊輸出檔案在/home/wusc/zookeeper/node-0X/bin/zookeeper.out
$ tail-500f zookeeper.out
10、停止zookeeper程序:
$ zkServer.sh stop
11、配置zookeeper開機使用wusc使用者啟動:
編輯node-01、node-02、node-03中的/etc/rc.local檔案,分別加入:
su - wusc -c '/home/wusc/zookeeper/node-01/bin/zkServer.shstart'
su - wusc -c '/home/wusc/zookeeper/node-02/bin/zkServer.shstart'
su - wusc -c '/home/wusc/zookeeper/node-03/bin/zkServer.shstart'
二、安裝Dubbo管控臺(基礎篇有講,此處重點講管控臺如何連結叢集):
Dubbo管控臺可以對註冊到zookeeper註冊中心的服務或服務消費者進行管理,但管控臺是否正常對Dubbo服務沒有影響,管控臺也不需要高可用,因此可以單節點部署。
IP: 192.168.1.81
部署容器:Tomcat7
埠:8080
1、下載(或上傳)最新版的Tomcat7(apache-tomcat-7.0.57.tar.gz)到/home/wusc/
2、解壓:
$ tar -zxvf apache-tomcat-7.0.57.tar.gz
$ mv apache-tomcat-7.0.57dubbo-admin-tomcat
3、移除/home/wusc/dubbo-admin-tomcat/webapps目錄下的所有檔案:
$ rm -rf *
到/home/wusc/dubbo-admin-tomcat/webapps
5、解壓並把目錄命名為ROOT:
$ unzip dubbo-admin-2.5.3.war -d ROOT
把dubbo-admin-2.5.3.war移到/home/wusc/tools目錄備份
$ mv dubbo-admin-2.5.3.war/home/wusc/tools
6、配置dubbo.properties:
$ vi ROOT/WEB-INF/dubbo.properties
dubbo.registry.address=zookeeper://192.168.1.81:2181?backup=192.168.1.82:2182,192.168.1.83:2183
dubbo.admin.root.password=wusc.123
dubbo.admin.guest.password=wusc.123
(以上密碼在正式上生產前要修改)
7、防火牆開啟8080埠,用root使用者修改/etc/sysconfig/iptables,
# vi /etc/sysconfig/iptables
增加:
## dubbo-admin-tomcat:8080
-A INPUT -m state --state NEW -m tcp -p tcp--dport 8080 -j ACCEPT
重啟防火牆:
# service iptables restart
8、啟動Tomat7
$ /home/wusc/dubbo-admin-tomcat/bin/startup.sh
10、配置部署了Dubbo管控臺的Tomcat開機啟動:
在虛擬主機中編輯/etc/rc.local檔案,加入:
su - wusc -c'/home/wusc/dubbo-admin-tomcat/bin/startup.sh'
相關推薦
Dubbo註冊中心叢集Zookeeper
Dubbo註冊中心叢集Zookeeper-3.4.6Dubbo建議使用Zookeeper作為服務的註冊中心。Zookeeper叢集中只要有過半的節點是正常的情況下,那麼整個叢集對外就是可用的。正是基於這個特性,要將ZK叢集的節點數量要為奇數(2n+1:如3、5、7個節點)較為
安裝 Dubbo 註冊中心(Zookeeper-3.4.6)
store port -s 端口 作者 tin 內容 send 輸出信息 安裝 Dubbo 註冊中心(Zookeeper-3.4.6) Dubbo 建議使用 Zookeeper 作為服務的註冊中心。 註冊中心服務器(192.168.3.71)配置,安裝 Zookeep
(三)dubbo+redis註冊中心叢集+redis cache(sentinel)+spring
package com.liang.util;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.StringRedisTemplate;import
搭建 Spring Cloud Eureka Server 高可用註冊中心叢集
什麼是註冊中心 Eureka Server 在微服務中承擔的角色是服務註冊中心,也是最最基礎的核心設施之一。從“Eureka”單詞的含義**“我找到了!我發現了!”可以看出,其實 Eureka 就是用來實現服務註冊、服務發現的工具**,和 dubbo 這類的分散式服務治理框架類似。各
Dubbo註冊中心選用及DubboAdmin
一 註冊中心 上一篇部落格《Dubbo呼叫示例》演示中的註冊中心是redis,其實用Zookeeper更為廣泛。 Redis: 採用K/V 形式進行儲存,基結構如下: key:/dubbo/com.snowman.service.DemoService/providers
微服務架構 SpringCloud(三)註冊中心叢集篇
叢集環境搭建 第一步:我們新建兩個註冊中心工程一個叫eureka_register_service_master、另外一個叫eureka_register_service_backup eureka_register_service_master的applicat
SpringCloud註冊中心叢集化及如何抗住大型系統的高併發訪問
一、場景引入 本人所在的專案由於直接面向消費者,迭代週期迅速,所以服務端框架一直採用Springboot+dubbo的組合模式,每個服務由service模組+web模組構成,service模組通過公司API閘道器向安卓端暴 露r
二、eureka註冊中心叢集
Spring Cloud 2.x系列之 eureka註冊中心叢集 1、 Eureka作為spring cloud的服務發現與註冊中心,在整個的微服務體系中,處於核心位置。單機模式下的eureka服務,顯然不能滿足高可用的實際生產環境,這就要求配置一個能夠應對各種突發情況,具有較強容災能力
spring cloud系列教程(4)--eureka註冊中心叢集配置,微服務註冊資訊完善
給大家推薦個靠譜的公眾號程式設計師探索之路,大家一起加油 1.Eureka是什麼 Eureka是Netflix的一個子模組之一,AP設計原則。Eureka是一個以及Rest的服務,用於定位服務,以實現雲端中間層服務發現和故障轉移。服務註冊與發現對於微服務架構來
JAVA ssm b2b2c多使用者商城系統原始碼(三)註冊中心叢集篇
叢集環境搭建 第一步:我們新建兩個註冊中心工程一個叫eureka_register_service_master、另外一個叫eureka_register_service_backup eureka_register_service_master的applicat
SpringCloud服務註冊中心叢集搭建(二)
springcloud學習總結 2、服務註冊中心叢集搭建 一、新建服務註冊中心eureka7002模組,拷貝eureka7001模組的pom以及yml 修改yml檔案 server: port: 7002 eureka: instance: hos
Dubbo註冊中心安裝教程(單節點)
Dubbo建議使用Zookeeper作為服務的註冊中心。 註冊中心伺服器(192.168.3.71)配置,安裝Zookeeper: 1、 修改作業系統的/etc/hosts檔案中新增: # zookeeper servers 192.168.3.71 shop-
Dubbo分散式服務治理(一)——Dubbo註冊中心&&管理平臺安裝(Linux)
一、Dubbo介紹 Dubbo是阿里巴巴SOA服務化治理方案的核心框架,每天為2,000+個服務提供3,000,000,000+次訪問量支援,並被廣泛應用於阿里巴巴集團的各成員站點。 1、那
Eureka-註冊中心叢集配置
雙節點註冊中心 首次我們嘗試一下雙節點的註冊中心的搭建。 1、建立application-peer1.properties,作為peer1服務中心的配置,並將serviceUrl指向peer2 spring.application.name=spring-cloud-
SSM綜合專案實戰(TTSC) -- day02 Dubbo註冊中心,通用Mapper,分頁外掛
一、Dubbo的連線方式 1、連線方式介紹 使用Dubbo進行遠端呼叫實現服務互動,它支援多種協議,如Hessian、HTTP、RMI、Memcached、Redis等等。由於Dubbo將這些協議的實現進行了封裝了,無論是服務端(開發服務)還是客戶端(呼叫服
【微服務架構】SpringCloud之Eureka(註冊中心叢集篇)(三)
SpringCloudbackup 上一篇講解了spring註冊中心(eureka),但是存在一個單點故障的問題,一個註冊中心遠遠無法滿足實際的生產環境,那麼我們需要多個註冊中心進行叢集,達到真正的高可用。今天我們實戰來搭建一個Eureka叢集。 一:叢集環境搭建 第一
Dubbo註冊中心宕機
註冊中心宕機 高可用 通過設計,減少系統不能提供服務的時間 zookeeper註冊中心宕機 還可以消費dubbo暴露的服務 健壯性 監控中心宕掉 不影響使用,只是丟失部分取樣資料 資
Spring Cloud Eureka——註冊中心叢集
前面我們介紹了Spring Cloud Eureka的簡單使用。 但前面的例子中,這個服務註冊中心是單點的,顯然這並不適合應用於線上生產環境。服務註冊中心是服務的中心位置,如果服務註冊中心崩了,顯然是災難性的,不符合微服務架構的高可用性特點。 那麼如何搭建高可用的服務註冊中
Spring Cloud Eureka 註冊中心叢集搭建,Greenwich 最新版!
開發十年,就只剩下這套架構體系了! >>>
Spring Cloud的Eureka註冊中心叢集搭建
Spring Cloud也包含了許多的子專案 , 下面等下要使用的Eureka只是其中的一個子專案 Eureka的功