/** * Assumes applicationInfoManager is already initialized * * @deprecated use constructor that takes ApplicationInfoManager instead of InstanceInfo directly */ @Deprecated public DiscoveryClient(InstanceInfo myInfo, EurekaClientConfig config, DiscoveryClientOptionalArgs args) { this(ApplicationInfoManager.getInstance(), config, args); }
/** * @deprecated use constructor that takes ApplicationInfoManager instead of InstanceInfo directly */ @Deprecated public DiscoveryClient(InstanceInfo myInfo, EurekaClientConfig config, AbstractDiscoveryClientOptionalArgs args) { this(ApplicationInfoManager.getInstance(), config, args); }
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { InstanceInfo myInfo = ApplicationInfoManager.getInstance().getInfo(); InstanceStatus status = myInfo.getStatus(); if (status != InstanceStatus.UP && response instanceof HttpServletResponse) { HttpServletResponse httpRespone = (HttpServletResponse) response; httpRespone.sendError(SC_TEMPORARY_REDIRECT, "Current node is currently not ready to serve requests -- current status: " + status + " - try another DS node: "); } chain.doFilter(request, response); }
/** * Initializes the <tt>Discovery Client</tt> with the given configuration. * * @param config * the instance info configuration that will be used for * registration with Eureka. * @param eurekaConfig the eureka client configuration of the instance. */ public void initComponent(EurekaInstanceConfig config, EurekaClientConfig eurekaConfig, AbstractDiscoveryClientOptionalArgs args) { this.eurekaInstanceConfig = config; this.eurekaClientConfig = eurekaConfig; if (ApplicationInfoManager.getInstance().getInfo() == null) { // Initialize application info ApplicationInfoManager.getInstance().initComponent(config); } InstanceInfo info = ApplicationInfoManager.getInstance().getInfo(); discoveryClient = new DiscoveryClient(info, eurekaConfig, args); }
@GET public Response doHealthCheck() { try { InstanceInfo myInfo = ApplicationInfoManager.getInstance() .getInfo(); switch (myInfo.getStatus()) { case UP: // Return status 200 return Response.status(Status.OK).build(); case STARTING: // Return status 204 return Response.status(Status.NO_CONTENT).build(); case OUT_OF_SERVICE: // Return 503 return Response.status(Status.SERVICE_UNAVAILABLE).build(); default: // Return status 500 return Response.status(Status.INTERNAL_SERVER_ERROR).build(); } } catch (Throwable th) { s_logger.error("Error doing healthceck", th); // Return status 500 return Response.status(Status.INTERNAL_SERVER_ERROR).build(); } } }
@SuppressWarnings("deprecation") public EVCacheConnectionObserver(String appName, ServerGroup serverGroup, int id) { this.instanceInfo = ApplicationInfoManager.getInstance().getInfo(); this.appName = appName; this.serverGroup = serverGroup; this.evCacheActiveSet = Collections.newSetFromMap(new ConcurrentHashMap<SocketAddress, Boolean>()); this.evCacheInActiveSet = Collections.newSetFromMap(new ConcurrentHashMap<SocketAddress, Boolean>()); this.evCacheActiveStringSet = new ConcurrentHashMap<InetSocketAddress, Long>(); this.evCacheInActiveStringSet = new ConcurrentHashMap<InetSocketAddress, Long>(); this.id = id; monitorName = appName + "_" + serverGroup.getName() + "_" + id + "_connections"; setupMonitoring(false); }
/** * Sets a flag if this instance is the same as the discovery server that is * return the instances. This flag is used by the discovery clients to * identity the discovery server which is coordinating/returning the * information. */ public void setIsCoordinatingDiscoveryServer() { String instanceId = getId(); if ((instanceId != null) && (instanceId.equals(ApplicationInfoManager.getInstance() .getInfo().getId()))) { isCoordinatingDiscoveryServer = Boolean.TRUE; } else { isCoordinatingDiscoveryServer = Boolean.FALSE; } }
private static String getAccountId() { InstanceInfo myInfo = ApplicationInfoManager.getInstance().getInfo(); return ((AmazonInfo) myInfo.getDataCenterInfo()).get(MetaDataKey.accountId); }
/** * @deprecated 2016-06-27 use instance version of {@link #isThisMyUrl(String)} * * Checks if the given service url contains the current host which is trying * to replicate. Only after the EIP binding is done the host has a chance to * identify itself in the list of replica nodes and needs to take itself out * of replication traffic. * * @param url the service url of the replica node that the check is made. * @return true, if the url represents the current node which is trying to * replicate, false otherwise. */ public static boolean isThisMe(String url) { InstanceInfo myInfo = ApplicationInfoManager.getInstance().getInfo(); String hostName = hostFromUrl(url); return hostName != null && hostName.equals(myInfo.getHostName()); }
private EurekaMonitors(String name, String description) { this.name = name; this.description = description; DataCenterInfo dcInfo = ApplicationInfoManager.getInstance().getInfo().getDataCenterInfo(); if (dcInfo.getName() == Name.Amazon) { myZoneCounterName = ((AmazonInfo) dcInfo).get(MetaDataKey.availabilityZone) + "." + name; } else { myZoneCounterName = "dcmaster." + name; } }
public static EurekaClient setupInjector(InstanceInfo clientInstanceInfo) { DefaultEurekaClientConfig config = new DefaultEurekaClientConfig(); // setup config in advance, used in initialize converter DiscoveryManager.getInstance().setEurekaClientConfig(config); EurekaClient client = new DiscoveryClient(clientInstanceInfo, config); ApplicationInfoManager.getInstance().initComponent(new MyDataCenterInstanceConfig()); return client; }
InstanceInfo myInfo = ApplicationInfoManager.getInstance().getInfo(); String myInstanceId = ((AmazonInfo) myInfo.getDataCenterInfo()).get(AmazonInfo.MetaDataKey.instanceId); String myZone = ((AmazonInfo) myInfo.getDataCenterInfo()).get(AmazonInfo.MetaDataKey.availabilityZone);
@SuppressWarnings("deprecation") @Test public void testDI() { InstanceInfo instanceInfo = injector.getInstance(InstanceInfo.class); Assert.assertEquals(ApplicationInfoManager.getInstance().getInfo(), instanceInfo); EurekaClient eurekaClient = injector.getInstance(EurekaClient.class); DiscoveryClient discoveryClient = injector.getInstance(DiscoveryClient.class); Assert.assertEquals(DiscoveryManager.getInstance().getEurekaClient(), eurekaClient); Assert.assertEquals(DiscoveryManager.getInstance().getDiscoveryClient(), discoveryClient); Assert.assertEquals(eurekaClient, discoveryClient); EurekaClientConfig eurekaClientConfig = injector.getInstance(EurekaClientConfig.class); Assert.assertEquals(DiscoveryManager.getInstance().getEurekaClientConfig(), eurekaClientConfig); EurekaInstanceConfig eurekaInstanceConfig = injector.getInstance(EurekaInstanceConfig.class); Assert.assertEquals(DiscoveryManager.getInstance().getEurekaInstanceConfig(), eurekaInstanceConfig); Binding<TransportClientFactories> binding = injector.getExistingBinding(Key.get(TransportClientFactories.class)); Assert.assertNull(binding); // no bindings so defaulting to default of jersey1 } }
@SuppressWarnings("deprecation") @Test public void testDI() { InstanceInfo instanceInfo = injector.getInstance(InstanceInfo.class); Assert.assertEquals(ApplicationInfoManager.getInstance().getInfo(), instanceInfo); EurekaClient eurekaClient = injector.getInstance(EurekaClient.class); DiscoveryClient discoveryClient = injector.getInstance(DiscoveryClient.class); Assert.assertEquals(DiscoveryManager.getInstance().getEurekaClient(), eurekaClient); Assert.assertEquals(DiscoveryManager.getInstance().getDiscoveryClient(), discoveryClient); Assert.assertEquals(eurekaClient, discoveryClient); EurekaClientConfig eurekaClientConfig = injector.getInstance(EurekaClientConfig.class); Assert.assertEquals(DiscoveryManager.getInstance().getEurekaClientConfig(), eurekaClientConfig); EurekaInstanceConfig eurekaInstanceConfig = injector.getInstance(EurekaInstanceConfig.class); Assert.assertEquals(DiscoveryManager.getInstance().getEurekaInstanceConfig(), eurekaInstanceConfig); Binding<TransportClientFactories> binding = injector.getExistingBinding(Key.get(TransportClientFactories.class)); Assert.assertNotNull(binding); // has a binding for jersey2 TransportClientFactories transportClientFactories = injector.getInstance(TransportClientFactories.class); Assert.assertTrue(transportClientFactories instanceof Jersey2TransportClientFactories); } }
@SuppressWarnings("deprecation") @Test public void testDI() { InstanceInfo instanceInfo = injector.getInstance(InstanceInfo.class); Assert.assertEquals(ApplicationInfoManager.getInstance().getInfo(), instanceInfo); VipAddressResolver vipAddressResolver = injector.getInstance(VipAddressResolver.class); Assert.assertTrue(vipAddressResolver instanceof Archaius2VipAddressResolver); EurekaClient eurekaClient = injector.getInstance(EurekaClient.class); DiscoveryClient discoveryClient = injector.getInstance(DiscoveryClient.class); Assert.assertEquals(DiscoveryManager.getInstance().getEurekaClient(), eurekaClient); Assert.assertEquals(DiscoveryManager.getInstance().getDiscoveryClient(), discoveryClient); Assert.assertEquals(eurekaClient, discoveryClient); EurekaClientConfig eurekaClientConfig = injector.getInstance(EurekaClientConfig.class); Assert.assertEquals(DiscoveryManager.getInstance().getEurekaClientConfig(), eurekaClientConfig); EurekaInstanceConfig eurekaInstanceConfig = injector.getInstance(EurekaInstanceConfig.class); Assert.assertEquals(DiscoveryManager.getInstance().getEurekaInstanceConfig(), eurekaInstanceConfig); Assert.assertTrue(eurekaInstanceConfig instanceof EurekaArchaius2InstanceConfig); ApplicationInfoManager applicationInfoManager = injector.getInstance(ApplicationInfoManager.class); InstanceInfo myInfo = applicationInfoManager.getInfo(); Assert.assertEquals(DataCenterInfo.Name.MyOwn, myInfo.getDataCenterInfo().getName()); } }
@SuppressWarnings("deprecation") @Test public void testDI() { InstanceInfo instanceInfo = injector.getInstance(InstanceInfo.class); Assert.assertEquals(ApplicationInfoManager.getInstance().getInfo(), instanceInfo); VipAddressResolver vipAddressResolver = injector.getInstance(VipAddressResolver.class); Assert.assertTrue(vipAddressResolver instanceof Archaius2VipAddressResolver); EurekaClient eurekaClient = injector.getInstance(EurekaClient.class); DiscoveryClient discoveryClient = injector.getInstance(DiscoveryClient.class); Assert.assertEquals(DiscoveryManager.getInstance().getEurekaClient(), eurekaClient); Assert.assertEquals(DiscoveryManager.getInstance().getDiscoveryClient(), discoveryClient); Assert.assertEquals(eurekaClient, discoveryClient); EurekaClientConfig eurekaClientConfig = injector.getInstance(EurekaClientConfig.class); Assert.assertEquals(DiscoveryManager.getInstance().getEurekaClientConfig(), eurekaClientConfig); EurekaInstanceConfig eurekaInstanceConfig = injector.getInstance(EurekaInstanceConfig.class); Assert.assertEquals(DiscoveryManager.getInstance().getEurekaInstanceConfig(), eurekaInstanceConfig); Assert.assertTrue(eurekaInstanceConfig instanceof Ec2EurekaArchaius2InstanceConfig); ApplicationInfoManager applicationInfoManager = injector.getInstance(ApplicationInfoManager.class); InstanceInfo myInfo = applicationInfoManager.getInfo(); Assert.assertTrue(myInfo.getDataCenterInfo() instanceof AmazonInfo); Assert.assertEquals(DataCenterInfo.Name.Amazon, myInfo.getDataCenterInfo().getName()); } }
/** * Assumes applicationInfoManager is already initialized * * @deprecated use constructor that takes ApplicationInfoManager instead of InstanceInfo directly */ @Deprecated public DiscoveryClient(InstanceInfo myInfo, EurekaClientConfig config, DiscoveryClientOptionalArgs args) { this(ApplicationInfoManager.getInstance(), config, args); }
/** * @deprecated use constructor that takes ApplicationInfoManager instead of InstanceInfo directly */ @Deprecated public DiscoveryClient(InstanceInfo myInfo, EurekaClientConfig config, AbstractDiscoveryClientOptionalArgs args) { this(ApplicationInfoManager.getInstance(), config, args); }
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { InstanceInfo myInfo = ApplicationInfoManager.getInstance().getInfo(); InstanceStatus status = myInfo.getStatus(); if (status != InstanceStatus.UP && response instanceof HttpServletResponse) { HttpServletResponse httpRespone = (HttpServletResponse) response; httpRespone.sendError(SC_TEMPORARY_REDIRECT, "Current node is currently not ready to serve requests -- current status: " + status + " - try another DS node: "); } chain.doFilter(request, response); }
private EurekaMonitors(String name, String description) { this.name = name; this.description = description; DataCenterInfo dcInfo = ApplicationInfoManager.getInstance().getInfo().getDataCenterInfo(); if (dcInfo.getName() == Name.Amazon) { myZoneCounterName = ((AmazonInfo) dcInfo).get(MetaDataKey.availabilityZone) + "." + name; } else { myZoneCounterName = "dcmaster." + name; } }