diff --git a/docs/src/main/asciidoc/spring-cloud-netflix.adoc b/docs/src/main/asciidoc/spring-cloud-netflix.adoc index 95ef721b..7d66e68a 100644 --- a/docs/src/main/asciidoc/spring-cloud-netflix.adoc +++ b/docs/src/main/asciidoc/spring-cloud-netflix.adoc @@ -487,6 +487,14 @@ of services rather than the hostname. Set `eureka.instance.preferIpAddress` to `true` and when the application registers with eureka, it will use its IP Address rather than its hostname. +[TIP] +==== +If hostname can't be determined by Java, then IP address is sent to Eureka. +Only explict way of setting hostname is by using `eureka.instance.hostname`. +You can set your hostname at the run time using environment variable, for +example `eureka.instance.hostname=${HOST_NAME}`. +==== + == Circuit Breaker: Hystrix Clients Netflix has created a library called https://github.com/Netflix/Hystrix[Hystrix] that implements the http://martinfowler.com/bliki/CircuitBreaker.html[circuit breaker pattern]. In a microservice architecture it is common to have multiple layers of service calls. diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java index 014e39fb..9dec3f53 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java @@ -17,13 +17,13 @@ package org.springframework.cloud.netflix.eureka; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.NestedConfigurationProperty; import org.springframework.core.env.PropertyResolver; import org.springframework.util.StringUtils; @@ -59,6 +59,7 @@ public class EurekaClientConfigBean implements EurekaClientConfig { */ private boolean enabled = true; + @NestedConfigurationProperty private EurekaTransportConfig transport = new CloudEurekaTransportConfig(); /** diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaDashboardProperties.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaDashboardProperties.java index 9631f592..bf96d493 100644 --- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaDashboardProperties.java +++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaDashboardProperties.java @@ -16,11 +16,10 @@ package org.springframework.cloud.netflix.eureka.server; -import org.apache.commons.lang.builder.EqualsBuilder; -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.commons.lang.builder.ToStringBuilder; import org.springframework.boot.context.properties.ConfigurationProperties; +import java.util.Objects; + /** * Configuration properties for the Eureka dashboard (UI). * @@ -57,17 +56,24 @@ public class EurekaDashboardProperties { @Override public boolean equals(Object o) { - return EqualsBuilder.reflectionEquals(this, o); + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + EurekaDashboardProperties that = (EurekaDashboardProperties) o; + return enabled == that.enabled && + Objects.equals(path, that.path); } @Override public int hashCode() { - return HashCodeBuilder.reflectionHashCode(this); + return Objects.hash(path, enabled); } @Override public String toString() { - return ToStringBuilder.reflectionToString(this); + final StringBuffer sb = new StringBuffer("EurekaDashboardProperties{"); + sb.append("path='").append(path).append('\''); + sb.append(", enabled=").append(enabled); + sb.append('}'); + return sb.toString(); } - }