簡體   English   中英

如何在Java中獲取RabbitMQ的當前IP地址?

[英]How get currently IP address of RabbitMQ in Java?

我有一個帶有地址列表的 connectionFactory (org.springframework.amqp.rabbit.connection)

    @Bean(name = "mainConnectionFactory")
    @Primary
    public ConnectionFactory mainConnectionFactory() {
        CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
        String addresses = rabbitmqHost_main + ":" + rabbitmqPort_main + ", " + rabbitmqHost_reserve + ":" + rabbitmqPort_reserve;;
        connectionFactory.setVirtualHost(rabbitmqVirtualHost_main);
        connectionFactory.setUsername(rabbitmqUsername_main);
        connectionFactory.setPassword(rabbitmqPassword_main);
        connectionFactory.setAddresses(addresses);
        return connectionFactory;
    }

我的應用程序會定期自動重新連接到其中一台服務器。 如何在 Java 中獲取當前服務器的 IP 地址?

可以使用類似的東西從運行程序的服務器獲取主機名

try {
            InetAddress addr;
            addr = InetAddress.getLocalHost();
            hostname = addr.getHostName();
        } catch (UnknownHostException ex) {
            LOGGER.error("Hostname can not be resolved");
        }

您可以使用連接獲取當前連接的主機(連接工廠維護單個共享連接)。

@Bean
public ApplicationRunner runner(CachingConnectionFactory mainConnectionFactory) {
    return args -> {
        try (Connection connection = mainConnectionFactory.createConnection()) {
            System.out.println(connection.getDelegate().getAddress());
        }
    };
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM