欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

Java開發(fā)大型互聯(lián)網(wǎng)時如何使用Dubbo注冊中心實現(xiàn)集群

榮姿康2年前14瀏覽0評論

Java開發(fā)大型互聯(lián)網(wǎng)時如何使用Dubbo注冊中心實現(xiàn)集群?

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

Zookeeper集群中只要有過半的節(jié)點是正常的情況下,那么整個集群對外就是可用的。正是基于這個特性,要將ZK集群的節(jié)點數(shù)量要為奇數(shù)(2n+1:如3、5、7個節(jié)點)較為合適。

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、 修改操作系統(tǒng)的/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安裝包,并按節(jié)點號對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節(jié)點目錄下創(chuàng)建以下目錄:

$ cd /home/wusc/zookeeper/node-0X (X代表節(jié)點號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的配置(/home/wusc/zookeeper/node-01/conf/zoo.cfg)如下:

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

參數(shù)說明:

tickTime=2000

tickTime這個時間是作為Zookeeper服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個tickTime時間就會發(fā)送一個心跳。

initLimit=10

initLimit這個配置項是用來配置Zookeeper接受客戶端(這里所說的客戶端不是用戶連接Zookeeper服務器的客戶端,而是Zookeeper服務器集群中連接到Leader的Follower 服務器)初始化連接時最長能忍受多少個心跳時間間隔數(shù)。當已經(jīng)超過10個心跳的時間(也就是tickTime)長度后 Zookeeper 服務器還沒有收到客戶端的返回信息,那么表明這個客戶端連接失敗。總的時間長度就是 10*2000=20 秒。

syncLimit=5

syncLimit這個配置項標識Leader與Follower之間發(fā)送消息,請求和應答時間長度,最長不能超過多少個tickTime的時間長度,總的時間長度就是5*2000=10秒。

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

dataDir顧名思義就是Zookeeper保存數(shù)據(jù)的目錄,默認情況下Zookeeper將寫數(shù)據(jù)的日志文件也保存在這個目錄里。

clientPort=2181

clientPort這個端口就是客戶端(應用程序)連接Zookeeper服務器的端口,Zookeeper會監(jiān)聽這個端口接受客戶端的訪問請求。

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是一個數(shù)字,表示這個是第幾號服務器;

B是這個服務器的IP地址(或者是與IP地址做了映射的主機名);

C第一個端口用來集群成員的信息交換,表示這個服務器與集群中的Leader服務器交換信息的端口;

D是在leader掛掉時專門用來進行選舉leader所用的端口。

注意:如果是偽集群的配置方式,不同的 Zookeeper 實例通信端口號不能一樣,所以要給它們分配不同的端口號。

7、 在dataDir=/home/wusc/zookeeper/node-0X/data下創(chuàng)建myid文件

編輯myid文件,并在對應的IP的機器上輸入對應的編號。如在node-01上,myid文件內(nèi)容就是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用戶權限,執(zhí)行以下命令:

# 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

查看防火墻端口狀態(tài):

# service iptables status

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

(1) 使用wusc用戶到/home/wusc/zookeeper/node-0X/bin目錄中執(zhí)行:

$ /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) 查看狀態(tài):

$ /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服務沒有影響,管控臺也不需要高可用,因此可以單節(jié)點部署。

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 *

4、 上傳Dubbo管理控制臺程序dubbo-admin-2.5.3.war

到/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

(以上密碼在正式上生產(chǎn)前要修改)

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

9、 瀏覽http://192.168.1.81:8080/

10、配置部署了Dubbo管控臺的Tomcat開機啟動:

在虛擬主機中編輯/etc/rc.local文件,加入:

su - wusc -c'/home/wusc/dubbo-admin-tomcat/bin/startup.sh'

java   集群,Java開發(fā)大型互聯(lián)網(wǎng)時如何使用Dubbo注冊中心實現(xiàn)集群