现在用NFS作为共享存储, ActiveMQ的Master/Slave部署方式如下:

先启动Broker1,它先在NFS上创建了锁, 也自然地它成Master。 这时, 再启动Broker2, 看到Broker2有这样的日志:
2012-08-27 11:04:05,663 | INFO | Using Persistence Adapter: KahaDBPersistenceAdapter[/usr/local/wxcTest/mnt/amqDir] | org.apache.activemq.broker.BrokerService | main
2012-08-27 11:04:05,701 | INFO | Database /usr/local/wxcTest/mnt/amqDir/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: File '/usr/local/wxcTest/mnt/amqDir/lock' could not be locked. | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-08-27 11:04:15,703 | INFO | Database /usr/local/wxcTest/mnt/amqDir/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: File '/usr/local/wxcTest/mnt/amqDir/lock' could not be locked. | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-08-27 11:04:25,706 | INFO | Database /usr/local/wxcTest/mnt/amqDir/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: File '/usr/local/wxcTest/mnt/amqDir/lock' could not be locked. | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-08-27 11:04:35,709 | INFO | Database /usr/local/wxcTest/mnt/amqDir/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: File '/usr/local/wxcTest/mnt/amqDir/lock' could not be locked. | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-08-27 11:04:45,712 | INFO | Database /usr/local/wxcTest/mnt/amqDir/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: File '/usr/local/wxcTest/mnt/amqDir/lock' could not be locked. | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-08-27 11:04:55,714 | INFO | Database /usr/local/wxcTest/mnt/amqDir/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: File '/usr/local/wxcTest/mnt/amqDir/lock' could not be locked. | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-08-27 11:05:05,717 | INFO | Database /usr/local/wxcTest/mnt/amqDir/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: File '/usr/local/wxcTest/mnt/amqDir/lock' could not be locked. | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-08-27 11:05:15,719 | INFO | Database /usr/local/wxcTest/mnt/amqDir/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: File '/usr/local/wxcTest/mnt/amqDir/lock' could not be locked. | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-08-27 11:05:25,722 | INFO | Database /usr/local/wxcTest/mnt/amqDir/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: File '/usr/local/wxcTest/mnt/amqDir/lock' could not be locked. | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-08-27 11:05:35,725 | INFO | Database /usr/local/wxcTest/mnt/amqDir/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: File '/usr/local/wxcTest/mnt/amqDir/lock' could not be locked. | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-08-27 11:05:45,727 | INFO | Database /usr/local/wxcTest/mnt/amqDir/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: File '/usr/local/wxcTest/mnt/amqDir/lock' could not be locked. | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-08-27 11:05:55,730 | INFO | Database /usr/local/wxcTest/mnt/amqDir/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: File '/usr/local/wxcTest/mnt/amqDir/lock' could not be locked. | org.apache.activemq.store.kahadb.MessageDatabase | main
..........................
这个日志正常不? 从原理上说好像是正常的。
不过,让slave这样一直跑着去看是否能得到锁,总归不是一个好事, 太浪费broker2机器的资源了吧?
再进一步说, 共享存储模式下,slave等待锁的机制是怎样的?
相关推荐
热备模式是ActiveMQ中一种非常重要的高可用性部署方式,其核心是通过共享文件系统来实现主备节点之间的数据同步与切换,从而确保消息处理的连续性和可靠性。 #### 二、热备模式原理 基于共享文件系统的热备方案是...
在 ActiveMQ 5.8 版本中,使用 NFSV4(Network File System version 4)作为共享存储方案,可以实现高效的数据同步。 ### 硬件与软件环境 在搭建 ActiveMQ master-slave 架构之前,需要确保具备以下硬件和软件环境...
自ActiveMQ 5.9.0版本起,原有的Pure Master Slave部署方式已被新的基于ZooKeeper + LevelDB的实现所取代,而其他传统的部署方式仍然保留。 ##### 1. Master-Slave部署方式 Master-Slave部署方式主要包括以下几种...
Master-Slave模式是ActiveMQ的一种简单的集群模式,其中有一个主节点(Master)和多个从节点(Slave)。主节点处理所有的消息发送和接收,而从节点则用作备份。一旦主节点宕机,一个从节点会接替主节点的角色成为新...
8. **故障恢复**:ActiveMQ支持故障恢复和高可用性配置,如使用Master-Slave模式或者通过共享存储实现主备切换。它还提供消息持久化机制,防止消息丢失。 9. **插件扩展**:ActiveMQ具有高度可扩展性,允许开发者...
- **集成 ActiveMQ 和 Tomcat**:将 ActiveMQ 集成到 Tomcat 容器中,便于部署。 - **什么时候使用 ActiveMQ**:分析在哪些场景下使用 ActiveMQ 最为合适。 #### 十四、ActiveMQ优化 - **影响 ActiveMQ 性能的因素*...
这可能涉及到`master-slave`配置或`shared store`模式,前者通过主从复制实现,后者则允许所有Broker共享同一存储,实现数据同步。 3. **故障检测与恢复**:在静态Broker集群中,ActiveMQ会持续监控集群中其他...
配置 ActiveMQ 与 Tomcat 的集成方式,使得可以在 Tomcat 容器内部署 ActiveMQ。 **5.4 Spring** 使用 Spring 框架配置 ActiveMQ 的示例,利用 Spring 的强大功能简化 ActiveMQ 的配置过程。 #### 六、Broker ...
同时,为了保证数据的一致性,可能需要学习和理解Master/Slave配置或者使用基于文件系统的共享存储。 此外,安全也是ActiveMQ部署中不可忽视的部分。理解如何配置用户、角色和权限,以及如何保护JMX管理接口,是...
总结来说,ActiveMQ的基于共享文件的集群模式提供了高可用性的解决方案,通过共享持久化存储,确保了在节点故障时,服务不会中断。测试环境的搭建和配置过程是理解这一模式的关键,而实际生产环境中,应选用可靠的...
ActiveMQ 集群安装是提高消息中间件可用性和可靠性的关键步骤,特别是从5.9版本开始,ActiveMQ引入了新的集群实现方式,去除了传统的Master-Slave模式,并引入了基于ZooKeeper和LevelDB的解决方案。这种方式提供了一...
通过上述集群配置和测试,可以评估不同集群方案在性能、可靠性和资源利用率方面的表现,为实际生产环境选择最佳的ActiveMQ部署策略提供依据。同时,根据测试结果,可能需要调整配置参数,如内存限制、持久化策略等,...
### ActiveMQ快速上手知识点详解 #### 一、ActiveMQ简介 **1.1 定义与作用** - **定义**:ActiveMQ是Apache组织下的一个开源项目,它是一款完全支持JMS 1.1和J2EE 1.4规范的消息中间件。 - **作用**:主要用于...
在实际应用中,可以根据需求调整配置,比如改变ActiveMQ的部署方式,或者增加更多的slave节点,以适应不断变化的业务需求。理解并熟练掌握这些配置和组件的交互,对于优化分布式搜索环境至关重要。
- 可以采用Master-Slave部署模式实现高可用性,如通过共享文件系统或数据库等方式来保持数据一致性。 2. **RabbitMQ** - 提供了Cluster模式,可以通过配置多个节点形成集群,从而实现故障自动转移和负载均衡。 ...
单点登录, SSM框架公共模块 ├── zheng-admin -- 后台管理模板 ├── zheng-ui -- 前台thymeleaf模板[端口:1000] ...## 环境搭建(QQ群内有“zheng环境搭建和系统部署文档.doc”) #### 开发工具: ...