这里只是简述我的配置以及碰到的问题.
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="broker"
...
<managementContext>
<managementContext createConnector="true"/>
</managementContext>
...
<persistenceAdapter>
<!-- <kahaDB directory="${activemq.data}/kahadb"/> -->
<!-- <jdbcPersistenceAdapter dataSource="#mysql-ds" /> -->
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:0"
zkAddress="192.168.1.210:2181,192.168.1.211:2181,192.168.1.212:2181"
zkPath="/activemq/leveldb-stores"
hostname="192.168.1.210"
sync="local_disk"
/>
</persistenceAdapter>
...
</broker>
要求使用failover协议
引用
failover:(tcp://192.168.1.210:61616,tcp://192.168.1.211:61616,tcp://192.168.1.212:61616)
问题一:
关闭ActiveMQ时异常
引用
Connecting to JMX URL: service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
ERROR: java.lang.RuntimeException: Failed to execute stop task. Reason: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: java.net.ConnectException: Connection refused]
将 <managementContext createConnector="
true"/> 改为 true,默认是false.
问题二:
测试时使用了3个ActiveMQ集群Master-Slave, 比如我的是 210, 211, 212 , 如果正在使用 210为Master(测试方法为访问3台机器的 8161端口, 哪个可以访问,当前哪个是 Master),关闭 210 ,会在 MessageProducer.send 方法时阻塞, 无法正常工作,当210再次启动时, MessageProducer.send方法不再阻塞, 但 Master 可能会变成其他的node,比如 211.
解决办法是参照这里
http://blog.csdn.net/srnpr/article/details/17370813?reload
http://www.cnblogs.com/fuhaots2009/p/3478413.html
这两篇是一样的,不知道谁是原创,都粘贴了.
加上
sync="local_disk" 参数配置
引用
sync
default value: quorum_mem
Controls where updates are reside before being considered complete. This setting is a comma separated list of the following options: local_mem, local_disk, remote_mem, remote_disk, quorum_mem, quorum_disk. If you combine two settings for a target, the stronger guarantee is used. For example, configuring local_mem, local_disk is the same as just using local_disk. quorum_mem is the same as local_mem, remote_mem and quorum_disk is the same as local_disk, remote_disk
详细配置请参见: http://activemq.apache.org/replicated-leveldb-store.html
分享到:
相关推荐
2. **消息模型**:掌握点对点(Queue)和发布/订阅(Topic)两种消息模型。点对点模型确保每个消息仅被一个消费者接收,而发布/订阅模型允许多个订阅者接收相同的消息。 3. **消息类型**:理解JMS提供的不同消息...
2. **Transport Connectors** - `<transportConnectors>`元素定义了ActiveMQ如何监听和连接到网络。常见的连接器有TCP、SSL/TLS和NIO。 - 每个`<transportConnector>`元素代表一个监听端口,例如`uri="tcp://0.0....
<to uri="activemq:toEndpoint" id="to2"/> <when id="when2"> ${in.header.odd} == '1' <to uri="activemq:toEndpoint2" id="to3"/> <to uri="activemq:others"/> ``` 在上面的示例中,我们使用了...
2. **多种协议支持**:除了JMS,ActiveMQ还支持STOMP、AMQP、MQTT等多种消息协议,这使得不同平台和语言的应用可以方便地与之交互。 3. **高可用性**:通过集群和故障转移,ActiveMQ可以实现高可用性,确保消息服务...
2. 高性能和可扩展性:ActiveMQ采用了高效的存储机制和网络协议,能够处理大量并发连接和高频率的消息交换。通过集群和负载均衡,可以轻松扩展以满足不断增长的需求。 3. 路由和过滤:ActiveMQ提供丰富的消息路由和...
2. **conf**:配置文件目录,其中的`activemq.xml`是最核心的配置文件,定义了ActiveMQ服务器的行为,如连接器、代理策略、持久化机制等。 3. **data**:这是ActiveMQ运行时存储数据的目录,包括消息存储、临时文件...
2. **配置文件**:ActiveMQ 的主配置文件为 `activemq.xml`,位于 `conf` 目录下。通过编辑此文件可以修改 ActiveMQ 的各种配置选项,例如 TCP 端口、持久化策略等。 #### 配置示例 - **修改TCP端口**:如果需要...
2. 权限问题:确保执行启动和停止命令的用户有对ActiveMQ目录和文件的适当权限。 3. Java环境:ActiveMQ依赖于Java运行,确保系统已经安装了Java,并且`JAVA_HOME`环境变量指向正确的Java版本。 总的来说,管理...
2. **主题发布/订阅模式**: 通过主题,多个消费者可以订阅同一个消息,实现广播式的消息传递。 3. **持久化**: 支持消息持久化到硬盘,即使在服务器重启后,未处理的消息也能恢复,保障了服务的高可用性。 4. **...
**ActiveMQ 开发实例-2** ActiveMQ 是一个开源的消息中间件,它是Apache软件基金会的顶级项目,广泛应用于分布式系统中的消息传递。本实例将深入探讨如何使用ActiveMQ进行开发,特别是结合C++和MFC(Microsoft ...
### 2. 消息存储 ActiveMQ支持多种消息存储机制,如KahaDB、JDBC和LevelDB。KahaDB是默认的持久化存储,配置在`<dataDirectory>`标签内: ```xml <broker useJmx="true" xmlns="http://activemq.apache.org/schema/...
2. **性能优化**:5.15.0版本在性能上进行了优化,提高了消息处理速度和内存管理效率。它支持批量发送消息,减少网络I/O,同时支持高效的持久化机制,以确保即使在系统重启后也能恢复消息。 3. **安全性**:...
### ActiveMQ高并发处理方案详解 #### 一、引言 在现代分布式系统中,消息队列作为异步通信的核心组件之一,对于提高系统的吞吐量、降低响应时间和实现服务解耦等方面起着至关重要的作用。Apache ActiveMQ作为一款...
2. 测试环境说明 2.1 测试环境系统部署图 测试环境包括客户端(JMeter服务器)、ActiveMQ服务器以及网络连接,确保了独立且可复现的测试条件。 2.2 JMS结构图 JMS架构中,生产者通过JMeter发送消息到ActiveMQ,而...
2. **持久化机制**:ActiveMQ提供基于文件的持久化,确保即使在服务器重启后,消息也不会丢失。此外,还支持JDBC和JPA等数据库持久化,增强系统的可靠性。 3. **高可用性**:通过集群和复制策略,ActiveMQ可以实现...
#### 2. JDK 1.6.x - **ActiveMQ 5.5.0 至 5.9.0**:从5.5.0版本开始,ActiveMQ开始支持JDK 1.6.x,这标志着ActiveMQ对更高版本JDK的支持。随着版本的推进,最低支持版本逐渐提高。 - **特性与改进**:随着JDK 1.6...
##### 2. 安装并配置ActiveMQ - **下载并解压ActiveMQ**: ```bash wget http://mirror.bit.edu.cn/apache/activemq/5.13.4/apache-activemq-5.13.4-bin.tar.gz tar -xzf apache-activemq-5.13.4-bin.tar.gz -C ...
jmx监控ActiveMQ监控 jmx(Java Management Extensions)是一种Java技术,为Java应用程序提供了管理和监控的功能。ActiveMQ是Apache软件基金会下的一个开源消息队列系统,提供了高效、可靠的消息传递服务。在生产...
2. **配置**: 修改conf目录下的activemq.xml文件以定制你的消息代理设置。 3. **创建消息生产者和消费者**: 使用JMS API或者支持的其他协议创建应用程序,发送和接收消息。 4. **访问Web Console**: 浏览器中输入`...
2. **JMS API**:ActiveMQ客户端主要使用Java Message Service(JMS)API来创建、发送、接收和读取消息。JMS API包括ConnectionFactory、Destination、MessageProducer、MessageConsumer和Message等接口或类。 3. *...