使用 letsencrypt ssl 连接到远程 RabbitMQ 服务器

Connecting to a remote RabbitMQ server using letsencrypt ssl

我有这个配置可以连接到 compose.io rabbitmq 服务

package com.gandalf.configuration;

import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.rabbit.core.RabbitAdmin;
import org.springframework.amqp.core.AmqpAdmin;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.connection.RabbitConnectionFactoryBean;

@Configuration
public class SpringAmqpConfiguration {

    @Bean 
    public ConnectionFactory connectionFactory() { 
    CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
    connectionFactory.setAddresses("portal274-33.***,....");
    connectionFactory.setUsername("amqpuser"); 
    connectionFactory.setPassword("muggledone");
    connectionFactory.setUseSsl(true); 
    return connectionFactory; 
    } 


    @Bean
    public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory() {
        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
        factory.setConnectionFactory(connectionFactory());
        factory.setConcurrentConsumers(3);
        //If you want a fixed number of consumers, omit the max.
        factory.setMaxConcurrentConsumers(10);
        return factory;
    }


    @Bean
    public RabbitTemplate rabbitTemplate() {
        RabbitTemplate template = new RabbitTemplate(connectionFactory());
        return template;
    }

}

但是,在 运行 程序中,我在这一行出现错误

connectionFactory.setUseSsl(true);

这是我得到的错误

 Compilation failure
/SpringAmqpConfiguration.java:[24,26] cannot find symbol
[ERROR]   symbol:   method setUseSsl(boolean)
[ERROR]   location: variable connectionFactory of type org.springframework.amqp.rabbit.connection.CachingConnectionFactory

为什么找不到 connectionFactory.setUseSsl(true);

CachingConnectionFactory上没有属性useSsl useSslProtocol 属性 在底层 com.rabbitmq.client.ConnectionFactory.

使用connectionFactory.getRabbitConnectionFactory().useSslProtocol().