zookeeper+activeMQ 高可用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014388408/article/details/52859347

1、高可用性数据的几种方式

①Shared Nothing Master/Slave
    Master 和 Slave各自都单独存储持久化的消息,它们不共享数据。

②Shared Database Master/Slave
    Master与Slave之间的数据是共享的。

③Shared File system Master/Slave
    这种方式和共享数据库存储原理基本一样。

④Replicated LevelDB Store
    这种方式使用Zookeeper选举Master。要进行选举,则需要多数派的“参与者”。因为Replicated LevelDB Store中有多个Broker,从多个Broker中选举出一个成为Master,其他的则成为Slave。只有Master接收Client的连接,Slave负责连接到Master,并接收(同步方式、异步方式)Master上的数据。

2.实践操作(ubuntu 12.04)
(1)选用3台机器,应大于等于3台,涉及到采用Replicated LevelDB Store这种方式,需要进行选举需要。
(2)下载zookeeper安装

wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
然后解压:
     tar -xvf  zookeeper-3.3.6.tar.gz -C /opt/amqbroker(需要解压的路径)
修改配置文件:
          zoo_sample.cfg 修改文件名为 zoo.cfg
修改zoo.cfg 配置文件内容为
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/amqbroker/zookeeper/data
dataLogDir=/opt/amqbroker/zookeeper/log
clientPort=2181
server.one=192.168.0.100:2888:3888
server.two=192.168.0.101:2888:3888
server.three=192.168.0.102:2888:3888

然后在/opt/amqbroker/zookeeper/data目录下创建myid文件,在文件中写入当前机器的id,例如配置中server.one=192.168.0.100:2888:3888,在myid文件写入字符 “one” 保存退出。
另外2台机器和这台机器的配置一样,myid 写各自服务器的id名。

3.下载activeMQ并配置

(1)下载地址: wget  http://archive.apache.org/dist/activemq/5.10.1/apache-activemq-5.10.1-bin.tar.gz

(2)解压  tar -xvf apache-activemq-5.10.1-bin.tar.gz

(3)修改配置文件(/opt/amqbroker/apache-activemq-5.10.1/conf) 
<persistenceAdapter>
   <!--   <kahaDB directory="${activemq.data}/kahadb"/> -->
    <replicatedLevelDB directory="${activemq.data}/leveldb"    replicas="3" bind="tcp://0.0.0.0:0" zkAddress="192.168.0.100:2181,192.168.0.101:2181,192.168.0.102:2181" hostname="42.123.81.111" zkPath="/activemq/leveldb-stores"/>
</persistenceAdapter>
启动activemq服务器(切换路径为/opt/amqbroker/apache-activemq-5.10.1/bin目录下):
运行如下命令:
./activemq start 

另外2台服务器配置一遍,注意mq配置中,hostname为各自服务器的ip地址。
3台服务器一次启动。

vi /opt/amqbroker/apache-activemq-5.10.1/conf/jetty.xml

<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
 <!-- the default port number for the web console -->
        <property name="host" value="0.0.0.0"/>
        <property name="port" value="8161"/>
</bean>

jetty默认端口为8161

最后在浏览器中打开3个网页地址为:

http://192.168.0.100:8161/admin/queues.jsp
http://192.168.0.101:8161/admin/queues.jsp
http://192.168.0.102:8161/admin/queues.jsp

如果某个页面能打开activemq的界面,说明此台服务器为master服务器,其他为 slave (备用服务器)

猜你喜欢

转载自blog.csdn.net/u014388408/article/details/52859347