Достигнут предел ChannelMax ⇐ JAVA
Достигнут предел ChannelMax
Зависимости:
spring-boot-starter-amqp:3.1.1
Привет всем. Я получаю это исключение. Кажется, что мой AsyncRabbitTemplate все время создает новый канал. Есть какие-нибудь предложения, как этого избежать?
в java.base/java.lang.Thread.run(Thread.java:833) 2023-10-26 06:16:52.826 ПРЕДУПРЕЖДЕНИЕ [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#5-4] [/] o.s.a.r.l.DirectReplyToMessageListenerContainer - BasicConsume не удалось, планирование потребителя для очереди amq.rabbitmq.reply-to для перезапуска org.springframework.amqp.AmqpResourceNotAvailableException: достигнут предел ChannelMax. Попробуй позже. Это моя конфигурация RabbitMQ. Я не уверен, что это правильная конфигурация. Кстати, я использую Spring Boot
@Configuration @EnableRabbit общественный класс RabbitConfig { @Value("${spring.rabbitmq.listener.simple.retry.initial-interval}") частный интервал retryInitialInterval; @Value("${spring.rabbitmq.listener.simple.retry.max-attempts}") частный интервал retryMaxAttempts; @Value("${spring.rabbitmq.listener.simple.retry.multiplier}") частный двойной повторный множитель; @Value("${spring.rabbitmq.listener.simple.retry.max-interval}") частный интервал retryMaxInterval; @Value("${spring.rabbitmq.listener.simple.retry.max-consumers}") частный int maxConsumers; @Value("${spring.rabbitmq.listener.simple.retry.concurrent-consumers}") частный int concurrentConsumers; @Бин общественный MessageConverter jsonMessageConverter () { вернуть новый Jackson2JsonMessageConverter(); } @Бин public AsyncRabbitTemplate asyncRabbitTemplate (ConnectionFactory ConnectionFactory) { вернуть новый AsyncRabbitTemplate(rabbitTemplate(connectionFactory)); } @Бин public RabbitTemplate RabbitTemplate (ConnectionFactory ConnectionFactory) { окончательный RabbitTemplate RabbitTemplate = новый RabbitTemplate (connectionFactory); RabbitTemplate.setMessageConverter(jsonMessageConverter()); вернуть шаблон кролика; } @Бин public SimpleRabbitListenerContainerFactory RabbitListenerContainerFactory (окончательное ConnectionFactory ConnectionFactory) { окончательная фабрика SimpleRabbitListenerContainerFactory = новый SimpleRabbitListenerContainerFactory (); Factory.setConnectionFactory(connectionFactory); Factory.setMessageConverter(jsonMessageConverter()); Factory.setConcurrentConsumers(concurrentConsumers); Factory.setMaxConcurrentConsumers(maxConsumers); Factory.setAdviceChain(messageRetryInterceptor()); возврат на завод; } @Бин public RetryOperationsInterceptor messageRetryInterceptor(){ вернуть RetryInterceptorBuilder.StatelessRetryInterceptorBuilder .stateless() .maxAttempts(retryMaxAttempts) // .backOffOptions( // повторите начальныйинтервал, // повторная попыткаМультипликатор, // повторение максимального интервала // ) .recoverer(новый RejectAndDontRequeueRecoverer()) .строить(); } }
Зависимости:
spring-boot-starter-amqp:3.1.1
Привет всем. Я получаю это исключение. Кажется, что мой AsyncRabbitTemplate все время создает новый канал. Есть какие-нибудь предложения, как этого избежать?
в java.base/java.lang.Thread.run(Thread.java:833) 2023-10-26 06:16:52.826 ПРЕДУПРЕЖДЕНИЕ [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#5-4] [/] o.s.a.r.l.DirectReplyToMessageListenerContainer - BasicConsume не удалось, планирование потребителя для очереди amq.rabbitmq.reply-to для перезапуска org.springframework.amqp.AmqpResourceNotAvailableException: достигнут предел ChannelMax. Попробуй позже. Это моя конфигурация RabbitMQ. Я не уверен, что это правильная конфигурация. Кстати, я использую Spring Boot
@Configuration @EnableRabbit общественный класс RabbitConfig { @Value("${spring.rabbitmq.listener.simple.retry.initial-interval}") частный интервал retryInitialInterval; @Value("${spring.rabbitmq.listener.simple.retry.max-attempts}") частный интервал retryMaxAttempts; @Value("${spring.rabbitmq.listener.simple.retry.multiplier}") частный двойной повторный множитель; @Value("${spring.rabbitmq.listener.simple.retry.max-interval}") частный интервал retryMaxInterval; @Value("${spring.rabbitmq.listener.simple.retry.max-consumers}") частный int maxConsumers; @Value("${spring.rabbitmq.listener.simple.retry.concurrent-consumers}") частный int concurrentConsumers; @Бин общественный MessageConverter jsonMessageConverter () { вернуть новый Jackson2JsonMessageConverter(); } @Бин public AsyncRabbitTemplate asyncRabbitTemplate (ConnectionFactory ConnectionFactory) { вернуть новый AsyncRabbitTemplate(rabbitTemplate(connectionFactory)); } @Бин public RabbitTemplate RabbitTemplate (ConnectionFactory ConnectionFactory) { окончательный RabbitTemplate RabbitTemplate = новый RabbitTemplate (connectionFactory); RabbitTemplate.setMessageConverter(jsonMessageConverter()); вернуть шаблон кролика; } @Бин public SimpleRabbitListenerContainerFactory RabbitListenerContainerFactory (окончательное ConnectionFactory ConnectionFactory) { окончательная фабрика SimpleRabbitListenerContainerFactory = новый SimpleRabbitListenerContainerFactory (); Factory.setConnectionFactory(connectionFactory); Factory.setMessageConverter(jsonMessageConverter()); Factory.setConcurrentConsumers(concurrentConsumers); Factory.setMaxConcurrentConsumers(maxConsumers); Factory.setAdviceChain(messageRetryInterceptor()); возврат на завод; } @Бин public RetryOperationsInterceptor messageRetryInterceptor(){ вернуть RetryInterceptorBuilder.StatelessRetryInterceptorBuilder .stateless() .maxAttempts(retryMaxAttempts) // .backOffOptions( // повторите начальныйинтервал, // повторная попыткаМультипликатор, // повторение максимального интервала // ) .recoverer(новый RejectAndDontRequeueRecoverer()) .строить(); } }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение