[英]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.