zookeeper+activeMQ 高可用

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: zookeeper+activeMQ 高可用

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 (备用服务器)

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
6月前
|
消息中间件 存储 Kafka
Kafka【环境搭建 02】kafka_2.11-2.4.1 基于 zookeeper 搭建高可用伪集群(一台服务器实现三个节点的 Kafka 集群)
【2月更文挑战第19天】Kafka【环境搭建 02】kafka_2.11-2.4.1 基于 zookeeper 搭建高可用伪集群(一台服务器实现三个节点的 Kafka 集群)
222 1
|
消息中间件 Java Kafka
zookeeper+kafka 集群和高可用
zookeeper+kafka 集群和高可用
|
存储 运维 Java
Apache ZooKeeper - 高可用ZK集群模式搭建与运维
Apache ZooKeeper - 高可用ZK集群模式搭建与运维
266 0
|
关系型数据库 MySQL
浅谈基于 Zookeeper 实现分布式锁对 Maxwell 完成高可用
浅谈基于 Zookeeper 实现分布式锁对 Maxwell 完成高可用
338 0
浅谈基于 Zookeeper 实现分布式锁对 Maxwell 完成高可用
|
消息中间件 存储 NoSQL
ActiveMQ系列:基于LevelDB和 Zookeeper 的数据复制集群
LeveDB 5.6版本之后推出了 LevelDB 的持久化引擎,它使用了自定义的索引代替常用的 BTree 索引,其持久化性能高于KahaDB,虽然默认的持久化方式还是 KahaDB,但是 LevelDB 可能会是趋势。在5.9版本还提供了基于 LevelDB 和 Zookeeper 的数据复制方式,作为 Master-Slave 方式的首选数据复制方案。
284 0
ActiveMQ系列:基于LevelDB和 Zookeeper 的数据复制集群
|
Java
基于zookeeper实现java程序的高可用
基于zookeeper实现java程序的高可用
171 0
基于zookeeper实现java程序的高可用
|
分布式计算 大数据 Scala
Standalone+ZooKeeper 高可用部署_4
快速学习 Standalone+ZooKeeper 高可用部署_4
120 0
Standalone+ZooKeeper 高可用部署_4
|
人工智能 Java 大数据
高级教程分享:Dubbo+Zookeeper+ActiveMQ+Redis等。
image image image 这是个人收藏的Dubbo系列高级教程,包括Zookeeper、Redis、ActiveMQ等实战解析,现在分享出来,获取可在下方公众号中回复:视频 申明:本视频内容与本公众号无任何关系,仅供学习交流使用。
1881 0