Polish "Add configuration for RabbitMQ requested channel max property"
See gh-19106
This commit is contained in:
parent
c043068578
commit
d2f256abe8
|
|
@ -124,6 +124,7 @@ public class RabbitAutoConfiguration {
|
|||
map.from(properties::determineVirtualHost).whenNonNull().to(factory::setVirtualHost);
|
||||
map.from(properties::getRequestedHeartbeat).whenNonNull().asInt(Duration::getSeconds)
|
||||
.to(factory::setRequestedHeartbeat);
|
||||
map.from(properties::getRequestedChannelMax).to(factory::setRequestedChannelMax);
|
||||
RabbitProperties.Ssl ssl = properties.getSsl();
|
||||
if (ssl.determineEnabled()) {
|
||||
factory.setUseSSL(true);
|
||||
|
|
@ -140,7 +141,6 @@ public class RabbitAutoConfiguration {
|
|||
}
|
||||
map.from(properties::getConnectionTimeout).whenNonNull().asInt(Duration::toMillis)
|
||||
.to(factory::setConnectionTimeout);
|
||||
map.from(properties::getRequestedChannelMax).whenNonNull().to(factory::setRequestedChannelMax);
|
||||
factory.afterPropertiesSet();
|
||||
return factory;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -88,6 +88,11 @@ public class RabbitProperties {
|
|||
@DurationUnit(ChronoUnit.SECONDS)
|
||||
private Duration requestedHeartbeat;
|
||||
|
||||
/**
|
||||
* Number of channels per connection requested by the client. Use 0 for unlimited.
|
||||
*/
|
||||
private int requestedChannelMax = 2047;
|
||||
|
||||
/**
|
||||
* Whether to enable publisher returns.
|
||||
*/
|
||||
|
|
@ -103,13 +108,6 @@ public class RabbitProperties {
|
|||
*/
|
||||
private Duration connectionTimeout;
|
||||
|
||||
/**
|
||||
* Requested Channel Max; zero for unlimited. Number of channels per connection client
|
||||
* will request from server, actual maximum will be negotiated between client and
|
||||
* server for lowest value (excluding zero as it represents unlimited).
|
||||
*/
|
||||
private Integer requestedChannelMax;
|
||||
|
||||
/**
|
||||
* Cache configuration.
|
||||
*/
|
||||
|
|
@ -283,6 +281,14 @@ public class RabbitProperties {
|
|||
this.requestedHeartbeat = requestedHeartbeat;
|
||||
}
|
||||
|
||||
public int getRequestedChannelMax() {
|
||||
return this.requestedChannelMax;
|
||||
}
|
||||
|
||||
public void setRequestedChannelMax(int requestedChannelMax) {
|
||||
this.requestedChannelMax = requestedChannelMax;
|
||||
}
|
||||
|
||||
@DeprecatedConfigurationProperty(reason = "replaced to support additional confirm types",
|
||||
replacement = "spring.rabbitmq.publisher-confirm-type")
|
||||
public boolean isPublisherConfirms() {
|
||||
|
|
@ -318,14 +324,6 @@ public class RabbitProperties {
|
|||
this.connectionTimeout = connectionTimeout;
|
||||
}
|
||||
|
||||
public Integer getRequestedChannelMax() {
|
||||
return this.requestedChannelMax;
|
||||
}
|
||||
|
||||
public void setRequestedChannelMax(Integer requestedChannelMax) {
|
||||
this.requestedChannelMax = requestedChannelMax;
|
||||
}
|
||||
|
||||
public Cache getCache() {
|
||||
return this.cache;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -100,6 +100,8 @@ class RabbitAutoConfigurationTests {
|
|||
assertThat(messagingTemplate.getRabbitTemplate()).isEqualTo(rabbitTemplate);
|
||||
assertThat(amqpAdmin).isNotNull();
|
||||
assertThat(connectionFactory.getHost()).isEqualTo("localhost");
|
||||
assertThat(getTargetConnectionFactory(context).getRequestedChannelMax())
|
||||
.isEqualTo(com.rabbitmq.client.ConnectionFactory.DEFAULT_CHANNEL_MAX);
|
||||
assertThat(connectionFactory.isPublisherConfirms()).isFalse();
|
||||
assertThat(connectionFactory.isPublisherReturns()).isFalse();
|
||||
assertThat(context.containsBean("rabbitListenerContainerFactory"))
|
||||
|
|
@ -601,6 +603,15 @@ class RabbitAutoConfigurationTests {
|
|||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void customizeRequestedChannelMax() {
|
||||
this.contextRunner.withUserConfiguration(TestConfiguration.class)
|
||||
.withPropertyValues("spring.rabbitmq.requestedChannelMax:12").run((context) -> {
|
||||
com.rabbitmq.client.ConnectionFactory rabbitConnectionFactory = getTargetConnectionFactory(context);
|
||||
assertThat(rabbitConnectionFactory.getRequestedChannelMax()).isEqualTo(12);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void noSslByDefault() {
|
||||
this.contextRunner.withUserConfiguration(TestConfiguration.class).run((context) -> {
|
||||
|
|
@ -716,24 +727,6 @@ class RabbitAutoConfigurationTests {
|
|||
return (TrustManager) trustManager;
|
||||
}
|
||||
|
||||
@Test
|
||||
void testChangeDefaultRequestedChannelMax() throws Exception {
|
||||
this.contextRunner.withUserConfiguration(TestConfiguration.class)
|
||||
.withPropertyValues("spring.rabbitmq.requestedChannelMax:12").run((context) -> {
|
||||
com.rabbitmq.client.ConnectionFactory rabbitConnectionFactory = getTargetConnectionFactory(context);
|
||||
assertThat(rabbitConnectionFactory.getRequestedChannelMax()).isEqualTo(12);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void testKeepDefaultRequestedChannelMax() throws Exception {
|
||||
this.contextRunner.withUserConfiguration(TestConfiguration.class).run((context) -> {
|
||||
com.rabbitmq.client.ConnectionFactory rabbitConnectionFactory = getTargetConnectionFactory(context);
|
||||
assertThat(rabbitConnectionFactory.getRequestedChannelMax())
|
||||
.isEqualTo(com.rabbitmq.client.ConnectionFactory.DEFAULT_CHANNEL_MAX);
|
||||
});
|
||||
}
|
||||
|
||||
private com.rabbitmq.client.ConnectionFactory getTargetConnectionFactory(AssertableApplicationContext context) {
|
||||
CachingConnectionFactory connectionFactory = context.getBean(CachingConnectionFactory.class);
|
||||
return connectionFactory.getRabbitConnectionFactory();
|
||||
|
|
|
|||
Loading…
Reference in New Issue