AMQ Clients 2.10 发行注记

Red Hat AMQ 2021.Q3

Red Hat AMQ 客户端发行注记

摘要

这些发行注记包含有关 AMQ 客户端 2.10 版本中新功能、增强功能、修复和问题的最新信息。

使开源包含更多

红帽承诺替换我们的代码、文档和网页属性中存在问题的语言。我们从这四个术语开始: master、slave、blacklist 和 whitelist。这些更改将在即将发行的几个发行本中逐渐实施。如需了解更多详细信息,请参阅 CTO Chris Wright 信息

第 1 章 新增和改变的功能

注意

此发行版本为 C++、Java 和 Python 引入了新的最低要求版本:C++11、Java 11 和 Python 3.6。如需更多信息,请参阅 支持的 Red Hat AMQ 7 配置

注意

此发行版本在 Python 和 Ruby 客户端中默认启用 SSL/TLS 主机名和证书验证。这与 C++、JMS 和 .NET 客户端的现有行为相匹配。

1.1. AMQ C++

  • ENTMQCL-1083 - 链接的应用属性

    C++ 客户端现在可以在 AMQP 链接中查询和设置 application-specfic 属性。

1.2. AMQ Python 和 AMQ Ruby

  • ENTMQCL-2961 - 默认启用 SSL/TLS 主机验证

    Python 和 Ruby 客户端现在默认启用 SSL/TLS 主机名和证书验证。这与 C++、JMS 和 .NET 客户端的现有行为相匹配。

第 2 章 修复的问题

2.1. AMQ JMS

  • ENTMQCL-2681 - 在关闭生产者时,Wait()有时会永久阻止

    在产品的早期版本中,制作者 wait()操作可能会在消息发送失败时无限期阻止。

    在这个发行版本中,wait()操作可以如预期完成。

  • ENTMQCL-2784 - 不要基于名称解析进行重复数据删除故障转移 URI

    在产品的早期版本中,客户端在删除故障切换列表中重复之前执行了 DNS 解析步骤。这会导致代理后面的服务器出现问题。

    在本发行版本中,客户端使用故障切换列表中给出的名称删除重复。

有关版本中已修复的问题的完整列表,请参阅 AMQ Clients 2.10.x 解析的问题

2.2. AMQ C++

  • ENTMQCL-2583 - 使用 CMake 2.8 构建示例失败

    在产品的早期版本中,在使用 CMake 2.8 时示例无法构建。

    在本发行版本中,示例构建示例如预期。

第 3 章 重要备注

3.1. 长期支持

与 AMQ 客户端 2.10 并行,AMQ 客户端 2.9 作为长期支持(LTS)版本提供。AMQ 客户端 2.9 在长达 12 个月的微发行版本(2.9.1、2.9.2、2.9.3 等)中提供了程序错误修正和安全公告。

请注意有关 LTS 发行流的以下要点:

  • LTS 发行流只提供程序错误修正。此流不会添加新的增强功能。
  • 要保留在受支持的配置中,您必须升级到 LTS 发行流中的最新微版本。
  • 从 AMQ 客户端 2.9.0 GA 起,LTS 版本将获得至少 12 个月的支持。

3.2. AMQ C++

  • 未设置的接口

    AMQ C++ 消息传递 API 包括尚未验证并可在未来版本中更改的类和方法。请注意,在未来使用这些接口可能需要更改您的应用程序代码。

    这些接口在 API 引用中被标记为 Unse ttled API。它们在 proton ::codec 和 proton:: io 命名空间中包含接口,并在 proton 命名空间中 包含下列接口:

    • listen_handler
    • messaging _ handler 上的 on_sender_drain _start 和 on_sender_drain_finish 方法
    • 发件人上的 排空 和回退 方法
    • 接收器上的 空和排空 方法

    标题文件中存在的 API 元素但尚未记录,被视为未设置,可能会有变化。

  • 弃用的接口

    在 API 引用中标记为 已弃用 的接口将调度到以后的发行版本中删除。

    此发行版本会在 proton 命名空间中 弃用以下接口。

    • void_function0 - 改为使用 工作 类或 C++11 lambdas。
    • default_container - 改为使用容器 类。
    • URL and url _error - 改为使用第三方 URL 库。

3.3. 首选客户端

通常,支持 AMQP 1.0 标准的 AMQ 客户端是新应用程序开发的首选。但是,适用以下例外情况:

  • 如果您的实施需要分布式事务,请使用 AMQ 核心协议 JMS 客户端。
  • 如果您的域中需要 MQTT 或 STOMP(例如用于 IoT 应用程序),请使用社区支持的 MQTT 或 STOMP 客户端。

3.4. 旧客户端

  • AMQ OpenWire JMS 客户端已弃用

    AMQ OpenWire JMS 客户端现已在 AMQ 7 中弃用。建议此客户端的用户迁移到 AMQ JMS 或 AMQ 核心协议 JMS。

  • 弃用 CMS 和 NMS API

    ActiveMQ CMS 和 NMS 消息传递 API 在 AMQ 7 中弃用。建议 CMS API 用户迁移到 AMQ C++,NMS API 用户迁移到 AMQ .NET。CMS 和 NMS API 的功能可能会在 AMQ 7 中减少。

  • 弃用旧的 AMQ C++ 客户端

    传统的 AMQ C++ 客户端(之前在 MRG 消息传递中提供的 C++ 客户端)已在 AMQ 7 中弃用。建议此 API 的用户迁移到 AMQ C++。

  • Core API 不支持

    不支持 Artemis Core API 客户端。此客户端与支持的 AMQ 核心协议 JMS 客户端不同。

3.5. 上游版本