Eureka 是 Netflix 开源的一款提供服务注册和发现的产品。在使用 Eureka 进行服务注册时,通常需要指定服务的 IP 地址,而不是使用 Desktop
或 localhost
。以下是一些步骤和配置,帮助你设置 Eureka 以使用实际的 IP 地址。
在你的 Spring Boot 应用中,你需要配置 Eureka 客户端以使用实际的 IP 地址。你可以在 application.yml
或 application.properties
文件中进行配置。
application.yml
eureka:
client:
serviceUrl:
defaultZone: http://your-eureka-server:8761/eureka/
instance:
preferIpAddress: true
application.properties
eureka.client.serviceUrl.defaultZone=http://your-eureka-server:8761/eureka/
eureka.instance.preferIpAddress=true
确保你的应用能够获取到实际的 IP 地址。你可以通过以下几种方式获取:
String ipAddress = System.getProperty("server.address");
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;
public String getIpAddress() {
try {
Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements()) {
NetworkInterface networkInterface = networkInterfaces.nextElement();
Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses();
while (inetAddresses.hasMoreElements()) {
InetAddress inetAddress = inetAddresses.nextElement();
if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {
return inetAddress.getHostAddress();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
在你的 Spring Boot 应用中,你可以通过配置文件或代码来设置 IP 地址。
application.yml
中设置server:
address: your-actual-ip-address
application.properties
中设置server.address=your-actual-ip-address
启动你的 Spring Boot 应用,并访问 Eureka 服务器的管理界面,确认服务已经正确注册,并且显示的是实际的 IP 地址而不是 localhost
或 Desktop
。
领取专属 10元无门槛券
手把手带您无忧上云