5.5 The memory message store
5.5 内存消息存储
The memory message store holds all persistent messages in memory. No active caching
is involved, so you have to be careful that both the JVM and the memory limits you
set for the broker are large enough to accommodate all the messages that may exist in
this message store at one time.
内存消息存储将所有的持久化消息放到内存中.内存消息存储没有活动的缓存,你必须小心的设置JVM以及
内存大小限制,以便代理有足够的内存容纳所有的消息.
The memory message store can be useful if you know that the broker will only
store a finite amount of messages, which will typically be consumed quickly. But it
really comes into its own for small test cases, where you want to prove interaction with
a JMS broker, but don’t want to incur the cost of a message store start time, or the hassle
of cleaning up the message store after the test has finished.
当你确定代理只会存储有限容量的消息时,内存消息存储将会变得很有用,此时消息分发速度将会非常快.
但是内存消息存储一般用于小规模的测试,即,你打算测试与JMS代理的交互,但不想在代理的
消息存储启动时多花时间,或者不想在测试结束后卷入清理消息存储的麻烦中.
5.5.1 Configuring the memory store
5.5.1 配置内存消息存储
Configuring the memory store is simple. The memory store is the implementation
used when the broker property named persistent is set to false (the default is true).
Here’s an example of configuration which enables use of the ActiveMQ message store:
配置内存消息存储很简单.配置内存消息存储是只需要将broker的persistent属性值设置为false
(该属性默认值为true).下面是配置ActiveMQ内存消息存储示例:
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<broker brokerName="test-broker" persistent="false" xmlns="http://activemq.apache.org/schema/core">
<transportConnectors>
<transportConnector uri="tcp://localhost:61635"/>
</transportConnectors>
</broker>
</beans>
By setting the persistent attribute on the broker element to false, this effectively tells
the broker not to persist messages to long-term storage. Instead, the ActiveMQ broker
will hold messages in memory until the messages are either consumed or the
ActiveMQ broker is shut down.
通过设置broker元素的persistent属性值为false,有效的通知代理不用持久化消息到长期存储介质中.
相反的,ActiveMQ代理会将消息保存到内存中,直到消息被消息消费者处理或者ActiveMQ代理关闭.
Embedding an ActiveMQ broker with the memory store is easy. The following
example starts a broker with the memory store:
通过代码启动一个使用内存消息存储的ActiveMQ代理十分容易.下面的通过代码示例如何
启动一个使用内存消息存储的代理:
import org.apache.activemq.broker.BrokerService;
public void createEmbeddedBroker() throws Exception
{
BrokerService broker = new BrokerService();
//configure the broker to use the Memory Store
broker.setPersistent(false);
//Add a transport connector
broker.addConnector("tcp://localhost:61616");
//now start the broker
broker.start();
}
Note the bold text that sets persistence to false on the broker object. This is equivalent
to the previous XML configuration example.
注意,上面斜体部分设置broker对象持久化属性为false,这跟在前面XML文件中的配置是等价的.
There are currently no utilities to change from one type of ActiveMQ message
store to another. If you want to change message stores for an application, it’s recommended
that you only do so on a new ActiveMQ broker, or wait until your application
has consumed all the messages sent, then close down the ActiveMQ broker, reconfigure
it for a new message store, and restart it.
目前没有必要修改ActiveMQ的消息存储.如果你打算为一个应用程序修改消息存储,推荐使用一个新的
ActiveMQ代理,或者等到你的程序处理了所有已发送的消息,然后关闭ActiveMQ代理,然后配置新的
消息存储,最后重启代理.
This concludes the discussion of the various message store implementations for
message persistent in ActiveMQ. Another topic that bears some discussion regarding
message persistence is a more specialized case for caching messages in the ActiveMQ
broker for nondurable topic subscribers.
到这里,讨论ActiveMQ消息存储的各种实现就告一段落了.处理消息持久化,另外一个值得讨论的话题是
ActiveMQ如何为非持久化的消息主题订阅者缓存消息.
相关推荐
《CE5.5中文版:深入理解与游戏内存修改指南》 CE5.5中文版,全称为 Cheat Engine 5.5,是一款广泛应用于游戏修改的开源工具,它以其强大的内存搜索和修改功能,深受玩家和游戏开发者的喜爱。这款软件能够帮助用户...
8. **新函数和改进**:例如`password_hash()`和`password_verify()`用于安全地存储和验证密码,`intl`扩展的增强,以及`json_last_error_msg()`等新的JSON处理函数。 9. **错误处理**:PHP5.5引入了异常处理机制,...
MySQL5.5中文版是MySQL数据库管理系统的一个重要版本,它为用户提供了稳定、高效和功能丰富的数据存储解决方案。MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典的MySQL AB公司开发,后来被甲骨文公司收购...
MySQL Server 5.5是MySQL数据库管理系统的一个重要版本,它在2010年发布,提供了许多增强功能和性能优化,旨在为各种规模的企业提供稳定、高效的数据存储和管理解决方案。MySQL 5.5尤其适合那些需要处理大量数据并...
7. **Memory优化**:MySQL 5.5对内存管理进行了优化,减少了内存碎片,提高了内存利用率。 8. **查询优化器改进**:查询优化器现在能够更好地分析查询语句,选择更高效的执行计划,从而提高查询性能。 在Windows...
MySQL 5.5版本首次将InnoDB作为默认的存储引擎,取代了传统的MyISAM引擎,这一改变对数据库性能有着深刻的影响。 MySQL 5.5的性能提升主要体现在以下几个方面: 1. 默认存储引擎的变更:MySQL 5.5将默认的存储引擎...
4. **存储引擎**:MySQL 5.5支持多种存储引擎,如InnoDB(提供事务处理和外键支持)、MyISAM(快速读取但不支持事务)和MEMORY(数据存储在内存中)。手册会详细介绍每种引擎的特点和适用场景。 5. **性能优化**:...
- InnoDB在5.5版本中进行了优化,包括更快的插入速度、更高效的内存管理以及更好的并行处理能力。 3. **性能提升**: - MySQL5.5引入了更多的性能优化,例如:查询缓存的改进、更有效的查询优化器、更高效的索引...
7. **内存管理**:优化了内存使用,减少了内存碎片,提升了整体性能。 8. **并行导入**:对于大数据导入,MariaDB 5.5支持并行导入,可以显著加快数据加载速度。 解压“mariadb-5.5.68.tar.gz”后,用户将获得源...
- **增强的性能**:5.5版本提升了性能和可扩展性,支持更大的虚拟机和更大的内存。 - **简化的操作**:改进了vCenter Server的安装和升级过程,以及用户界面的易用性。 - **更强大的存储功能**:引入了Storage DRS,...
2. **InnoDB作为默认存储引擎**:在MySQL 5.5中,InnoDB取代MyISAM成为默认的存储引擎,因为InnoDB提供了事务处理、行级锁定和外键支持,更适合于需要高并发和数据一致性的应用。 3. **Full-Text Search 改进**:...
在安装PRODAVE 5.5之前,确保计算机满足软件的系统要求,例如操作系统兼容性、内存大小、硬盘空间以及可能的硬件驱动需求。安装过程中,可能需要输入许可证密钥或激活码以验证软件授权。 为了确保安全,最好在安装...
2. **文件系统(File System)**:VxWorks支持多种文件系统,如VFAT、NFS、RAM Disk等,方便在不同存储设备上操作文件。 3. **网络堆栈(TCP/IP Stack)**:VxWorks的网络功能强大,支持完整的TCP/IP协议栈,包括...
1. **InnoDB存储引擎增强**:MySQL5.5默认的事务处理引擎是InnoDB,这个版本显著提高了InnoDB的性能。引入了InnoDB并行插入(Parallel InnoDB Insert Buffer Merge)和自适应哈希索引(Adaptive Hash Index),使得...
MySQL 5.5引入了InnoDB作为默认的事务处理存储引擎,提供了ACID事务支持和行级锁定。此外,还有MyISAM用于非事务处理,MEMORY用于内存中的表,以及ARCHIVE等其他引擎。每个引擎的特点和适用场景在手册中都有详尽解释...
它支持多种硬件平台,包括PLC、DCS、IPC等,可以实现设备数据采集、实时监控、报警处理、历史数据存储和报表生成等功能。 2. **运行环境需求** 在安装或升级MCGS5.5之前,确保你的计算机满足以下基本运行环境要求...
作为一个全面的数据库解决方案,MySQL 5.5对于企业级应用、网站开发以及数据存储都有着广泛的应用。 1. **InnoDB存储引擎的增强**: - MySQL 5.5默认的存储引擎从MyISAM变为了InnoDB,这标志着对事务处理和数据...
6. **内存管理**:MySQL 5.5改进了内存分配策略,减少了内存碎片,提高了服务器的性能和稳定性。 7. **SSL加密**:5.5版本增强了对SSL连接的支持,提供了更安全的数据传输方式,满足了更高的数据保护需求。 8. **...
1. **InnoDB存储引擎优化**:MySQL 5.5默认使用InnoDB存储引擎,提供了事务处理、行级锁定以及外键支持,增强了并发性能和数据一致性。 2. **性能提升**:通过优化查询缓存、线程池和并行复制等机制,提高了数据库的...