zookeeper+activeMQ 高可用

来源:互联网 发布:寻侠感官突破数据 编辑:程序博客网 时间:2024/06/07 06:13

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=2000initLimit=10syncLimit=5dataDir=/opt/amqbroker/zookeeper/datadataLogDir=/opt/amqbroker/zookeeper/logclientPort=2181server.one=192.168.0.100:2888:3888server.two=192.168.0.101:2888:3888server.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.jsphttp://192.168.0.101:8161/admin/queues.jsphttp://192.168.0.102:8161/admin/queues.jsp

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

1 0
原创粉丝点击