1.3. 了解 AMQ 7 中的重要新概念
在学习每个 AMQ 功能区域的具体配置更改之前,您首先应了解 AMQ 6 和 AMQ 7 之间的重要概念差异。
AMQ 7 中的几个关键的架构差异。此外,此版本中还实施了一个新的消息寻址和路由模型。
1.3.1. AMQ 7 中的架构更改
AMQ 7 提供对代理、消息存储以及代理部署方式的传入网络连接的关键架构更改。
传入连接的传输连接器变化
AMQ 6 使用了不同类型的传输连接器,如 TCP(同步)和 Java NIO(非阻塞)。
在 AMQ 7 中,您不再需要选择要使用的传输类型:不同虚拟机中实体之间的所有传入网络连接都使用 Netty 连接。Netty 是一个高性能、低级网络库,允许将网络连接配置为使用 Java IO、Java NIO、TCP 套接字、SSL/TLS、HTTP 和 HTTPS。
消息存储和分页更改
代理在内存中存储消息并将其保存到磁盘的过程与 AMQ 7 不同。
AMQ 6 使用 KahaDB 作为消息存储,它包含用于快速连续消息存储的消息日志,以及在需要时检索消息的索引。
AMQ 7 包含自己的内置消息存储,由仅附加的消息日志组成。它不使用索引。
有关这些更改的更多信息,请参阅 消息持久性和分页。
代理部署更改
在 AMQ Broker 7 中,代理部署与 AMQ 6 的不同:
部署机制
默认情况下,AMQ 6 部署到 Apache Karaf 容器中。AMQ Broker 7 不是。
部署多个代理
在 AMQ 6 中,若要部署多个代理,您必须部署一组独立代理(需要您单独安装和配置每个代理),或使用 JBoss Fuse Fabric 部署 AMQ 代理。
在 AMQ Broker 7 中,部署多个代理需要一次安装 AMQ Broker 7,然后在同一台机器上安装,并根据需要创建多个 代理实例。AMQ Broker 7 不应该使用 fabrics 进行部署。