1. 程式人生 > >基於zookeeper的activemq的主從叢集配置

基於zookeeper的activemq的主從叢集配置

專案,要用到訊息佇列,這裡採用activemq,相對使用簡單點。這裡重點是環境部署。

0. 伺服器環境

RedHat7
10.90.7.2
10.90.7.10
10.90.2.102

1. 下載安裝zookeeper

zookeeper的安裝,採用一臺機器裝3個例項,偽叢集。其實,搭建真叢集,也是沒問題的。
在7.10伺服器上,安裝這3個例項。

解壓zookeeper。

[[email protected] zookeeper-3.3.6]# pwd
/opt/amq/zookeeper-3.3.6

然後,copy zookeeper-3.3.6 三份為zk1,zk2,zk3

複製程式碼
[[email protected] amq]# ll
總用量 
64592 drwxr-xr-x 11 root root 4096 7月 22 11:44 zk1 drwxr-xr-x 11 root root 4096 7月 22 11:45 zk2 drwxr-xr-x 11 root root 4096 7月 22 11:49 zk3 drwxr-xr-x 10 www www 4096 7月 29 2012 zookeeper-3.3.6 -rw-r--r-- 1 root root 11833706 7月 22 09:27 zookeeper-3.3.6.tar.gz
複製程式碼

在zk1,zk2,zk3的目錄下,建立data目錄。

修改zk1,zk2,zk3的配置檔案。

複製程式碼
[[email protected] conf]# pwd
/opt/amq/zk1/conf
[[email protected] conf]# mv zoo_sample.cfg zoo.cfg
[[email protected] conf]# ll
總用量 12
-rw-r--r-- 1 root root  535 7月  22 11:11 configuration.xsl
-rw-r--r-- 1 root root 1698 7月  22 11:11 log4j.properties
-rw-r--r-- 1 root root  477
7月 22 13:07 zoo.cfg
複製程式碼

修改zk1的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=/opt/amq/zk1/data
# the port at which the clients will connect
clientPort=2181
server.1=10.90.7.10:2887:3887  
server.2=10.90.7.10:2888:3888  
server.3=10.90.7.10:2889:3889
複製程式碼

修改zk2的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=/opt/amq/zk2/data
# the port at which the clients will connect
clientPort=2182
server.1=10.90.7.10:2887:3887  
server.2=10.90.7.10:2888:3888  
server.3=10.90.7.10:2889:3889
複製程式碼

修改zk3的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=/opt/amq/zk3/data
# the port at which the clients will connect
clientPort=2183
server.1=10.90.7.10:2887:3887  
server.2=10.90.7.10:2888:3888  
server.3=10.90.7.10:2889:3889
複製程式碼

還有一步,就是在zk1,zk2,zk3的data(這個data目錄也是自己建立的)下面建立一個檔案myid,內容就是zoo.cfg中的伺服器server.x中的數字1,2,3。

複製程式碼
[[email protected] data]# pwd
/opt/amq/zk1/data
[[email protected] data]# ll
總用量 8
-rw-r--r-- 1 root root  2 7月  22 11:45 myid
drwxr-xr-x 2 root root 43 7月  22 13:10 version-2
-rw-r--r-- 1 root root  5 7月  22 13:07 zookeeper_server.pid
複製程式碼

最後,分別到zk1,zk2,zk3的bin目錄,執行啟動zookeeper的程式。例如,這裡我啟動zk1的。

[[email protected] bin]# ./zkServer.sh 
JMX enabled by default
Using config: /opt/amq/zk1/bin/../conf/zoo.cfg
Usage: ./zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}

[[email protected] bin]# ./zkServer.sh start

到此,zk的3元叢集啟動完畢。

若是三個不同的機器上啟動,配置上只有zoo.cfg中的一點點不同。就是下面的這個資訊:
server.A=B:C:D
其 中
A 是一個數字,表示這個是第幾號伺服器;
B 是這個伺服器的 ip地址;
C 表示的是這個伺服器與叢集中的 Leader 伺服器交換資訊的埠;
D 表示的是萬一叢集中的 Leader 伺服器掛了,需要一個埠來重新進行選舉,選出一個新的 Leader,
而這個埠就是用來執行選舉時伺服器相互通訊的埠。如果是偽叢集的配置方式,由於 B 都是一樣,所以不同的 Zookeeper 例項通訊埠號不能一樣,所以要給它們分配不同的埠號。

正常啟動了的zookeeper的日誌是這樣子的:

複製程式碼
2017-07-22 13:07:52,947 - INFO  [QuorumPeer:/0:0:0:0:0:0:0:0:2181:[email protected]294] - Getting a snapshot from leader
2017-07-22 13:07:52,953 - INFO  [QuorumPeer:/0:0:0:0:0:0:0:0:2181:[email protected]326] - Setting leader epoch 1
2017-07-22 13:07:52,953 - INFO  [QuorumPeer:/0:0:0:0:0:0:0:0:2181:[email protected]256] - Snapshotting: 0
2017-07-22 13:08:21,323 - INFO  [WorkerReceiver Thread:[email protected]496] - Notification: 3 (n.leader), 0 (n.zxid), 1 (n.round), LOOKING (n.state), 3 (n.sid), FOLLOWING (my state)
2017-07-22 13:08:43,360 - INFO  [WorkerReceiver Thread:[email protected]496] - Notification: 3 (n.leader), 0 (n.zxid), 2 (n.round), LOOKING (n.state), 3 (n.sid), FOLLOWING (my state)
2017-07-22 13:10:15,173 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]251] - Accepted socket connection from /10.90.7.10:33006
2017-07-22 13:10:15,181 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]777] - Client attempting to establish new session at /10.90.7.10:33006
2017-07-22 13:10:15,188 - WARN  [QuorumPeer:/0:0:0:0:0:0:0:0:2181:[email protected]116] - Got zxid 0x100000001 expected 0x1
2017-07-22 13:10:15,189 - INFO  [SyncThread:1:[email protected]199] - Creating new log file: log.100000001
2017-07-22 13:10:15,199 - INFO  [CommitProcessor:1:[email protected]1580] - Established session 0x15d68b1dbf90000 with negotiated timeout 30000 for client /10.90.7.10:33006
2017-07-22 13:24:06,656 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]1435] - Closed socket connection for client /10.90.7.10:33006 which had sessionid 0x15d68b1dbf90000
2017-07-22 13:34:35,717 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]251] - Accepted socket connection from /10.90.7.10:33007
2017-07-22 13:34:35,722 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]777] - Client attempting to establish new session at /10.90.7.10:33007
2017-07-22 13:34:35,725 - INFO  [CommitProcessor:1:[email protected]1580] - Established session 0x15d68b1dbf90001 with negotiated timeout 4000 for client /10.90.7.10:33007
2017-07-22 13:48:54,070 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]1435] - Closed socket connection for client /10.90.7.10:33007 which had sessionid 0x15d68b1dbf90001
2017-07-22 14:13:58,300 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]251] - Accepted socket connection from /10.90.7.10:33012
2017-07-22 14:13:58,305 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]777] - Client attempting to establish new session at /10.90.7.10:33012
2017-07-22 14:13:58,307 - INFO  [CommitProcessor:1:[email protected]1580] - Established session 0x15d68b1dbf90002 with negotiated timeout 4000 for client /10.90.7.10:33012
2017-07-22 14:20:39,807 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]251] - Accepted socket connection from /10.90.2.102:51235
2017-07-22 14:20:39,811 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]777] - Client attempting to establish new session at /10.90.2.102:51235
2017-07-22 14:20:39,813 - INFO  [CommitProcessor:1:[email protected]1580] - Established session 0x15d68b1dbf90003 with negotiated timeout 4000 for client /10.90.2.102:51235
2017-07-22 14:23:00,052 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]1435] - Closed socket connection for client /10.90.2.102:51235 which had sessionid 0x15d68b1dbf90003
2017-07-22 14:23:00,385 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]251] - Accepted socket connection from /10.90.2.102:51236
2017-07-22 14:23:00,387 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]777] - Client attempting to establish new session at /10.90.2.102:51236
2017-07-22 14:23:00,389 - INFO  [CommitProcessor:1:[email protected]1580] - Established session 0x15d68b1dbf90004 with negotiated timeout 4000 for client /10.90.2.102:51236
2017-07-22 14:23:44,703 - WARN  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]634] - EndOfStreamException: Unable to read additional data from client sessionid 0x15d68b1dbf90002, likely client has closed socket
2017-07-22 14:23:44,704 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]1435] - Closed socket connection for client /10.90.7.10:33012 which had sessionid 0x15d68b1dbf90002
2017-07-22 14:31:19,756 - WARN  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]634] - EndOfStreamException: Unable to read additional data from client sessionid 0x15d68b1dbf90004, likely client has closed socket
2017-07-22 14:31:19,758 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]1435] - Closed socket connection for client /10.90.2.102:51236 which had sessionid 0x15d68b1dbf90004
2017-07-22 15:10:51,738 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]251] - Accepted socket connection from /10.90.7.2:17992
2017-07-22 15:10:51,743 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]777] - Client attempting to establish new session at /10.90.7.2:17992
2017-07-22 15:10:51,746 - INFO  [CommitProcessor:1:[email protected]1580] - Established session 0x15d68b1dbf90005 with negotiated timeout 4000 for client /10.90.7.2:17992
複製程式碼

執行一下./zkCli.sh

複製程式碼
[[email protected] bin]# ./zkCli.sh 
Connecting to localhost:2181
2017-07-22 
            
           

相關推薦

基於zookeeper的activemq的主從叢集配置

專案,要用到訊息佇列,這裡採用activemq,相對使用簡單點。這裡重點是環境部署。0. 伺服器環境RedHat710.90.7.210.90.7.1010.90.2.1021. 下載安裝zookeeperzookeeper的安裝,採用一臺機器裝3個例項,偽叢集。其實,搭建真

mysql 主從叢集配置

MySql 主從叢集配置 一、準備環境 三臺機器  其中190是住,其餘倆是節點 192.168.0.190   master 192.168.0.162   slave 192.168.0.163   slave 確保版本一致,啟動mysql。 二、修改配

CentOS linux 下rabbitmq基於單機的叢集配置

rabbitMQ是一個在AMQP基礎上完整的,可複用的企業訊息系統,以下介紹rabbitmq的搭建及叢集配置資訊: rabbit是基於erlang編寫的,所以需要先安裝erlang環境: erlang需要相關環境的支援,如ODBC,JDK等,其中有一些是可以直接yum安裝的

配置MYSQL基於GTID 主從復制詳細解析及步驟

spec sys tran allow ... ext mat mar 安裝 GTID的概念 全局事務標識:global transaction identifiers GTID是一個事務一一對應,並且全局唯一ID GTID在一個服務器上只執行一次,避免重復執行導致數據混

基於Infiniband高效能叢集硬體配置方案

                   摩爾定律的一再驗證殘酷的揭示了一個現實:速度是技術發展的終極目標。高效能運算領域也是一樣,如何使高效能運算平臺執行的更快、更高效一直是伺服器廠商研究的方向,曙光作為中國高效能運算的領頭羊,作為高階伺服器廠商,也在為此做著不懈的努力。Infiniband高速網路是近幾年產生

redis 主從配置 | 叢集配置

主從配置 |  叢集配置   redis主從 主從配置原因: 1.到達讀寫分離,讀的操作和寫操作比例10 : 1讀資料頻繁,寫資料次數少,這樣可以配置1個master資料庫用來寫資料,配置多個slave從資料庫來滿足讀取操作2.降低伺服器壓力,讀取資料訪問的速度加快3.主的資料庫會

基於zookeeper的Spark高可用叢集配置

首先我們這裡配置的三臺機器的叢集 名稱分別為hadoop、hadoop1、hadoop2 首先是安裝Zookeeper:  (4)配置:進到conf目錄下,把zoo_sample.cfg修改成z

redis 3.3.2 叢集配置主從

環境 centos 7 minimal cd /usr/local tar -zxvf redis-3.2.3.tar.gz cd redis-3.2.3 make && make install   這個點如果報錯 zmalloc.h:50:31: e

redis 叢集配置基於3.0.5)

前言 redis 是我們目前大規模使用的快取中介軟體,由於它強大高效而又便捷的功能,得到了廣泛的使用。現在的2.x的穩定版本是2.8.19,也是我們專案中普遍用到的版本。 redis在年初發布了3.0.0,官方支援了redis cluster,也就是叢集。至此結束了redis 沒有官方叢集的時代,之前我們

Redis學習筆記(4)-持久化、主從配置、哨兵、叢集配置

HDIS-Framework是一個基於SpringBoot、Kubernetes、阿里雲服務,編寫的一個用於支撐微服務的極速開發框架。 其文件詳盡,Demo全面,設計合理,開箱即用,節省開發時間,提升開發效率。 配套的docker、Kubernete

Redis主從複製和叢集配置

Redis主從複製和叢集配置 redis主從複製 概述 1、redis的複製功能是支援多個數據庫之間的資料同步。一類是主資料庫(master)一類是從資料庫(slave),主資料庫可以進行讀寫操作,當發生寫操作的時候自動將資料同步到從資料庫,而從資料庫一般是隻讀的,

Redis主從複製和叢集配置系列之六(redis叢集節點新增、刪除、重新分配slot實戰)

下面操作都在同臺機子server1 192.168.1.198上操作2、檢視現有節點[[email protected] ~]# cd /usr/local/redis-3.0.6/src/[[email protected] src]# redis-c

簡單實現redis主從叢集和分片叢集配置

1.redis主從叢集 作用:降低單節點redis伺服器的讀寫能力,將讀寫分離到不同伺服器上,提高資料的可用性。 實現:選擇一臺伺服器作為master節點,另外一臺或幾臺作為slave節點。slave節點上的資料全有master上面同步過來 (1)由於只有一臺伺服器,所

基於 Docker 的 MongoDB 主從叢集

如果對 Docker 不太懂,可以看看我之前的文章。 這篇文章主要講以下三個內容: 前序–聊聊資料庫升級方案 一主一從 一主兩從 一主一從一仲裁 本來是想用 MongoDB 的 Docker 最新映象的,但是 最新映象預設綁定了 localhost (

基於Kubernetes搭建MySQL主從叢集

願你,忠於自己,活得像自己。清單:NameVersionCentOS7Kubernetes1.9.0Docker17.09.1-ceMySQL5.7前言令我始料不及的出差活動中,開始接觸Kubernetes並被要求搭建基於此的MySQL主從叢集,由於筆者在Linux、Kubernetes等方面都是小白,故此展

基於獨立Zookeeper叢集的Hbase 安裝配置實驗

前面做了基於Hbase自帶Zookeeper的安裝配置(參考http://blog.csdn.net/wzy0623/article/details/51241641),今天做了個基於獨立Zookeeper叢集的。一、實驗環境 3臺CentOS release 6.4虛擬機

MySQL 主從複製:基於二進位制檔案複製配置詳解

##MySQL-主從複製:基於二進位制檔案複製詳解 ###前言 主從複製是指把一個MySQL的資料庫伺服器作為主伺服器(master),然後把master的資料複製到一個或者多個MySQL資料庫伺服器作為從伺服器(slave)。從master到slave的複製一般是非同步複製,所以從伺服器的複製可以隨時停止

基於Dokcer搭建Redis叢集搭建(主從叢集

最近陸陸續續有不少園友加我好友諮詢 redis 叢集搭建的問題,我覺得一定是之前寫的這篇 《基於Docker的Redis叢集搭建》 文章有問題了,所以我花了幾分鐘瀏覽之前的文章總結了下面幾個問題: redis 數量太少,只建立了 3 個例項; 由於只有 3 個例項,所以全部只能是主節點,無法體現叢集主從關係

基於Dokcer搭建Redis叢集主從叢集

最近陸陸續續有不少園友加我好友諮詢 redis 叢集搭建的問題,我覺得一定是之前寫的這篇 《基於Docker的Redis叢集搭建》 文章有問題了,所以我花了幾分鐘瀏覽之前的文章總結了下面幾個問題: redis 數量太少,只建立了 3 個例項; 由於只有 3 個例項,所以全部只能是主節點,無法體現叢集主從關係

day39-Spring 11-Spring的AOP:基於AspectJ的XML配置方式

asp 技術 mage bsp aop src xml配置方式 img aspectj day39-Spring 11-Spring的AOP:基於AspectJ的XML配置方式