Spring rabbitmq amqp Фабрика соединений - Как переопределить свойства соединения - PullRequest
1 голос
/ 17 марта 2019

Я пытаюсь использовать SimpleMessageListenerContainer и фабрику соединений по умолчанию, я не хочу использовать свойства, использующие свойства Spring deault 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; 39м [34mINFO [0; 39м [[34mqueueListenerContainer-1 [0; 39м] [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: запуск приложения DftpEppScrubber через 162,706 секунд (JVM работает в течение 164,364)

Редактировать 2

При этом возникает ошибка неизвестного хоста.Сначала я подумал, что это проблема с брандмауэром, но я проверил соединение, все кажется правильным.Я не уверен, что здесь проблема!

...