From 859a79ad353ecdb4be55b32a9bee04efa0a98614 Mon Sep 17 00:00:00 2001 From: "Tummala Dhanvi (c0mrad3)" Date: Tue, 18 Jul 2017 22:09:43 +0530 Subject: [PATCH 1/3] Document prefer hostname #2084 (#2092) --- docs/src/main/asciidoc/spring-cloud-netflix.adoc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/src/main/asciidoc/spring-cloud-netflix.adoc b/docs/src/main/asciidoc/spring-cloud-netflix.adoc index 05f8b920..fddbb0d5 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. From afc8a99d7e40da405689c38042d851a29735eeb7 Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Tue, 18 Jul 2017 10:56:41 -0600 Subject: [PATCH 2/3] Add `@NestedConfigurationProperty` to transport. Needed in `EurekaClientConfigBean` because `CloudEurekaTransportConfig` is a separate class. Fixes gh-2138 --- .../cloud/netflix/eureka/EurekaClientConfigBean.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 a7f7228c..a69a54a2 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; @@ -33,6 +33,8 @@ import com.netflix.discovery.shared.transport.EurekaTransportConfig; import lombok.Data; +import static org.springframework.cloud.netflix.eureka.EurekaConstants.DEFAULT_PREFIX; + /** * @author Dave Syer */ @@ -57,6 +59,7 @@ public class EurekaClientConfigBean implements EurekaClientConfig, EurekaConstan */ private boolean enabled = true; + @NestedConfigurationProperty private EurekaTransportConfig transport = new CloudEurekaTransportConfig(); /** From 31d19fd51ad7bfdc035c09928cd677669639e764 Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Tue, 18 Jul 2017 11:05:05 -0600 Subject: [PATCH 3/3] Remove commons.lang.builder refs --- .../server/EurekaDashboardProperties.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) 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(); } - }