2.2. 消息持久性
AMQ Broker 会保留消息数据,以确保消息永远不会丢失,即使代理意外关闭也是如此。AMQ Broker 为消息持久性提供了两个选项:基于日志的持久性和数据库持久性。
基于日志的持久性
默认选项默认选项将消息数据写入文件系统中存储的消息日志文件。最初,这些日志文件都会使用固定大小自动创建,并填充空数据。当客户端执行各种代理操作时,记录会附加到日志中。当其中一个日志文件满时,代理会移动到下一个日志文件。
基于日志的持久性支持事务操作,包括本地和 XA 事务。
基于日志的持久性需要 IO 接口来访问文件系统。AMQ Broker 支持以下内容:
- Linux Asynchronous IO(AIO)
AIO 通常提供最佳性能,但需要以下内容:
- Linux 内核版本 2.6 或更高版本
支持的文件系统
要查看当前支持的文件系统,请参阅 Red Hat AMQ 7 支持的配置。
- Java NIO
- Java NIO 提供良好的性能,可在带有 Java 6 或更新的运行时的任何平台上运行。
数据库持久性
这个选项使用 Java 数据库连接(JDBC)将消息和绑定数据存储在数据库中。如果您在您的环境中已有可靠且高性能的数据库平台,或者公司策略强制使用数据库,则此选项是一个很好的选择。
代理 JDBC 持久性存储使用标准 JDBC 驱动程序创建 JDBC 连接,在数据库表中存储消息和绑定数据。数据库表中的数据使用与基于日志的持久性相同的编码。这意味着,如果直接使用 SQL 访问,存储在数据库中的消息不可读。
要使用数据库持久性,您必须使用受支持的数据库平台。要查看当前支持的数据库平台,请参阅 Red Hat AMQ 7 支持的配置。