在ActiveMQ的官方文档中有提及到使用含有文件锁的分布式文件系统可以达到高可用的目的。参见http://activemq.apache.org/shared-file-system-master-slave.html。并且这种方式效率最高。
由于资源有限,在做实验时只是用了两台机器,并且其中10.85.203.17及部署了ActiveMQ又作为NFS服务器使用。
实施步骤分为两步,首先配置NFS文件系统,其次配置与测试ActiveMQ在该环境下的功能;逻辑结构图:
一、配置NFS
1>设置10.85.203.17为NFS服务器:
1.1>查看是否已安装portmap和nfs
[root@test02 /]# rpm -q nfs-utils portmap
nfs-utils-1.0.9-50.el5
portmap-4.0-65.2.2.1
如果有显示,则表明已安装并且服务正常。nfs依赖portmap服务,所以要先安装portmap。
1.2>查看服务是否启动
[root@test02 /]# service portmap status
portmap (pid 12728) is running...
[root@test02 /]# service nfs status
rpc.mountd (pid 12810) is running...
nfsd (pid 12807 12806 12805 12804 12803 12802 12801 12800) is running...
rpc.rquotad (pid 12795) is running...
如果没启动,则执行
service portmap restart
service nfs restart
1.3>设置共享目录和策略:
vi /etc/export
/home/work 10.85.203.38(rw,sync,no_root_squash) 10.85.203.38(rw,sync,no_root_squash)
表明将目录共享给客户端IP(也可以用10.85.203.*等)并且赋予客户端的权限;
1.4>重启服务
[root@test02 /]# service portmap restart
[root@test02 /]# service nfs restart
如果看到一连串的[ok]时,表示已经启动成功了。如果第一次启动,nfs ,又使用restart命令,可能开始会出现一些[FAILED],那是在停止nfs服务,而nfs服务还没有启动所以会FAILED。
2>挂载NFS客户端
2.1>挂载10.85.203.38
[root@test02 /]mount -t nfs 10.85.203.17:/home/work /george/installs/activemq-datas
语义是将10.85.203.38上的目录/george/installs/active-datas挂载以NFS的方式挂载到10.85.203.17 NFS服务器的/home/work目录;
2.2>挂载10.85.203.17
[root@test02 /]mount -t nfs 10.85.203.17:/home/work /george/installs/activemq-datas
语义是将10.85.203.17上的目录/george/installs/active-datas挂载以NFS的方式挂载到10.85.203.17 NFS服务器的/home/work目录;
挂载测试可以分别在.17和.38机器的/george/installs/active-datas目录里创建和删除文件来完成;
3>其他
3.1>常用mount指令:
查看NFS的各种状态:
showmount -e
可看有分享哪些目录
3.2>常见问题:
1> failed, reason given by server: Permission denied
1.1>检查NFS的运行级别:
# chkconfig --list portmap
# chkconfig --list nfs
1.2>根据需要设置在相应的运行级别自动启动NFS:
# chkconfig --level 235 portmap on
# chkconfig --level 235 nfs on
1.3>nfs server接到客户端的mount时,会先客户的IP做反解成域名,用域名(注意是用域名而不是IP)去和/etc/exports做比较,如果匹配不成功会失败。或者在/etc/exports中使用机器名来指定客户端IP;
二、ActiveMQ配置及测试:
1>配置
只需要分别修改.17和.38机器的 /conf/activemq.xml文件,将
<persistenceAdapter>
<kahaDB directory="${activemq.base}/data/kahadb"/>
</persistenceAdapter>
修改为
<persistenceAdapter>
<kahaDB directory="/george/installs/activemq-datas"/>
</persistenceAdapter>
2>测试
2.1>分别重启.17和.38的ActiveMQ应用,会看到.17正常启动,.38机器会有未获取到文件锁提示。
2.2>我已测试成功的两种场景:
2.2.1>分别起停.17和.38机器上的ActiveMQ,master-slave切换正常。
2.2.2>修改ActiveMQ自带例子里的程序,让生产者线程不断生产消息以及消费者线程不断消费消息。检查在master和slave切换时数据无丢失。
2.2.3>还没进行大数据量测试以及疲劳测试,以后再用JMeter做一个测试。
- 大小: 250.4 KB
- 大小: 6.9 KB
- 大小: 202.8 KB
- 大小: 45.2 KB
分享到:
相关推荐
ActiveMQ支持多种高可用的主从配置模式,包括Shared File System Master/Slave、JDBC Master/Slave和Replicated LevelDB Store。文章主要介绍了使用JDBC Master/Slave模式来实现ActiveMQ的高可用配置。 在JDBC ...
这种配置是ActiveMQ推荐的策略之一,提供了三种不同的实现方式:Pure Master Slave、Shared File System Master Slave和JDBC Master Slave。 在安装和配置ActiveMQ Master-Slave集群之前,需要准备以下环境: 1. ...
在 ActiveMQ 5.8 版本中,使用 NFSV4(Network File System version 4)作为共享存储方案,可以实现高效的数据同步。 ### 硬件与软件环境 在搭建 ActiveMQ master-slave 架构之前,需要确保具备以下硬件和软件环境...
ActiveMQ 基于 ZooKeeper 的主从(LevelDB Master/Slave)搭建 ActiveMQ 是一个流行的开源消息中间件,它提供了高性能、可靠的消息队列服务。在分布式系统中,ActiveMQ 可以作为消息中间件,实时同步数据,避免单...
2. Share File System Master/Slave:在这种方案中,Master和Slave共享同一个文件系统,哪个服务器先启动就会成为Master,持有文件系统的锁。如果Master宕机,文件锁被释放,Slave获取锁并成为新的Master。这种方式...
在ActiveMQ中,主要有三种Master-Slave实现:Pure Master Slave、Shared File System Master Slave和JDBC Master Slave。这里主要讨论的是JDBC Master Slave模式,它依赖于数据库来确定哪个Broker是Master,哪个是...
ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循开放消息传递协议(Open Message Broker API,也称为JMS,Java消息服务)。ActiveMQ在分布式系统中起着至关重要的作用,它允许应用程序通过发送和接收...
wget http://apache.mirrors.ionfish.org/activemq/5.x/apache-activemq-5.x.x-bin.zip ``` 解压文件: ``` unzip apache-activemq-5.x.x-bin.zip ``` 将解压后的目录移动到`/opt`或自定义的目录: ``` ...
ActiveMQ 集群——JDBC Master Slave + Broker Cluster ActiveMQ 集群是指将多个 ActiveMQ 服务器组合在一起,以提高系统的可扩展性和可靠性。在这个集群中,我们可以使用 JDBC Master Slave 模式和 Broker Cluster...
1.解压 ...ACTIVEMQ_HOME=/opt/apache-activemq-5.15.12 PATH=/opt/apache-activemq-5.15.12/bin:$PATH export ACTIVEMQ_HOME PATH 5.activemq的后台默认端口是61616,前台访问端口是8161
**ActiveMQ**是Apache软件基金会开发的一款开源消息中间件,实现了JMS标准,提供了对点对点和发布/订阅模型的支持。ActiveMQ具备以下特性: 1. **跨语言支持**:除了Java,还支持其他编程语言,如C++、Python等。 2....
在ActiveMQ集群环境中,实现消息均衡消费和主备切换是一个重要的功能。本示例主要讨论了如何通过配置和代码实现ActiveMQ集群中的`conduitSubscriptions`策略,以及结合`jdbc`存储,来确保消息的高可用性和消费的均衡...
将activemq文件夹剪切到/usr目录下,然后打开终端,输入`gedit /usr/activemq/bin/activemq`命令,以打开activemq文件。在文件中添加以下代码: ``` ### BEGIN INIT INFO # Provides: activemq # Required-Start: $...
可以使用 Apache ActiveMQ 的集群模式,例如使用 Master-Slave 模式或 Replicated LevelDB 模式。 总结 搭建 ActiveMQ 持久化和集群环境需要对 Linux 操作系统、Java 环境、ActiveMQ 等方面有深入的了解。需要安装...
ActiveMQ 是一个开源的消息中间件,它遵循Java消息服务(JMS)标准,为企业级应用程序提供高效率、可扩展和可靠的异步通信解决方案。在这个"ActiveMQ 教学视频/教程 /附带笔记等资源"的压缩包中,你将找到一系列关于...
ActiveMQ-jms jar包是Apache ActiveMQ项目的一部分,它提供了Java消息服务(JMS)的实现,使得开发者能够在Java应用程序中使用消息传递功能。ActiveMQ是业界广泛使用的开源消息代理,它支持多种协议,如AMQP、STOMP...
[root@MASTER1 apache-activemq-5.13.3]# . /etc/profile ``` 启动 ActiveMQ 使用以下命令启动 ActiveMQ: ``` # activemq start ``` 访问 ActiveMQ 后台 可以使用以下 URL 访问 ActiveMQ 后台: ``` ...
ActiveMQ,作为一款流行的开源消息中间件,也支持WebSocket协议,使得客户端可以通过WebSocket接口来接收和发送消息。 ActiveMQ是Apache软件基金会开发的消息队列产品,它遵循开放标准,如JMS(Java Message ...
ActiveMQ是Apache软件基金会开发的一个开源消息传递平台,支持多种协议,包括NMS(.NET Messaging Service),它是专门为.NET平台设计的ActiveMQ接口。 首先,我们需要了解发布/订阅模式。在这种模式下,生产者...