9c76eccfe3daf9dbf8a8292d707df1f9e37a4ee4
The `RabbitMessageChannelBinder` creates an internal distinct `ConnectionFactory` instance based on the `RabbitProperties` for the non-transactional producers to avoid dead locks when connection is blocked. In case of Cloud Connectors the `ConnectionFactory` bean is overridden, but not `RabbitProperties`. Therefore the original `ConnectionFactory` for consumers is good, cloud-based, but for producers it is still based on the `RabbitProperties` from Spring Boot, in most cases with default options. * Add one more `producerConnectionFactory` `@Bean` to the `CloudConnectors` configuration to obtain a distinct `ConnectionFactory` instance from the cloud provider * When we ara not in the cloud profile, create a fresh `ConnectionFactory` based on the `RabbitProperties` * Inject the extra `producerConnectionFactory` instance into the `RabbitMessageChannelBinder` instead of the internal non-stable solution **Cherry-pick to 1.3.x**
spring-cloud-stream-binder-rabbit
Spring Cloud Stream Binder implementation for Rabbit
Description
Languages
Java
96.4%
XSLT
3%
CSS
0.5%