#spring-boot #spring-amqp
#spring-boot #spring-amqp
Вопрос:
Я пытаюсь использовать SimpleMessageListenerContainer и фабрику соединений по умолчанию, я не хочу использовать свойства, используя свойства spring по умолчанию spring.rabbitmq.*, я хотел бы установить свойства соединения во время выполнения, когда вводится фабрика соединений. Но мой контейнер пытается подключиться к localhost, любая помощь очень ценится, мой пример кода выглядит следующим образом
@Bean
public SimpleMessageListenerContainer queueListenerContainer(AbstractConnectionFactory connectionFactory,
MessageListenerAdapter listenerAdapter) {
connectionFactory.setHost(Arrays.toString(rabbitMqConfig.getSubscriberHosts()));
connectionFactory.setVirtualHost("hydra.services");
connectionFactory.setPort(rabbitMqConfig.getSubscriberPort());
connectionFactory.setUsername(rabbitMqConfig.getSubscriberUsername());
connectionFactory.setPassword(rabbitMqConfig.getSubscriberPassword());
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setQueueNames(rabbitMqConfig.getSubscriberQueueName());
container.setConnectionFactory(connectionFactory);
// container.setQueueNames("SampleQueue"); /*This just for testing.. !*/
container.setMessageListener(listenerAdapter);
container.setAcknowledgeMode(AcknowledgeMode.MANUAL);
container.setDeclarationRetries(5);// This is default to 3, We can twick this and move this to prop
container.setPrefetchCount(100); //Tell the broker how many messages to send to each consumer in a single request.
return container;
}
Но все же код этого контейнера пытается подключиться к локальному хосту.
Журналы :
[30m2019-03-17 09:35:43,335[0; 39m [34mINFO [0;39m [[34mmain[0;39m] [33morg.springframework.amqp.rabbit.connection.AbstractConnectionFactory[0;39m: Попытка подключиться к: [localhost: 5672] [30m2019-03-17 09:35:45,499[0; 39m [34mINFO [0;39m [[34mmain[0;39m] [33morg.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer[0;39m: Брокер недоступен; не удается принудительно объявить очередь во время запуска [30m2019-03-17 09:35:45,778[0; 39m [34mINFO [0;39m [[34mqueueListenerContainer-1[0;39m] [33morg.springframework.amqp.rabbit.connection.AbstractConnectionFactory[0;39m: Попытка подключиться к: [localhost: 5672] [30m2019-03-17 09:35:48,365[0; 39m [34mINFO [0;39m [[34mmain[0;39m] [33morg.springframework.boot.StartupInfoLogger[0;39m: запустил DfttEppScrubberApplication за 162,706 секунды (JVM работает за 164,364)
Правка 2
Таким образом, я получаю ошибку unknowhost. Изначально я думал, что это проблема с брандмауэром, но я проверил подключение, кажется, все в порядке. Я не уверен, в чем здесь проблема!