附录 A.变更记录
A.1 当前版本
See 第 2.2 节“新增功能”.
A.2 以前的版本
A.2.1 从 1.5 开始的 1.6 更改
Testing Support
现在提供了一个新的测试支持库。有关更多信息,请参见第 3.4 节“测试支持”。
Builder
现在可以使用构建器,它们提供了用于配置Queue
和Exchange
对象的流畅 API。有关更多信息,请参见名为“用于队列和交换的构建器 API”的部分。
Namespace Changes
Connection Factory
现在可以在连接工厂 bean 声明中添加thread-factory
,例如,命名amqp-client
库创建的线程。有关更多信息,请参见第 3.1.2 节“连接和资源 Management”。
使用CacheMode.CONNECTION
时,您现在可以限制允许的连接总数。有关更多信息,请参见第 3.1.2 节“连接和资源 Management”。
Queue Definitions
现在可以为匿名队列提供一种命名策略。有关更多信息,请参见名为“ AnonymousQueue”的部分。
侦听器容器更改
空闲消息侦听器检测
现在可以将侦听器容器配置为在空闲时发布ApplicationEvent
。有关更多信息,请参见“检测空闲的异步用户”一节。
队列检测不匹配
默认情况下,当侦听器容器启动时,如果检测到属性或参数不匹配的队列,则该容器将记录异常,但 continue 侦听。容器现在具有属性mismatchedQueuesFatal
,如果在启动过程中检测到问题,它将阻止容器(和上下文)启动。如果稍后检测到问题(例如从连接失败中恢复之后),它还将停止容器。有关更多信息,请参见第 3.1.15 节“消息侦听器容器配置”。
侦听器容器记录
现在,侦听器容器将其beanName
作为threadNamePrefix
提供到内部SimpleAsyncTaskExecutor
中。这对日志分析很有用。
默认错误处理程序
现在,默认错误处理程序(ConditionalRejectingErrorHandler
)认为不可恢复的@RabbitListener
异常是致命的。有关更多信息,请参见第 3.1.13 节“异常处理”。
自动声明和 RabbitAdmins
有关在应用程序上下文中使用RabbitAdmin
对该选项的语义进行的一些更改,请参见第 3.1.15 节“消息侦听器容器配置”(autoDeclare
)。
AmqpTemplate:超时接收
为AmqpTemplate
及其RabbitTemplate
实现引入了许多带有timeout
的新receive()
方法。有关更多信息,请参见名为“轮询 Consumer”的部分。
AsyncRabbitTemplate
引入了新的AsyncRabbitTemplate
。该模板提供了许多发送和接收方法,其中返回值是ListenableFuture
,以后可用于同步或异步获取结果。有关更多信息,请参见名为“ AsyncRabbitTemplate”的部分。
RabbitTemplate Changes
1 .4.1 引入了在 broker 支持时使用Direct reply-to的功能;它比为每个答复使用一个临时队列更为有效。此版本允许您通过将useTemporaryReplyQueues
属性设置为true
来覆盖此默认行为并使用临时队列。有关更多信息,请参见“ RabbitMQ 直接回复”部分。
RabbitTemplate
现在支持user-id-expression
(使用 Java 配置时为userIdExpression
)。有关更多信息,请参见经过验证的用户 ID RabbitMQ 文档和称为“验证的用户 ID”的部分。
Message Properties
CorrelationId
correlationId
消息属性现在可以是String
。有关更多信息,请参见称为“消息属性转换器”的部分。
长字符串标题
以前,DefaultMessagePropertiesConverter
头的长度比长字符串限制(默认为 1024)长,已“转换”为DataInputStream
(实际上只是引用了LongString
的DataInputStream
)。在输出时,此 Headers 未转换(除非转换为字符串,例如通过在流上调用toString()
来转换为[email protected]
)。
在此版本中,默认情况下,长LongString
保留为LongString
。您可以通过getBytes[]
,toString()
或getStream()
方法访问内容。现在也可以在输出中正确“转换”大的 ImportingLongString
。
有关更多信息,请参见称为“消息属性转换器”的部分。
内送方式
deliveryMode
属性不再 Map 到MessageProperties.deliveryMode
;如果使用相同的MessageProperties
对象发送出站消息,则可以避免意外传播。而是将入站deliveryMode
HeadersMap 到MessageProperties.receivedDeliveryMode
。
有关更多信息,请参见称为“消息属性转换器”的部分。
使用带 Comments 的端点时,Headers 提供在名为AmqpHeaders.RECEIVED_DELIVERY_MODE
的 Headers 中。
有关更多信息,请参见名为“带 Comments 的端点方法签名”的部分。
入站用户 ID
user_id
属性不再 Map 到MessageProperties.userId
;如果使用相同的MessageProperties
对象发送出站消息,则可以避免意外传播。而是将入站userId
HeadersMap 到MessageProperties.receivedUserId
。
有关更多信息,请参见称为“消息属性转换器”的部分。
使用带 Comments 的端点时,Headers 提供在名为AmqpHeaders.RECEIVED_USER_ID
的 Headers 中。
有关更多信息,请参见名为“带 Comments 的端点方法签名”的部分。
RabbitAdmin Changes
Declaration Failures
以前,ignoreDeclarationFailures
标志仅对通道上的IOException
生效(例如参数不匹配)。现在,它对任何异常(例如TimeoutException
)均生效。另外,每当声明失败时,就会发布DeclarationExceptionEvent
。 RabbitAdmin
最后的声明事件也可以作为lastDeclarationExceptionEvent
属性使用。有关更多信息,请参见第 3.1.10 节,“配置代理”。
@RabbitListener Changes
每个 Bean 多个容器
使用 Java 8 或更高版本时,现在可以向@Bean
类或其方法添加多个@RabbitListener
Comments。使用 Java 7 或更早版本时,可以使用@RabbitListeners
容器 Comments 提供相同的功能。有关更多信息,请参见名为“ @Repeatable @RabbitListener”的部分。
@SendTo SpEL 表达式
现在,可以将不具有replyTo
属性的@SendTo
用于路由答复,是针对请求/答复评估的 SpEL 表达式。有关更多信息,请参见称为“回复 Management”的部分。
@QueueBinding Improvements
现在,您可以在@QueueBinding
注解中为队列,交换和绑定指定参数。 @QueueBinding
现在支持头交换。有关更多信息,请参见称为“Comments 驱动的侦听器端点”的部分。
邮件交换延迟
Spring AMQP 现在对 RabbitMQ 延迟消息交换插件具有一流的支持。有关更多信息,请参见第 3.1.11 节“延迟的消息交换”。
交换内部标志
现在可以将任何Exchange
定义标记为internal
,并且RabbitAdmin
会在声明交换时将值传递给代理。有关更多信息,请参见第 3.1.10 节,“配置代理”。
CachingConnectionFactory Changes
CachingConnectionFactory 缓存统计信息
CachingConnectionFactory
现在在运行时和 JMX 上提供缓存属性。有关更多信息,请参见名为“运行时缓存属性”的部分。
访问底层 RabbitMQ 连接工厂
添加了新的吸气剂以提供对基础工厂的访问。例如,这可用于添加自定义连接属性。有关更多信息,请参见第 3.1.3 节“添加自定义 Client 端连接属性”。
Channel Cache
默认的通道缓存大小已从 1 增加到 25.有关更多信息,请参见第 3.1.2 节“连接和资源 Management”。
此外,SimpleMessageListenerContainer
不再将缓存大小调整为至少等于concurrentConsumers
的数量-这是多余的,因为从不缓存容器使用者通道。
RabbitConnectionFactoryBean
现在,工厂 bean 公开一个属性,以将 Client 端连接属性添加到结果工厂进行的 Connecting。
Java Deserialization
使用 Java 反序列化时,现在可以配置允许类的“白名单”。如果您接受来自不受信任来源的带有序列化 Java 对象的消息,那么考虑创建白名单很重要。有关更多信息,请参见称为“ Java 反序列化”的部分。
JSON MessageConverter
JSON 消息转换器的改进现在允许使用消息 Headers 中没有类型信息的消息。有关更多信息,请参见称为“带 Comments 方法的消息转换”部分和名为“ Jackson2JsonMessageConverter”的部分。
Logging Appenders
Log4j2
已添加 log4j2 附加程序,现在可以使用addresses
属性配置附加程序以连接到代理群集。
Client 端连接属性
现在,您可以将自定义 Client 端连接属性添加到 RabbitMQ 连接。
有关更多信息,请参见第 3.2 节“记录子系统 AMQP 附加程序”。
RabbitTemplate Changes
Tip
以前,非事务RabbitTemplate
如果在事务侦听器容器线程上运行,则参与现有事务。这是一个严重的错误;但是,用户可能依赖于此行为。从* version 1.6.2 *开始,必须在模板上设置channelTransacted
布尔值,它才能参与容器事务。
A.2.2 从 1.4 开始的 1.5 更改
不再支持 spring-erlang
spring-erlang
jar 不再包含在分发中。请改用第 3.1.12 节“ RabbitMQ REST API”。
CachingConnectionFactory Changes
CachingConnectionFactory 中的空地址属性
以前,如果连接工厂配置有主机/端口,但还为addresses
提供了空字符串,则主机和端口将被忽略。现在,将空addresses
字符串与null
相同,并将使用主机/端口。
URI Constructor
CachingConnectionFactory
具有一个带有URI
参数的附加构造函数,用于配置代理连接。
Connection Reset
已添加新方法resetConnection()
,以允许用户重置连接。例如,这可以用于在故障转移到辅助代理之后重新连接到主要代理。这将**影响过程中的操作。现有的destroy()
方法的功能完全相同,但是新方法的名称不太令人生畏。
用于控制容器队列声明行为的属性
当侦听器容器使用者启动时,他们尝试被动声明队列以确保它们在代理上可用。以前,如果这些声明失败(例如,由于队列不存在或移动 HA 队列而失败),则重试逻辑固定为每 5 秒间隔进行 3 次重试。如果队列仍然不存在,则该行为由missingQueuesFatal
属性控制(默认为 true)。另外,对于配置为从多个队列侦听的容器,如果只有队列的子集可用,则使用者以 60 秒的固定间隔重试丢失的队列。
这 3 个属性(declarationRetries, failedDeclarationRetryInterval, retryDeclarationInterval
)现在是可配置的。有关更多信息,请参见第 3.1.15 节“消息侦听器容器配置”。
类套餐变更
RabbitGatewaySupport
类已从o.s.amqp.rabbit.core.support
移到o.s.amqp.rabbit.core
。
DefaultMessagePropertiesConverter
现在可以将DefaultMessagePropertiesConverter
配置为确定LongString
的最大长度,该长度将转换为String
而不是DataInputStream
。转换器具有将值作为限制的替代构造函数。以前,此限制是硬编码为1024
个字节。 (也可在* 1.4.4 *中使用)。
@RabbitListener Improvements
@RabbitListener 的@QueueBinding
bindings
属性已与queues
属性互斥地添加到@RabbitListener
Comments 中,以允许指定queue
,其exchange
和binding
以便由 Broker 上的RabbitAdmin
声明。
SpEL in @SendTo
@RabbitListener
的默认回复地址(@SendTo
)现在可以是 SpEL 表达式。
通过属性的多个队列名称
现在可以结合使用 SpEL 和属性占位符来为侦听器指定多个队列。
有关更多信息,请参见称为“Comments 驱动的侦听器端点”的部分。
自动交换,队列,绑定声明
现在可以声明定义了这些实体集合的 bean,而RabbitAdmin
会将内容添加到构建连接时将声明的实体列表中。有关更多信息,请参见称为“声明交换,队列,绑定的集合”的部分。
RabbitTemplate Changes
reply-address
reply-address
属性已作为替代reply-queue
添加到<rabbit-template>
组件。有关更多信息,请参见第 3.1.9 节“请求/回复消息”。 (也可以在* 1.4.4 *中作为RabbitTemplate
上的设置器使用)。
阻止接收方法
RabbitTemplate
现在支持receive
和convertAndReceive
方法中的阻塞。有关更多信息,请参见名为“轮询 Consumer”的部分。
必须使用 SendAndReceive 方法
当使用sendAndReceive
和convertSendAndReceive
方法设置mandatory
标志时,如果无法传递请求消息,则调用线程将抛出AmqpMessageReturnedException
。有关更多信息,请参见称为“答复超时”的部分。
不正确的答复侦听器配置
使用命名答复队列时,框架将尝试验证答复侦听器容器的正确配置。
有关更多信息,请参见称为“答复侦听器容器”的部分。
The RabbitManagementTemplate
引入了RabbitManagementTemplate
,以使用其Management Plugin提供的 REST API 监视和配置 RabbitMQ Broker。有关更多信息,请参见第 3.1.12 节“ RabbitMQ REST API”。
侦听器容器 Bean 名称(XML)
Tip
<listener-container/>
元素上的id
属性已被删除。从此发行版开始,<listener/>
子元素上的id
单独用于命名为每个侦听器元素创建的侦听器容器 Bean。
普通的 Spring bean 名称覆盖被应用;如果使用与现有 Bean 相同的id
解析了更高版本的<listener/>
,则新定义将覆盖现有 Bean。以前,bean 名称是由<listener-container/>
和<listener/>
元素的 ID 组成的。
迁移到此版本时,如果<listener-container/>
元素上有id
,请删除它们并在子<listener/>
元素上设置id
。
但是,为了支持以组的形式启动/停止容器,已添加了新的group
属性。定义此属性后,将此元素创建的容器添加到具有此名称的Collection<SimpleMessageListenerContainer
类型的 Bean 中。您可以遍历该组以启动/停止容器。
Class-Level @RabbitListener
现在可以在类级别应用@RabbitListener
Comments。与新的@RabbitHandler
方法 Comments 一起,这允许根据有效负载类型选择处理程序方法。有关更多信息,请参见称为“多方法侦听器”的部分。
SimpleMessageListenerContainer:支持 BackOff
现在可以为SimpleMessageListenerContainer
提供BackOff
实例以进行consumer
启动恢复。有关更多信息,请参见第 3.1.15 节“消息侦听器容器配置”。
Channels 关闭记录
引入了一种控制通道关闭的日志级别的机制。参见名为“记录通道关闭事件”的部分。
Application Events
现在,当使用者失败时,SimpleMessageListenerContainer
会发出应用程序事件。有关更多信息,请参见“Consumer 事件”部分。
Consumer 标签配置
以前,异步 Consumer 的 Consumer 标签是由代理生成的。使用此版本,现在可以为侦听器容器提供命名策略。参见“Consumer 标签”部分。
MessageListenerAdapter
MessageListenerAdapter
现在支持将队列名称(或使用者标记)Map 到方法名称,以根据接收消息的队列来确定要调用的委托方法。
LocalizedQueueConnectionFactory
一个新的连接工厂,该工厂连接到实际存在镜像队列的群集中的节点。
See 名为“队列亲和力和 LocalizedQueueConnectionFactory”的部分.
匿名队列命名
从* version 1.5.3 *开始,您现在可以控制AnonymousQueue
名称的生成方式。有关更多信息,请参见名为“ AnonymousQueue”的部分。
A.2.3 从 1.3 开始的 1.4 更改
@RabbitListener Annotation
可以使用@RabbitListener
CommentsPOJO 侦听器,该标记由@EnableRabbit
或<rabbit:annotation-driven />
启用。 Spring Framework 4.1 是此功能所必需的。有关更多信息,请参见称为“Comments 驱动的侦听器端点”的部分。
RabbitMessagingTemplate
提供了一个新的RabbitMessagingTemplate
,以允许用户在内部使用`+248+```+249+``与 RabbitMQ 进行交互,可以将其正常配置。 Spring Framework 4.1 是此功能所必需的。有关更多信息,请参见称为“消息传递集成”的部分。
侦听器容器丢失队列致命属性
1 .3.5 在SimpleMessageListenerContainer
上引入了missingQueuesFatal
属性。现在,这在侦听器容器名称空间元素上可用。参见第 3.1.15 节“消息侦听器容器配置”。
RabbitTemplate ConfirmCallback 接口
此接口上的confirm
方法具有一个附加参数cause
。如果可用,此参数将包含否定确认(nack)的原因。参见称为“发布者确认并返回”的部分。
RabbitConnectionFactoryBean
现在提供了一个工厂 bean,以创建CachingConnectionFactory
使用的基础 RabbitMQ ConnectionFactory
。这样可以使用 Spring 的依赖项注入配置 SSL 选项。参见名为“配置基础 Client 端连接工厂”的部分。
CachingConnectionFactory
CachingConnectionFactory
现在允许将connectionTimeout
设置为名称空间中的属性或属性。它将属性设置在基础 RabbitMQ ConnectionFactory
上,参见名为“配置基础 Client 端连接工厂”的部分。
Log Appender
已引入 Logback org.springframework.amqp.rabbit.logback.AmqpAppender
。它提供类似org.springframework.amqp.rabbit.log4j.AmqpAppender
的选项。有关更多信息,请参见这些类的 JavaDocs。
Log4j AmqpAppender
现在支持deliveryMode
属性(PERSISTENT
或NON_PERSISTENT
,默认值:PERSISTENT
)。以前,所有 log4j 消息都是 PERSISTENT。
附加程序还支持在发送前修改Message
-例如,允许添加自定义 Headers。子类应覆盖postProcessMessageBeforeSend()
。
Listener Queues
现在,默认情况下,侦听器容器现在在启动期间重新声明所有丢失的队列。已将新的auto-declare
属性添加到<rabbit:listener-container>
中,以防止重新声明。参见“自动删除队列”部分。
RabbitTemplate:必填和 connectionFactorySelector 表达式
mandatoryExpression
和sendConnectionFactorySelectorExpression
和receiveConnectionFactorySelectorExpression
SpELExpression`s properties have been added to the `RabbitTemplate
。 mandatoryExpression
用于在使用ReturnCallback
时针对每个请求消息评估mandatory
布尔值。参见称为“发布者确认并返回”的部分。当提供AbstractRoutingConnectionFactory
时,将使用sendConnectionFactorySelectorExpression
和receiveConnectionFactorySelectorExpression
来在运行时针对每个 AMQP 协议交互操作确定目标ConnectionFactory
的lookupKey
。参见名为“路由连接工厂”的部分。
侦听器和路由连接工厂
可以为SimpleMessageListenerContainer
配置路由连接工厂,以启用基于队列名称的连接选择。参见名为“路由连接工厂”的部分。
RabbitTemplate:RecoveryCallback 选项
已添加recoveryCallback
属性以在retryTemplate.execute()
中使用。参见称为“添加重试功能”的部分。
MessageConversionException
现在,此异常是AmqpException
的子类;如果您有如下代码:
try {
template.convertAndSend("foo", "bar", "baz");
}
catch (AmqpException e) {
...
}
catch (MessageConversionException e) {
...
}
第二个捕获块将不再可用,需要将其移至全部捕获AmqpException
捕获块上方。
RabbitMQ 3.4 兼容性
Spring AMQP 现在与 RabbitMQ 3.4 兼容,包括直接回复;有关更多信息,请参见名为“兼容性”的部分和“ RabbitMQ 直接回复”部分。
ContentTypeDelegatingMessageConverter
已基于MessageProperties
中的contentType
属性引入ContentTypeDelegatingMessageConverter
以选择要使用的MessageConverter
。有关更多信息,请参见第 3.1.7 节“消息转换器”。
A.2.4 从 1.2 开始的 1.3 更改
Listener Concurrency
侦听器容器现在支持基于工作负载动态调整使用方数量,或者可以通过编程方式更改并发性而无需停止容器。参见第 3.1.16 节“侦听器并发”。
Listener Queues
侦听器容器现在允许在运行时修改正在侦听其的队列。此外,如果至少有一个已配置的队列可供使用,则容器现在将启动。见第 3.1.18 节“侦听器容器队列”
现在,此侦听器容器将在启动期间重新声明所有自动删除队列。参见“自动删除队列”部分。
Consumer Priority
现在,侦听器容器支持使用者参数,从而可以设置x-priority
参数。参见名为“容器”的部分。
Exclusive Consumer
现在可以将SimpleMessageListenerContainer
配置为一个exclusive
使用者,从而防止其他使用者监听队列。参见第 3.1.17 节“独家用户”。
Rabbit Admin
现在,无论持久性,自动删除和独占设置如何,都可以使代理生成队列名称。参见第 3.1.10 节,“配置代理”。
直接交换绑定
以前,从direct-exchange
配置的binding
元素中省略key
属性会导致队列或交换机绑定一个空字符串作为路由键。现在,它与提供的Queue
或Exchange
的名称绑定。希望使用空字符串路由键进行绑定的用户需要指定key=""
。
AMQP Template
AmqpTemplate
现在提供了几种同步receiveAndReply
方法。这些由RabbitTemplate
实现。有关更多信息,请参见第 3.1.6 节“接收消息”。
RabbitTemplate
现在支持将RetryTemplate
配置为在代理不可用时尝试重试(具有可选的退避策略)。有关更多信息,请参见称为“添加重试功能”的部分。
缓存连接工厂
现在可以将缓存连接工厂配置为缓存“连接”及其“通道”,而不是使用单个连接并仅缓存“通道”。参见第 3.1.2 节“连接和资源 Management”。
Binding Arguments
<exchange>
的<binding>
现在支持<binding-arguments>
子元素的解析。 <headers-exchange>
的<binding>
现在可以配置为key/value
属性对(以在单个 Headers 上匹配)或<binding-arguments>
子元素,从而允许在多个 Headers 上进行匹配;这些选项是互斥的。参见称为“简介”的部分。
路由连接工厂
引入了新的SimpleRoutingConnectionFactory
,以允许配置ConnectionFactories
Map 来确定要在运行时使用的目标ConnectionFactory
。参见名为“路由连接工厂”的部分。
MessageBuilder 和 MessagePropertiesBuilder
现在提供了用于构建消息和/或消息属性的“ Fluent API”。参见称为“ Message Builder API”的部分。
RetryInterceptorBuilder
现在提供了用于构建侦听器容器重试拦截器的“ Fluent API”。参见“同步操作失败和重试选项”一节。
RepublishMessageRecoverer
提供此新的MessageRecoverer
可以在重试用尽时将失败的消息发布到另一个队列(包括 Headers 中的堆栈跟踪信息)。参见称为“消息侦听器和异步情况”的部分。
默认错误处理程序(自 1.3.2 开始)
默认ConditionalRejectingErrorHandler
已添加到侦听器容器。此错误处理程序检测到消息转换问题(这是致命的),并指示容器拒绝该消息,以防止代理不断重新传递不可转换的消息。参见第 3.1.13 节“异常处理”。
侦听器容器的'missingQueuesFatal`属性(自 1.3.5 开始)
SimpleMessageListenerContainer
现在具有属性missingQueuesFatal
(默认为true
)。以前,丢失队列始终是致命的。参见第 3.1.15 节“消息侦听器容器配置”。
A.2.5 从 1.1 开始更改为 1.2
RabbitMQ Version
Spring AMQP 现在默认使用 RabbitMQ 3.1.x(但保留了与早期版本的兼容性)。已为 RabbitMQ 3.1.x 联合交换和RabbitTemplate
的immediate
属性不再支持的功能添加了某些弃用。
Rabbit Admin
RabbitAdmin
现在提供了一个选项,允许在声明失败时 continue 进行交换,队列和绑定声明。以前,所有声明都在失败时停止。通过设置ignore-declaration-exceptions
,将记录此类异常(WARN),但 continue 进行声明。一个可能有用的示例是,由于ttl
设置稍有不同而导致队列声明失败时,通常会阻止其他声明 continue 进行。
RabbitAdmin
现在提供了另一种方法getQueueProperties()
。这可用于确定代理上是否存在队列(对于不存在的队列返回 null)。此外,还返回队列中的当前消息数以及使用方的当前数。
Rabbit Template
以前,当将...sendAndReceive()
方法用于固定答复队列时,两个自定义 Headers 用于关联数据并保留/恢复答复队列信息。在此版本中,默认情况下使用标准消息属性correlationId
,尽管用户可以指定要使用的自定义属性。此外,嵌套的replyTo
信息现在保留在模板内部,而不是使用自定义 Headers。
immediate
属性已弃用;使用 RabbitMQ 3.0.x 或更高版本时,用户不得设置此属性。
JSON 消息转换器
现在提供了 Jackson 2.x MessageConverter
,以及使用 Jackson 1.x 的现有转换器。
自动声明队列等
以前,在声明队列,交换和绑定时,无法定义用于声明的连接工厂,每个RabbitAdmin
都会使用其连接声明所有组件。
从此版本开始,现在可以将声明限制为特定的RabbitAdmin
实例。参见称为“有条件的声明”的部分。
AMQP Remoting
现在提供了使用 Spring Remoting 技术的工具,使用 AMQP 作为 RPC 调用的传输。有关更多信息,请参见“使用 AMQP 进行 Spring 远程处理”部分
请求的心跳
一些用户要求在 Spring AMQP CachingConnectionFactory
上公开基础 Client 端连接工厂的requestedHeartBeats
属性。现在可以使用;以前,有必要将 AMQPClient 端工厂配置为单独的 bean,并在CachingConnectionFactory
中提供对其的引用。
A.2.6 从 1.0 开始更改为 1.1
General
Spring-AMQP 现在使用 gradle 构建。
添加对发布者确认和return的支持。
添加了对 HA 队列和代理故障转移的支持。
增加了对死信交换/死信队列的支持。
AMQP Log4j Appender
添加一个选项以支持将消息 ID 添加到已记录的消息中。
添加了一个选项,允许在转换String`s to `byte[]
时使用Charset
名称的指定。