文章目录

  • 1.结论:
  • 2.源码分析
  • 2.1.ClusterResolver集群解析器负责解析配置的EurekaServer地址
  • 2.2 EurekaClient使用了ClusterResolver的两个实现类ZoneAffinityClusterResolver和AsyncResolver来实现注册功能
  • 2.3.在DiscoveryClient初始化的时候实例化ZoneAffinityClusterResolver,然后调用getClusterEndpoints,之后将值赋值到AsyncResolver(ClosableResolver)供服务使用,将ClosableResolver赋值给EurekaHttpClientFactory
  • 2.4.ResolverUtils的randomize方法,根据IP地址生成不同的集合(修改集合顺序)。
  • 3.实验
  • 3.1.实验 一:不同ip获得不同的集群集合
  • 3.2实验2,同一ip下的应用在相同的Eureka上

1.结论:

Eureka根据IP地址将defaultZone: http://peer2:8002/eureka/,http://peer1:8001/eureka/生成不同的集合

2.源码分析

2.1.ClusterResolver集群解析器负责解析配置的EurekaServer地址

eureka:client:serviceUrl:defaultZone: http://peer2:8002/eureka/,http://peer1:8001/eureka/public interface ClusterResolver<T extends EurekaEndpoint> {String getRegion();List<T> getClusterEndpoints();
}

2.2 EurekaClient使用了ClusterResolver的两个实现类ZoneAffinityClusterResolver和AsyncResolver来实现注册功能

public class ZoneAffinityClusterResolver implements ClusterResolver<AwsEndpoint> {public class AsyncResolver<T extends EurekaEndpoint> implements ClosableResolver<T> {

2.3.在DiscoveryClient初始化的时候实例化ZoneAffinityClusterResolver,然后调用getClusterEndpoints,之后将值赋值到AsyncResolver(ClosableResolver)供服务使用,将ClosableResolver赋值给EurekaHttpClientFactory

//初始化DiscoveryClient
@Singleton
public class DiscoveryClient implements EurekaClient {private final EurekaTransport eurekaTransport;private static final class EurekaTransport {private ClosableResolver bootstrapResolver;private TransportClientFactory transportClientFactory;}@InjectDiscoveryClient(ApplicationInfoManager applicationInfoManager, EurekaClientConfig config, DiscoveryClientOptionalArgs args,Provider<BackupRegistry> backupRegistryProvider) {eurekaTransport = new EurekaTransport();scheduleServerEndpointTask(eurekaTransport, args);                }private void scheduleServerEndpointTask(EurekaTransport eurekaTransport,DiscoveryClientOptionalArgs args) {//实例化ZoneAffinityClusterResolver,然后调用getClusterEndpoints,之后将值赋值到AsyncResolver(ClosableResolver)eurekaTransport.bootstrapResolver = EurekaHttpClients.newBootstrapResolver(clientConfig,transportConfig,eurekaTransport.transportClientFactory,applicationInfoManager.getInfo(),applicationsSource);     if (clientConfig.shouldRegisterWithEureka()) {EurekaHttpClientFactory newRegistrationClientFactory = null;EurekaHttpClient newRegistrationClient = null;try {//将ClosableResolver赋值给EurekaHttpClientFactorynewRegistrationClientFactory = EurekaHttpClients.registrationClientFactory(eurekaTransport.bootstrapResolver,eurekaTransport.transportClientFactory,transportConfig);newRegistrationClient = newRegistrationClientFactory.newClient();} catch (Exception e) {logger.warn("Experimental transport initialization failure", e);}eurekaTransport.registrationClientFactory = newRegistrationClientFactory;eurekaTransport.registrationClient = newRegistrationClient;}                      }
}public final class EurekaHttpClients {public static ClosableResolver<AwsEndpoint> newBootstrapResolver(final EurekaClientConfig clientConfig,final EurekaTransportConfig transportConfig,final TransportClientFactory transportClientFactory,final InstanceInfo myInstanceInfo,final ApplicationsResolver.ApplicationsSource applicationsSource){// if all else fails, return the defaultreturn defaultBootstrapResolver(clientConfig, myInstanceInfo);}static ClosableResolver<AwsEndpoint> defaultBootstrapResolver(final EurekaClientConfig clientConfig,final InstanceInfo myInstanceInfo) {String[] availZones = clientConfig.getAvailabilityZones(clientConfig.getRegion());String myZone = InstanceInfo.getZone(availZones, myInstanceInfo);//初始化new ZoneAffinityClusterResolverClusterResolver<AwsEndpoint> delegateResolver = new ZoneAffinityClusterResolver(new ConfigClusterResolver(clientConfig, myInstanceInfo),myZone,true);//调用ZoneAffinityClusterResolver的getClusterEndpoints计算新的initialValueList<AwsEndpoint> initialValue = delegateResolver.getClusterEndpoints();if (initialValue.isEmpty()) {String msg = "Initial resolution of Eureka endpoints failed. Check ConfigClusterResolver logs for more info";logger.error(msg);}//将initialValue值赋值给AsyncResolverreturn new AsyncResolver<>(EurekaClientNames.BOOTSTRAP,delegateResolver,initialValue,1,clientConfig.getEurekaServiceUrlPollIntervalSeconds() * 1000);}}public class ZoneAffinityClusterResolver implements ClusterResolver<AwsEndpoint> {private static final Logger logger = LoggerFactory.getLogger(ZoneAffinityClusterResolver.class);private final ClusterResolver<AwsEndpoint> delegate;private final String myZone;private final boolean zoneAffinity;/*** A zoneAffinity defines zone affinity (true) or anti-affinity rules (false).*/public ZoneAffinityClusterResolver(ClusterResolver<AwsEndpoint> delegate, String myZone, boolean zoneAffinity) {this.delegate = delegate;this.myZone = myZone;this.zoneAffinity = zoneAffinity;}@Overridepublic String getRegion() {return delegate.getRegion();}@Overridepublic List<AwsEndpoint> getClusterEndpoints() {List<AwsEndpoint>[] parts = ResolverUtils.splitByZone(delegate.getClusterEndpoints(), myZone);List<AwsEndpoint> myZoneEndpoints = parts[0];List<AwsEndpoint> remainingEndpoints = parts[1];List<AwsEndpoint> randomizedList = randomizeAndMerge(myZoneEndpoints, remainingEndpoints);if (!zoneAffinity) {Collections.reverse(randomizedList);}if (logger.isDebugEnabled()) {logger.debug("Local zone={}; resolved to: {}", myZone, randomizedList);}return randomizedList;}private static List<AwsEndpoint> randomizeAndMerge(List<AwsEndpoint> myZoneEndpoints, List<AwsEndpoint> remainingEndpoints) {if (myZoneEndpoints.isEmpty()) {return ResolverUtils.randomize(remainingEndpoints);}if (remainingEndpoints.isEmpty()) {return ResolverUtils.randomize(myZoneEndpoints);}List<AwsEndpoint> mergedList = ResolverUtils.randomize(myZoneEndpoints);mergedList.addAll(ResolverUtils.randomize(remainingEndpoints));return mergedList;}
}

2.4.ResolverUtils的randomize方法,根据IP地址生成不同的集合(修改集合顺序)。

public final class ResolverUtils {public static <T extends EurekaEndpoint> List<T> randomize(List<T> list) {List<T> randomList = new ArrayList<>(list);if (randomList.size() < 2) {return randomList;}Random random = new Random(LOCAL_IPV4_ADDRESS.hashCode());int last = randomList.size() - 1;for (int i = 0; i < last; i++) {int pos = random.nextInt(randomList.size() - i);if (pos != i) {Collections.swap(randomList, i, pos);}}return randomList;}}

3.实验

3.1.实验 一:不同ip获得不同的集群集合

package com.example.demo.user;import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;public class TestResolverUtils {public static void main(String[] args) {List<String> eurekaList = new ArrayList<>();eurekaList.add("http://eureak0/eureka");eurekaList.add("http://eureak1/eureka");eurekaList.add("http://eureak2/eureka");System.out.println("192.168.1.20"+randomize(eurekaList,"192.168.1.20"));System.out.println("192.168.1.21"+randomize(eurekaList,"192.168.1.21"));System.out.println("192.168.1.22"+randomize(eurekaList,"192.168.1.22"));System.out.println("192.168.1.23"+randomize(eurekaList,"192.168.1.23"));System.out.println("192.168.1.24"+randomize(eurekaList,"192.168.1.24"));System.out.println("192.168.1.25"+randomize(eurekaList,"192.168.1.25"));System.out.println("192.168.1.26"+randomize(eurekaList,"192.168.1.26"));System.out.println("192.168.1.27"+randomize(eurekaList,"192.168.1.27"));System.out.println("192.168.1.28"+randomize(eurekaList,"192.168.1.28"));System.out.println("192.168.1.29"+randomize(eurekaList,"192.168.1.29"));/***  192.168.1.20[http://eureak0/eureka, http://eureak1/eureka, http://eureak2/eureka]192.168.1.21[http://eureak1/eureka, http://eureak0/eureka, http://eureak2/eureka]192.168.1.22[http://eureak0/eureka, http://eureak1/eureka, http://eureak2/eureka]192.168.1.23[http://eureak0/eureka, http://eureak1/eureka, http://eureak2/eureka]192.168.1.24[http://eureak0/eureka, http://eureak1/eureka, http://eureak2/eureka]192.168.1.25[http://eureak0/eureka, http://eureak1/eureka, http://eureak2/eureka]192.168.1.26[http://eureak0/eureka, http://eureak1/eureka, http://eureak2/eureka]192.168.1.27[http://eureak1/eureka, http://eureak0/eureka, http://eureak2/eureka]192.168.1.28[http://eureak0/eureka, http://eureak1/eureka, http://eureak2/eureka]192.168.1.29[http://eureak2/eureka, http://eureak1/eureka, http://eureak0/eureka]*/}public static  List<String> randomize(List<String> list,String ip) {List<String> randomList = new ArrayList<>(list);if (randomList.size() < 2) {return randomList;}Random random = new Random(ip.hashCode());int last = randomList.size() - 1;for (int i = 0; i < last; i++) {int pos = random.nextInt(randomList.size() - i);if (pos != i) {Collections.swap(randomList, i, pos);}}return randomList;}
}

3.2实验2,同一ip下的应用在相同的Eureka上

背景:
背景一:一个主机Ip地址172.16.20.140

根据实验一172.16.20.140将会生成以下集合,ip上的实例将首先注册到peer1
172.16.20.140[http://peer1:8001/eureka/, http://peer2:8002/eureka/]

背景二:两个Eureka

application-peer1.yml
spring:application:name: eurekaserver:port: 8001eureka:instance:appname: ${spring.application.name}hostname: peer1client:registerWithEureka: falsefetchRegistry: falseserviceUrl:defaultZone: http://peer2:8002/eureka/application-peer2.ymlspring:application:name: eurekaserver:port: 8002eureka:instance:appname: ${spring.application.name}hostname: peer2client:registerWithEureka: falsefetchRegistry: falseserviceUrl:defaultZone: http://peer1:8001/eureka/

背景三:两个User实例注册到两个Eureka

user实例1:
spring:application:name: spring-cloud-userserver:port: 8082eureka:client:serviceUrl:defaultZone: http://peer2:8002/eureka/,http://peer1:8001/eureka/user实例2:
spring:application:name: spring-cloud-userserver:port: 8083eureka:client:serviceUrl:defaultZone: http://peer2:8002/eureka/,http://peer1:8001/eureka/

观察1:启动两个Eureka,启动三个User实例观察是否注册到Peer1

观察结果:user两个实例都注册到了Peer1上

观察2:停止Peer2,观察是否两个User实例不收到影响,观察完成启动peer2

观察结果:peer2节点停止,两个User实例没有受到影响

观察3:停止Peer1,观察是否出现Peer1连接失败,重新连接到Peer2

观察结果:peer1节点停止,两个User实例都出现了连接peer1失败,重现建立peer1连接,再次失败,最后建立Peer2连接的情况。

故障开始时间:2019-10-28 14:58:26.357
故障转移时间:2019-10-28 14:58:27.492
故障转移时间为1s

user1日志

2019-10-28 14:58:25.475 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Available capacity: 49 out of 50 [{}->http://peer1:8001][null]
2019-10-28 14:58:25.475 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Creating new connection [{}->http://peer1:8001]
2019-10-28 14:58:26.357 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.MonitoredConnectionManager] -Released connection is not reusable.
2019-10-28 14:58:26.357 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Releasing connection [{}->http://peer1:8001][null]
2019-10-28 14:58:26.357 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Notifying no-one, there are no waiting threads
2019-10-28 14:58:26.357 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient] -Jersey HTTP GET http://peer1:8001/eureka//apps/delta?; statusCode=N/A
2019-10-28 14:58:26.360 [user] [DiscoveryClient-CacheRefreshExecutor-0] ERROR [com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient] -Request execution error
com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connectat com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187)at com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter.java:123)at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27)at com.sun.jersey.api.client.Client.handle(Client.java:652)at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)at com.sun.jersey.api.client.WebResource$Builder.get(WebResource.java:509)at com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.getApplicationsInternal(AbstractJerseyEurekaHttpClient.java:194)at com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.getDelta(AbstractJerseyEurekaHttpClient.java:170)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$7.execute(EurekaHttpClientDecorator.java:152)at com.netflix.discovery.shared.transport.decorator.MetricsCollectingEurekaHttpClient.execute(MetricsCollectingEurekaHttpClient.java:73)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getDelta(EurekaHttpClientDecorator.java:149)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$7.execute(EurekaHttpClientDecorator.java:152)at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.execute(RedirectingEurekaHttpClient.java:89)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getDelta(EurekaHttpClientDecorator.java:149)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$7.execute(EurekaHttpClientDecorator.java:152)at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:119)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getDelta(EurekaHttpClientDecorator.java:149)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$7.execute(EurekaHttpClientDecorator.java:152)at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getDelta(EurekaHttpClientDecorator.java:149)at com.netflix.discovery.DiscoveryClient.getAndUpdateDelta(DiscoveryClient.java:1051)at com.netflix.discovery.DiscoveryClient.fetchRegistry(DiscoveryClient.java:933)at com.netflix.discovery.DiscoveryClient.refreshRegistry(DiscoveryClient.java:1455)at com.netflix.discovery.DiscoveryClient$CacheRefreshThread.run(DiscoveryClient.java:1422)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: Connection refused: connectat java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)at java.net.Socket.connect(Socket.java:589)at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144)at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:134)at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:117)at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:173)... 29 common frames omitted
2019-10-28 14:58:26.360 [user] [DiscoveryClient-CacheRefreshExecutor-0] WARN  [com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient] -Request execution failure
2019-10-28 14:58:26.360 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient] -Created client for url: http://peer1:8001/eureka/
2019-10-28 14:58:26.361 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.MonitoredConnectionManager] -Get connection: {}->http://peer1:8001, timeout = 5000
2019-10-28 14:58:26.361 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -[{}->http://peer1:8001] total kept alive: 0, total issued: 1, total allocated: 1 out of 200
2019-10-28 14:58:26.361 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -No free connections [{}->http://peer1:8001][null]
2019-10-28 14:58:26.361 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Available capacity: 49 out of 50 [{}->http://peer1:8001][null]
2019-10-28 14:58:26.361 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Creating new connection [{}->http://peer1:8001]
2019-10-28 14:58:26.479 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.MonitoredConnectionManager] -Released connection is not reusable.
2019-10-28 14:58:26.479 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Releasing connection [{}->http://peer1:8001][null]
2019-10-28 14:58:26.479 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Notifying no-one, there are no waiting threads
2019-10-28 14:58:26.479 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient] -Jersey HTTP PUT http://peer1:8001/eureka//apps/SPRING-CLOUD-USER/BR-IT-A00966.bairong.ad.com:spring-cloud-user:8082; statusCode=N/A
2019-10-28 14:58:26.479 [user] [DiscoveryClient-HeartbeatExecutor-0] ERROR [com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient] -Request execution error
com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connectat com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187)at com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter.java:123)at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27)at com.sun.jersey.api.client.Client.handle(Client.java:652)at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)at com.sun.jersey.api.client.WebResource$Builder.put(WebResource.java:529)at com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.sendHeartBeat(AbstractJerseyEurekaHttpClient.java:102)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92)at com.netflix.discovery.shared.transport.decorator.MetricsCollectingEurekaHttpClient.execute(MetricsCollectingEurekaHttpClient.java:73)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92)at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.execute(RedirectingEurekaHttpClient.java:89)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92)at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:119)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92)at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)at com.netflix.discovery.DiscoveryClient.renew(DiscoveryClient.java:827)at com.netflix.discovery.DiscoveryClient$HeartbeatThread.run(DiscoveryClient.java:1383)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: Connection refused: connectat java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)at java.net.Socket.connect(Socket.java:589)at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144)at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:134)at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:117)at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:173)... 26 common frames omitted
2019-10-28 14:58:26.480 [user] [DiscoveryClient-HeartbeatExecutor-0] WARN  [com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient] -Request execution failure
2019-10-28 14:58:26.480 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient] -Created client for url: http://peer1:8001/eureka/
2019-10-28 14:58:26.480 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.MonitoredConnectionManager] -Get connection: {}->http://peer1:8001, timeout = 5000
2019-10-28 14:58:26.480 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -[{}->http://peer1:8001] total kept alive: 0, total issued: 1, total allocated: 1 out of 200
2019-10-28 14:58:26.480 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -No free connections [{}->http://peer1:8001][null]
2019-10-28 14:58:26.480 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Available capacity: 49 out of 50 [{}->http://peer1:8001][null]
2019-10-28 14:58:26.480 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Creating new connection [{}->http://peer1:8001]
2019-10-28 14:58:27.375 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.MonitoredConnectionManager] -Released connection is not reusable.
2019-10-28 14:58:27.375 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Releasing connection [{}->http://peer1:8001][null]
2019-10-28 14:58:27.376 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Notifying no-one, there are no waiting threads
2019-10-28 14:58:27.376 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient] -Jersey HTTP GET http://peer1:8001/eureka//apps/delta?; statusCode=N/A
2019-10-28 14:58:27.376 [user] [DiscoveryClient-CacheRefreshExecutor-0] ERROR [com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient] -Request execution error
com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connectat com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187)at com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter.java:123)at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27)at com.sun.jersey.api.client.Client.handle(Client.java:652)at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)at com.sun.jersey.api.client.WebResource$Builder.get(WebResource.java:509)at com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.getApplicationsInternal(AbstractJerseyEurekaHttpClient.java:194)at com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.getDelta(AbstractJerseyEurekaHttpClient.java:170)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$7.execute(EurekaHttpClientDecorator.java:152)at com.netflix.discovery.shared.transport.decorator.MetricsCollectingEurekaHttpClient.execute(MetricsCollectingEurekaHttpClient.java:73)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getDelta(EurekaHttpClientDecorator.java:149)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$7.execute(EurekaHttpClientDecorator.java:152)at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.executeOnNewServer(RedirectingEurekaHttpClient.java:118)at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.execute(RedirectingEurekaHttpClient.java:79)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getDelta(EurekaHttpClientDecorator.java:149)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$7.execute(EurekaHttpClientDecorator.java:152)at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:119)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getDelta(EurekaHttpClientDecorator.java:149)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$7.execute(EurekaHttpClientDecorator.java:152)at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getDelta(EurekaHttpClientDecorator.java:149)at com.netflix.discovery.DiscoveryClient.getAndUpdateDelta(DiscoveryClient.java:1051)at com.netflix.discovery.DiscoveryClient.fetchRegistry(DiscoveryClient.java:933)at com.netflix.discovery.DiscoveryClient.refreshRegistry(DiscoveryClient.java:1455)at com.netflix.discovery.DiscoveryClient$CacheRefreshThread.run(DiscoveryClient.java:1422)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: Connection refused: connectat java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)at java.net.Socket.connect(Socket.java:589)at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144)at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:134)at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:117)at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:173)... 30 common frames omitted
2019-10-28 14:58:27.377 [user] [DiscoveryClient-CacheRefreshExecutor-0] WARN  [com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient] -Request execution failure
2019-10-28 14:58:27.379 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient] -Created client for url: http://peer2:8002/eureka/
2019-10-28 14:58:27.379 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.MonitoredConnectionManager] -Get connection: {}->http://peer2:8002, timeout = 5000
2019-10-28 14:58:27.379 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -[{}->http://peer2:8002] total kept alive: 0, total issued: 1, total allocated: 1 out of 200
2019-10-28 14:58:27.379 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -No free connections [{}->http://peer2:8002][null]
2019-10-28 14:58:27.380 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Available capacity: 50 out of 50 [{}->http://peer2:8002][null]
2019-10-28 14:58:27.380 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Creating new connection [{}->http://peer2:8002]
2019-10-28 14:58:27.389 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.MonitoredConnectionManager] -Released connection is reusable.
2019-10-28 14:58:27.389 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Releasing connection [{}->http://peer2:8002][null]
2019-10-28 14:58:27.390 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Pooling connection [{}->http://peer2:8002][null]; keep alive indefinitely
2019-10-28 14:58:27.390 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Notifying no-one, there are no waiting threads
2019-10-28 14:58:27.390 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient] -Jersey HTTP GET http://peer2:8002/eureka//apps/delta?; statusCode=200
2019-10-28 14:58:27.390 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient] -Pinning to endpoint null
2019-10-28 14:58:27.390 [user] [DiscoveryClient-CacheRefreshExecutor-0] INFO  [com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient] -Request execution succeeded on retry #2
2019-10-28 14:58:27.391 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.DiscoveryClient] -Got delta update with apps hashcode UP_2_
2019-10-28 14:58:27.391 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.DiscoveryClient] -Added instance BR-IT-A00966.bairong.ad.com:spring-cloud-user:8083 to the existing apps in region null
2019-10-28 14:58:27.391 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.DiscoveryClient] -Added instance BR-IT-A00966.bairong.ad.com:spring-cloud-user:8082 to the existing apps in region null
2019-10-28 14:58:27.391 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.DiscoveryClient] -The total number of instances fetched by the delta processor : 2
2019-10-28 14:58:27.391 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.DiscoveryClient] -The total number of all instances in the client now is 2
2019-10-28 14:58:27.392 [user] [DiscoveryClient-CacheRefreshExecutor-0] DEBUG [com.netflix.discovery.DiscoveryClient] -Completed cache refresh task for discovery. All Apps hash code is Local region apps hashcode: UP_2_, is fetching remote regions? false
2019-10-28 14:58:27.491 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.MonitoredConnectionManager] -Released connection is not reusable.
2019-10-28 14:58:27.491 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Releasing connection [{}->http://peer1:8001][null]
2019-10-28 14:58:27.491 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Notifying no-one, there are no waiting threads
2019-10-28 14:58:27.491 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient] -Jersey HTTP PUT http://peer1:8001/eureka//apps/SPRING-CLOUD-USER/BR-IT-A00966.bairong.ad.com:spring-cloud-user:8082; statusCode=N/A
2019-10-28 14:58:27.491 [user] [DiscoveryClient-HeartbeatExecutor-0] ERROR [com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient] -Request execution error
com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connectat com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187)at com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter.java:123)at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27)at com.sun.jersey.api.client.Client.handle(Client.java:652)at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)at com.sun.jersey.api.client.WebResource$Builder.put(WebResource.java:529)at com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.sendHeartBeat(AbstractJerseyEurekaHttpClient.java:102)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92)at com.netflix.discovery.shared.transport.decorator.MetricsCollectingEurekaHttpClient.execute(MetricsCollectingEurekaHttpClient.java:73)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92)at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.executeOnNewServer(RedirectingEurekaHttpClient.java:118)at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.execute(RedirectingEurekaHttpClient.java:79)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92)at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:119)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92)at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)at com.netflix.discovery.DiscoveryClient.renew(DiscoveryClient.java:827)at com.netflix.discovery.DiscoveryClient$HeartbeatThread.run(DiscoveryClient.java:1383)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: Connection refused: connectat java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)at java.net.Socket.connect(Socket.java:589)at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144)at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:134)at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:117)at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:173)... 27 common frames omitted
2019-10-28 14:58:27.491 [user] [DiscoveryClient-HeartbeatExecutor-0] WARN  [com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient] -Request execution failure
2019-10-28 14:58:27.492 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient] -Created client for url: http://peer2:8002/eureka/
2019-10-28 14:58:27.492 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.MonitoredConnectionManager] -Get connection: {}->http://peer2:8002, timeout = 5000
2019-10-28 14:58:27.492 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -[{}->http://peer2:8002] total kept alive: 1, total issued: 0, total allocated: 1 out of 200
2019-10-28 14:58:27.492 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Getting free connection [{}->http://peer2:8002][null]
2019-10-28 14:58:27.497 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.MonitoredConnectionManager] -Released connection is reusable.
2019-10-28 14:58:27.497 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Releasing connection [{}->http://peer2:8002][null]
2019-10-28 14:58:27.497 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Pooling connection [{}->http://peer2:8002][null]; keep alive indefinitely
2019-10-28 14:58:27.497 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.NamedConnectionPool] -Notifying no-one, there are no waiting threads
2019-10-28 14:58:27.497 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient] -Jersey HTTP PUT http://peer2:8002/eureka//apps/SPRING-CLOUD-USER/BR-IT-A00966.bairong.ad.com:spring-cloud-user:8082; statusCode=200
2019-10-28 14:58:27.498 [user] [DiscoveryClient-HeartbeatExecutor-0] DEBUG [com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient] -Pinning to endpoint null
2019-10-28 14:58:27.498 [user] [DiscoveryClient-HeartbeatExecutor-0] INFO  [com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient] -Request execution succeeded on retry #2

Eureka(6)-- ClusterResolver 集群解析器相关推荐

  1. [享学Eureka] 十九、远程通信模块:EurekaHttpClients工具快速构建ClusterResolver集群解析器

    使人疲惫的不是远方的高山,而是鞋里的一粒沙子. –> 返回Netflix OSS套件专栏汇总 <– 代码下载地址:https://github.com/f641385712/netflix ...

  2. 没有人比我更懂集群调度器---之流行集群调度器综述

    集群调度器的演进 Firmament.io这片paper详细总结了目前调度的几大分类: a. 集中式调度器:代表k8s.Hadoop .HPC 调度器. 优势:调度器可以感知全局信息,因此可以基于此开 ...

  3. 搭建Eureka高可用集群

    做的快哭了已经 文章目录 Eureka可用高集群的搭建 一.Eureka的工作原理 二.Eureka中服务提供者与服务消费者的关系 三.搭建Eureka-Server和Eureka-Client 四. ...

  4. springCloud - 第11篇 - Eureka 注册中心集群的实现

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. eureka 作为整个微服务项目的注册中心,到目前为止,在我的系统中一直是单节点的,这样并不能作到高 ...

  5. spring cloud搭建_Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!

    Spring Cloud 的注册中心可以由 Eureka.Consul.Zookeeper.ETCD 等来实现,这里推荐使用 Spring Cloud Eureka 来实现注册中心,它基于 Netfl ...

  6. java集群解析文件_java相关:springboot整合redis集群过程解析

    java相关:springboot整合redis集群过程解析 发布于 2020-4-13| 复制链接 摘记: 简介 在springboot使用搭建好的redis集群添加redis和连接池依赖 ```x ...

  7. Eureka(eureka)服务集群搭建搭建

    编写Eureka Server集群: eureka-server总结 编写Eureka Server集群: 1.在POM文件中引入依赖:<dependency><groupId> ...

  8. 一、SpringCloud五大神兽之Eureka(eurekaServer集群)

    基本概念和方案 Eureka是基于REST(Representational State Transfer,代表性状态传输)的服务,主要用于AWS云中定位服务,以实现中间层服务器的负载平衡和故障转移. ...

  9. eureka组件服务集群,feign远程调用,生产者服务集群,ribbon组件(负载均衡),hystrix组件(断路器),zuul(网关路由)

    一.搭建Eureka服务集群 1.创建和一个父module(用于依赖管理) a. 配置pom文件 <?xml version="1.0" encoding="UTF ...

最新文章

  1. 负载均衡,会话保持,session同步
  2. 小巨型计算机应用什么领域,计算机应用基础 10
  3. linux中脚本退出函数,Linux 命令 shell 脚本之09(函数)
  4. VS Code 1.39 发布!Web 版 VS Code 是否离我们越来越近了?(文末彩蛋)
  5. P2839-[国家集训队]middle【主席树,二分】
  6. 用过C#的朋友可能认为它是一种十分安全的语言,其实C#也可以做到经典的缓冲区溢出。 本文章将用一个实例来描述C#究竟是如何发生缓冲区溢出的! 首先建立一个C# Console工程,并开启工程的“允许
  7. Javascript中Date对象的使用
  8. jquery ajax 数据传输
  9. Navicat Premium连接SQL Server
  10. 阶段3 3.SpringMVC·_05.文件上传_4 文件上传之Springmvc方式上传代码
  11. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第5节 使用骨架创建maven的java工程_11使用骨架创建maven的java工程...
  12. pyltp的基本用法和语义角色标注
  13. DFD数据流图的基本要素及易错点详细介绍
  14. 书中第十章货币实验Currencies App在openexchangerates.org上的开发者密钥
  15. 川师计算机类专业收分安徽,四川师范大学专业收分
  16. matplotlib 辅助线
  17. 申请 Apple ID 的操作方法
  18. 第一个TensorFlow模型:摄氏度转换为华氏度
  19. 【实时渲染】RTR4 简要问答版
  20. 单元测试Mock框架--Mockito

热门文章

  1. C ++ Primer Plus 第六版 第九章编程练习答案
  2. ictclas java 64_ICTCLAS分词系统在win7 64 java平台下环境搭建
  3. 常用服务器查询日志命令(持续添加)
  4. Android自动待机和唤醒,Android深度睡眠和唤醒锁
  5. CTO和技术副总裁应该如何分工?谁才是技术领导者?
  6. C语言蓝桥杯刷题:数字三角形
  7. 【动态规划】数字三角形c语言
  8. 传奇人物李兴平5000万卖掉hao123后在做什么
  9. 微信点击按钮关闭当前页面回到微信对话窗口
  10. combin14_使用SwiftUI,Combin和Swift Package Manager(SPM)构建复杂的模块化架构