AWS Service registry for resilient mid-tier load balancing and failover.

Related tags

Microservice eureka
Overview

Eureka

Build Status

Eureka is a REST (Representational State Transfer) based service that is primarily used in the AWS cloud for locating services for the purpose of load balancing and failover of middle-tier servers.

At Netflix, Eureka is used for the following purposes apart from playing a critical part in mid-tier load balancing.

  • For aiding Netflix Asgard - an open source service which makes cloud deployments easier, in

    • Fast rollback of versions in case of problems avoiding the re-launch of 100's of instances which could take a long time.
    • In rolling pushes, for avoiding propagation of a new version to all instances in case of problems.
  • For our cassandra deployments to take instances out of traffic for maintenance.

  • For our memcached caching services to identify the list of nodes in the ring.

  • For carrying other additional application specific metadata about services for various other reasons.

Building

The build requires java8 because of some required libraries that are java8 (servo), but the source and target compatibility are still set to 1.7. Note that tags should be checked out to perform a build.

Support

Eureka Google Group

Documentation

Please see wiki for detailed documentation.

Comments
  • Eureka Java client heartbeat is failing intermittently

    Eureka Java client heartbeat is failing intermittently

    Getting this error :

    DiscoveryJerseyProvider   : Cannot parse request body
    
    com.fasterxml.jackson.databind.JsonMappingException: Root name 'timestamp' does not match expected ('instance') for type [simple type, class com.netflix.appinfo.InstanceInfo]
    

    and after that

    RedirectingEurekaHttpClient  : Request execution error
    
    javax.ws.rs.WebApplicationException: HTTP 400 Bad Request
    

    Spring Boot: 1.4.1 Spring Cloud Netflix: 1.2.4.RELEAS Please help me resolve this error.

    opened by bsushant-athena 24
  • How to re register back to eureka server if heartbeat fail to send from spring-boot app.

    How to re register back to eureka server if heartbeat fail to send from spring-boot app.

    We are seeing an issue with one of our spring-boot cloud application, one of our instance failing to send heartbeat some how and eureka server removing this instance from registry. When the instance is trying to update the status with PUT /eureka/v2/apps/appname/instanceid?status=UP&lastDirtyTimestamp=1489548084184 we are seeing 404 http response because we don't have instance with eureka. And this instance is never trying register again. Is there any configuration I need to enable so that it will try to register again with eureka after some retries or errors with heartbeats?

    Here is stack-trace we are seeing when we are getting 404 response.

    com.sun.jersey.api.client.ClientHandlerException: A message body reader for Java class com.netflix.appinfo.InstanceInfo, and Java type class com.netflix.appinfo.InstanceInfo, and MIME media type text/html; charset=utf-8 was not found at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:630) ~[jersey-client-1.19.1.jar!/:1.19.1] at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:586) ~[jersey-client-1.19.1.jar!/:1.19.1] at com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.sendHeartBeat(AbstractJerseyEurekaHttpClient.java:105) ~[eureka-client-1.4.9.jar!/:1.4.9] at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92) [eureka-client-1.4.9.jar!/:1.4.9] at com.netflix.discovery.shared.transport.decorator.MetricsCollectingEurekaHttpClient.execute(MetricsCollectingEurekaHttpClient.java:73) ~[eureka-client-1.4.9.jar!/:1.4.9] at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89) [eureka-client-1.4.9.jar!/:1.4.9] at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92) [eureka-client-1.4.9.jar!/:1.4.9] at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.executeOnNewServer(RedirectingEurekaHttpClient.java:118) ~[eureka-client-1.4.9.jar!/:1.4.9] at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.execute(RedirectingEurekaHttpClient.java:79) ~[eureka-client-1.4.9.jar!/:1.4.9] at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89) [eureka-client-1.4.9.jar!/:1.4.9] at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92) [eureka-client-1.4.9.jar!/:1.4.9] at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:119) [eureka-client-1.4.9.jar!/:1.4.9] at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89) [eureka-client-1.4.9.jar!/:1.4.9] at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92) [eureka-client-1.4.9.jar!/:1.4.9] at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77) [eureka-client-1.4.9.jar!/:1.4.9] at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89) [eureka-client-1.4.9.jar!/:1.4.9] at com.netflix.discovery.DiscoveryClient.renew(DiscoveryClient.java:832) [eureka-client-1.4.9.jar!/:1.4.9] at com.netflix.discovery.DiscoveryClient$HeartbeatThread.run(DiscoveryClient.java:1396) [eureka-client-1.4.9.jar!/:1.4.9] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_121] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_121] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_121] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_121] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121]

    Please let me some pointers.

    Thanks in advance.

    question stale 
    opened by kosurusekhar 24
  • Client reports

    Client reports "HTTP 400 Bad Request/unable to send heartbeart!" even though heartbeat succeeds

    I have setup a eureka server and a handful of web services as eureka clients, all deployed as aws elastic beanstalk apps. Everything appears to be working correctly- the apps register with eureka and are visible on the system status page, and I can hit them via a zuul server that gets routing info from eureka.

    However, the clients are reporting that they are not able to send heartbeats, despite the fact that the server is receiving them just fine. The server lists the services as UP and the access log for the server shows that it is receiving the heartbeats and replying with a 200 status code.

    But the clients are are throwing 400/Bad Request exceptions:

    2019-03-08 15:38:11,884 [DiscoveryClient-HeartbeatExecutor-0] DEBUG c.n.d.s.t.j.AbstractJerseyEurekaHttpClient - Jersey HTTP PUT <eureka server host>/eureka/apps/HOOPLA-RECOMMENDATIONS/<hostname>:80:3aaeab0f-8899-4890-9323-584cf416aec2; statusCode=200
    2019-03-08 15:38:11,884 [DiscoveryClient-HeartbeatExecutor-0] ERROR c.n.d.s.t.d.RedirectingEurekaHttpClient - Request execution error. endpoint=DefaultEndpoint{ serviceUrl='<eureka server host>/eureka}
    javax.ws.rs.WebApplicationException: HTTP 400 Bad Request
    	at com.netflix.discovery.provider.DiscoveryJerseyProvider.readFrom(DiscoveryJerseyProvider.java:110)
    	at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:634)
    	at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:586)
    	at com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.sendHeartBeat(AbstractJerseyEurekaHttpClient.java:105)
    	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:120)
    	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:846)
    	at com.netflix.discovery.DiscoveryClient$HeartbeatThread.run(DiscoveryClient.java:1405)
    	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:1149)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    	at java.lang.Thread.run(Thread.java:748)
    Caused by: com.thoughtworks.xstream.io.StreamException: 
    	at com.thoughtworks.xstream.io.xml.DomDriver.createReader(DomDriver.java:115)
    	at com.thoughtworks.xstream.io.xml.DomDriver.createReader(DomDriver.java:84)
    	at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1445)
    	at com.netflix.discovery.converters.wrappers.CodecWrappers$XStreamXml.decode(CodecWrappers.java:387)
    	at com.netflix.discovery.provider.DiscoveryJerseyProvider.readFrom(DiscoveryJerseyProvider.java:103)
    	... 23 common frames omitted
    Caused by: org.xml.sax.SAXParseException: Premature end of file.
    	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)
    	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
    	at com.thoughtworks.xstream.io.xml.DomDriver.createReader(DomDriver.java:108)
    	... 27 common frames omitted
    2019-03-08 15:38:11,884 [DiscoveryClient-HeartbeatExecutor-0] WARN  c.n.d.s.t.d.RetryableEurekaHttpClient - Request execution failed with message: HTTP 400 Bad Request
    2019-03-08 15:38:11,884 [DiscoveryClient-HeartbeatExecutor-0] ERROR c.netflix.discovery.DiscoveryClient - DiscoveryClient_HOOPLA-RECOMMENDATIONS/<hostname>:80:3aaeab0f-8899-4890-9323-584cf416aec2 - was unable to send heartbeat!
    

    The client acknowledges the 200 response from the server, but then throws an error when trying to parse the response body. Stepping through the client code, it looks like the client is expecting an InstanceInfo object in the body of the response it gets from the server. But the heartbeat endpoint's response body is empty.

    The server and client are the same eureka version (1.9.3).

    Is this the expected behavior? Is this a bug, or could there be a problem with my configuration?

    opened by jbrew8 22
  • Eureka Client dependency update to Jersey 2.x

    Eureka Client dependency update to Jersey 2.x

    We have to add the spring-boot-starter-jersey to put Jersyey 2.14 on the classpath. The mix of both versions lead to strange NoSuchMethodErrors during application startup! The only solution seems to be to use JAX-RX 1.x (Jersey 1) . This is maybe related to https://github.com/Netflix/eureka/issues/376

    opened by cforce 21
  • Fix the inconsistency logic in method updateRenewalThreshold().

    Fix the inconsistency logic in method updateRenewalThreshold().

    Fix the inconsistency logic in method updateRenewalThreshold(). Because it does not reflect the expected intention based on the comment. updateRenewalThreshold will be qualified to run if renewal count * 2 is bigger than

    serverConfig.getRenewalPercentThreshold() * expectedNumberOfRenewsPerMin
    

    NOT

    serverConfig.getRenewalPercentThreshold() * numberOfRenewsPerMinThreshold
    
    opened by neoremind 20
  • Could not determine if the replica is available exception

    Could not determine if the replica is available exception

    Hi, I've noticed no active replicas on status page for eureka cluster consisting of 2 eureka servers. We use route53-based txt dns setup, both servers in different az. All running replicas in unavailable-replicas list, though logs contains replication activity.

    • What effect does it have for eureka cluster?
    • Can it cause situations when cluster losts overriden registry data when new servers added? Any help in finding reasons of such behaviour appreciated. Currently we use eureka 1.1.151 Exceptions when new server added to eureka cluster:
    Could not determine if the replica is available 
    ! java.lang.NullPointerException: null
    ! at com.netflix.eureka.resources.StatusResource.isReplicaAvailable(StatusResource.java:89)
    ! at com.netflix.eureka.resources.StatusResource.getStatusInfo(StatusResource.java:69)
    ! at sun.reflect.GeneratedMethodAccessor136.invoke(Unknown Source)
    ! at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    ! at java.lang.reflect.Method.invoke(Method.java:497)
    ! at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:912)
    ! at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:107)
    ! at freemarker.core.MethodCall._eval(MethodCall.java:98)
    ! at freemarker.core.Expression.eval(Expression.java:111)
    ! at freemarker.core.Assignment.accept(Assignment.java:106)
    ! at freemarker.core.Environment.visit(Environment.java:265)
    ! at freemarker.core.MixedContent.accept(MixedContent.java:93)
    ! at freemarker.core.Environment.visit(Environment.java:265)
    ! at freemarker.core.Environment.process(Environment.java:243)
    ! at freemarker.template.Template.process(Template.java:277)
    ! at com.yammer.dropwizard.views.freemarker.FreemarkerViewRenderer.render(FreemarkerViewRenderer.java:56)
    ! at com.yammer.dropwizard.views.ViewMessageBodyWriter.writeTo(ViewMessageBodyWriter.java:74)
    ! at com.yammer.dropwizard.views.ViewMessageBodyWriter.writeTo(ViewMessageBodyWriter.java:22)
    ! at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:306)
    ! at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1479)
    ! at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)
    ! at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)
    ! at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
    ! at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
    ! at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
    ! at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
    ! at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:669)
    ! at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448)
    ! at com.netflix.eureka.StatusFilter.doFilter(StatusFilter.java:68)
    ! at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
    ! at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:66)
    ! at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
    ! at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
    ! at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
    ! at com.yammer.dropwizard.servlets.ThreadNameFilter.doFilter(ThreadNameFilter.java:29)
    ! at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
    ! at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
    ! at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
    ! at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
    ! at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
    ! at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    ! at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    ! at com.yammer.metrics.jetty.InstrumentedHandler.handle(InstrumentedHandler.java:200)
    ! at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
    ! at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    ! at org.eclipse.jetty.server.Server.handle(Server.java:368)
    ! at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
    ! at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
    ! at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942)
    ! at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1004)
    ! at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640)
    ! at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
    ! at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
    ! at org.eclipse.jetty.server.nio.BlockingChannelConnector$BlockingChannelEndPoint.run(BlockingChannelConnector.java:298)
    ! at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
    ! at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    ! at java.lang.Thread.run(Thread.java:745)
    
    opened by drax68 18
  • Support jersey2 for client/server

    Support jersey2 for client/server

    Initial support for jersey2 for #600

    Deployed these changes to our local snapshot repository. I've been running our builds with the snapshot for the last week. I believe the only non-passive change for existing jersey1 consumers is the relocation of DiscoveryClientOptionalArgs from an inner class of DiscoveryClient this was because the optional args has a method to supply additional filters which the interface was changed with jaxrs2.

    client

    Changed DiscoveryClient to accept a TransportClientFactories on the optional args class to support supplying the jersey2 transport client factory.

    Jersey2DiscoveryClientOptionalArgs args = new Jersey2DiscoveryClientOptionalArgs();
    args.setTransportClientFactories(Jersey2TransportClientFactories.getInstance());
    DiscoveryManager.getInstance().initComponent(new MyDataCenterInstanceConfig(), new DefaultEurekaClientConfig(), args);
    

    server

    Added EurekaServerContextBinder to use the hk2 injectors for EurekaServerContext. The GuiceFilter is no longer required to be on the filter chain. I did not create a eureka-server-jersey2 module since I am not deploying eureka-server as a war. Added Jersey2EurekaBootStrap which uses the client/server jersey2 classes for peer replication.

    // Expects that you have already initialized the discovery client
    new Jersey2EurekaBootStrap(DiscoveryManager.getInstance().getDiscoveryClient()
    
    opened by mattnelson 17
  • eureka-client-1.4.12 TimedSupervisorTask  : task supervisor rejected the task

    eureka-client-1.4.12 TimedSupervisorTask : task supervisor rejected the task

    Source TimedSupervisorTask.java line 62 Need to determine whether the executor is shutdown. Specific is when using spring cloud eurekaClient.

    exception stack: ` 2017-03-04 11:47:34.485 ERROR 21604 --- [ver-bootstrap-0] c.netflix.discovery.TimedSupervisorTask : task supervisor rejected the task

    java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@300f48c6 rejected from java.util.concurrent.ThreadPoolExecutor@3ec8a0b7[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0] at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2047) ~[na:1.8.0_92] at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:823) [na:1.8.0_92] at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1369) [na:1.8.0_92] at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112) ~[na:1.8.0_92] at com.netflix.discovery.TimedSupervisorTask.run(TimedSupervisorTask.java:62) ~[eureka-client-1.4.12.jar:1.4.12] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_92] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_92] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_92] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_92] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_92] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_92] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_92] `

    question stale 
    opened by rqw 16
  • Cannot bootstrap eureka server

    Cannot bootstrap eureka server

    Getting the following issue when trying to start up eureka server:

    Dec 31, 2012 4:02:51 AM org.apache.catalina.core.StandardContext listenerStart SEVERE: Exception sending context initialized event to listener instance of class com.netflix.eureka.EurekaBootStrap java.lang.RuntimeException: Cannot bootstrap eureka server : at com.netflix.eureka.EurekaBootStrap.contextInitialized(EurekaBootStrap.java:120) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:968) at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1646) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:679) Caused by: java.lang.ExceptionInInitializerError at com.netflix.eureka.EurekaBootStrap.contextInitialized(EurekaBootStrap.java:100) ... 14 more Caused by: java.lang.IllegalStateException: java.lang.NullPointerException at com.netflix.eureka.PeerAwareInstanceRegistry.setupPeerEurekaNodes(PeerAwareInstanceRegistry.java:197) at com.netflix.eureka.PeerAwareInstanceRegistry.init(PeerAwareInstanceRegistry.java:150) at com.netflix.eureka.PeerAwareInstanceRegistry.(PeerAwareInstanceRegistry.java:138) at com.netflix.eureka.PeerAwareInstanceRegistry.(PeerAwareInstanceRegistry.java:124) ... 15 more Caused by: java.lang.NullPointerException at com.netflix.logging.messaging.MessageBatcher.(MessageBatcher.java:136) at com.netflix.logging.messaging.BatcherFactory.createBatcher(BatcherFactory.java:70) at com.netflix.eureka.cluster.PeerEurekaNode.getBatcher(PeerEurekaNode.java:577) at com.netflix.eureka.cluster.PeerEurekaNode.(PeerEurekaNode.java:88) at com.netflix.eureka.PeerAwareInstanceRegistry.updatePeerEurekaNodes(PeerAwareInstanceRegistry.java:213) at com.netflix.eureka.PeerAwareInstanceRegistry.setupPeerEurekaNodes(PeerAwareInstanceRegistry.java:181) ... 18 more

    Full catalina.out: https://gist.github.com/4417295

    opened by ericdowd 16
  • Instantly start up if there are no peers to sync with

    Instantly start up if there are no peers to sync with

    Please feel free to reject this; it's as much an RFC on how to address #42 as anything else. Instead of introducing new settings for instant startup in development environments, I'm instead simply bypassing the wait part of the cycle if there are no peers to sync with. This might have negative implications in a production environment, but I'm struggling to come up with one; it only shows up if you launch Eurekas a second before you populate DNS or the like. I believe it ought to be safe.

    opened by bpollack 15
  • Document version compatibility

    Document version compatibility

    I believe this one should be document as I wasn't able to find anything in the wiki.

    There are three main questions that come to mind:

    1. what do different version increments represent?
    2. is it supported to run clients with earlier versions than the server? patch level or minor too?
    3. is it supported to run servers with different versions (e.g. while upgrading a cluster)? patch level or minor?
    opened by sfussenegger 14
  • High Severity Vulnerability in xstream-1.4.19.jar

    High Severity Vulnerability in xstream-1.4.19.jar

    December 24, 2022 XStream 1.4.20 released

    This maintenance release addresses the security vulnerabilities CVE-2022-40151 and CVE-2022-41966, causing a Denial of Service by raising a stack overflow. It also provides new converters for Optional and Atomic types.

    opened by gdut-yy 0
  • Upgrade xstream-1.4.19 to 1.4.20 for CVE-2022-40151 and CVE-2022-41966.

    Upgrade xstream-1.4.19 to 1.4.20 for CVE-2022-40151 and CVE-2022-41966.

    https://x-stream.github.io/news.html

    December 24, 2022 XStream 1.4.20 released

    This maintenance release addresses the security vulnerabilities CVE-2022-40151 and CVE-2022-41966, causing a Denial of Service by raising a stack overflow. It also provides new converters for Optional and Atomic types.

    opened by gdut-yy 1
  • How to strat registration in eureka server after some events.

    How to strat registration in eureka server after some events.

    Hello. Our eureka clients has very long time startup (becouse its have many routes upload in camel context) and we need to register in eureka when all other proceess is completed. Please tell me how to delay registration in eureka service?

    opened by LiudmilaObregon 0
  • CVE-2022-41852 in commons-jxpath-1.3

    CVE-2022-41852 in commons-jxpath-1.3

    Hello. There is CVE-2022-41852 with high level risk in commons-jxpath-1.3. This library is transitive for com.netflix.eureka:eureka-client:1.10.17 Any patch?

    opened by RunFox 3
Releases(v2.0.0)
  • v2.0.0(Dec 14, 2022)

    Eureka 2.0.0 Release Notes

    Eureka 2.0.0 has been released. This release is a new effort and is not related to a previous preview of code released in the 2.x-archive branch which was an experimental re-architecture of Eureka.

    The Eureka Server HTTP API and wire data formats have not changed for the 2.0.0 release. Eureka servers and clients should be backwards and forwards compatible over the wire. This release was primarily driven for compatibility with Spring Framework 6.0 and Spring Boot 3.0 and the change to Jakarta EE 9.

    What has changed?

    The Eureka 2.0.0 Java client API is not backwards compatible with 1.x. Eureka 1.x included support for Jersey 1 and optional Support for Jersey 2. In many cases, Jersey 1 was the default and was baked into the eureka-core and eureka-client modules. Having a default client has been removed. The new eureka-client-jersey3 and eureka-core-jersey3 should now be used if no other implementation is provided (such as Spring Cloud support for a RestTemplate implementation). The DiscoveryClient constructors have been updated to have a new required TransportClientFactories parameter. The majority of the Eureka 2.0.0 Java client API has remained unchanged. All references to javax.* classes have been changed to jakarta.* classes and the appropriate modules have been added. The eureka-server-governator module was removed. There is no current support for the JakartaEE version of @Inject. The eureka-server module currently does not build a functional WAR file. The recommended way of creating a Eureka 2.0.0 server is via Spring Cloud Netflix as a Spring Boot application. The build now requires JDK 11 because of some tests that require Jetty and the version of Jetty that supports Jakarta EE 9 requires Java 11. The build still targets Java 8.

    Feedback

    Please try things out and provide any feedback or issues at https://github.com/Netflix/eureka/issues.

    Source code(tar.gz)
    Source code(zip)
  • v1.10.18(Nov 30, 2022)

  • v2.0.0-rc.4(Nov 15, 2022)

  • v2.0.0-rc.3(Oct 3, 2022)

  • v1.10.17(Oct 20, 2021)

  • v1.10.16(Aug 5, 2021)

    • Enable overriding the client in DiscoveryManager (#1417)
    • Refactor: use diamond operator (#1412)
    • Refactor: use diamond operator (#1405)
    • Allow null values for healthcheck (#1402)
    Source code(tar.gz)
    Source code(zip)
  • v1.10.15(Jun 10, 2021)

  • v1.10.14(May 18, 2021)

    • Update Jackson to 2.10 branch (#1393)
    • Rotate publishing credentials
    • Update ResolverUtils::randomize (#1383)
    • Upgrade xstream to 1.4.16 for CVE-2021-213{41-51} (#1386)
    • Replace jcenter with maven central (#1381)
    Source code(tar.gz)
    Source code(zip)
  • v1.10.13(Mar 3, 2021)

  • v1.10.12(Jan 14, 2021)

  • v1.10.11(Dec 1, 2020)

  • v1.10.10(Nov 12, 2020)

  • v1.10.9(Nov 11, 2020)

  • v1.10.8(Nov 6, 2020)

    • Make instance config factory support custom amazon info provider
    • Update Build Status Location (#1359)
    • Update vulnerable deps #1357 #1351 (#1358)
    Source code(tar.gz)
    Source code(zip)
  • v1.10.7(Oct 20, 2020)

  • v1.10.6(Oct 15, 2020)

  • v1.10.5(Oct 14, 2020)

  • v1.10.4(Sep 29, 2020)

  • v1.10.3(Sep 29, 2020)

  • v1.10.2(Sep 29, 2020)

  • v1.10.1(Sep 29, 2020)

  • v1.10.0(Sep 28, 2020)

    • Add secondsSinceLastSuccessfulRemoteFetch metric
    • Add a couple of minor metrics
    • Upgrade xstream to fix illegal reflection access reported by tomcat
    • Fix log line which was generating a compiler warning
    • Add jaxb-runtime, which is required for Java >=11
    Source code(tar.gz)
    Source code(zip)
  • v1.9.26(Sep 14, 2020)

    • Bump jackson-databind do 2.9.10.6 (#1333)
    • Change runtime scopes to runtimeOnly (#1334)
    • Update AbstractInstanceRegistry.java
    • Log status transitions to DOWN at error level, instead of warn
    • Downgrade log level of noisy log messages
    • Cleanup Issues Found by Muse (#1321)
    • Update Travis CI to use Xenial/OpenJDK8 (#1304)
    • Replace valueOf with parseLong where primitive type is expected (#1313)
    • Fix typos in AbstractInstanceRegistry and EurekaMonitors (#1314)
    Source code(tar.gz)
    Source code(zip)
  • v1.9.25(Jun 29, 2020)

  • v1.9.24(Jun 26, 2020)

  • v1.9.23(Jun 18, 2020)

    • Add shouldEnforceFetchRegistryAtInit config (#1307)
    • Resolve spinlock issue in AcceptorExecutor thread (#1303)
    • Improve map iteration in JerseyApplicationClient.java (#1301)
    • Resolve the zone from metadata for non-AWS code path (#1287)
    • Update Compactmap library to 2.0 (#1296)
    Source code(tar.gz)
    Source code(zip)
  • v1.9.22(May 11, 2020)

  • v1.9.21(Apr 30, 2020)

  • v1.9.20(Apr 7, 2020)

  • v1.9.19(Apr 7, 2020)

Owner
Netflix, Inc.
Netflix Open Source Platform
Netflix, Inc.
CoSky is a lightweight, low-cost service registration, service discovery, and configuration service SDK.

High-performance, low-cost microservice governance platform. Service Discovery and Configuration Service

Ahoo Wang 61 Nov 22, 2022
Annotation/Reflection Based Bukkit Command API. Containing many features such as help-service, command providers, tab completion, and many more!

CommandAPI Annotation/Reflection Based Command API that just does what you want it to do without any problems. Importing Maven <repository> <id>

damt 1 Jun 13, 2022
Define Java service providers by annotating them directly

Annotated Service Provider Define JVM service providers by annotating the provider class directly. This annotation processor will add to the class-pat

Emily 5 Oct 31, 2021
Drone Service REST API in Spring boot

Drones Service REST API ?? START Introduction There is a major new technology that is destined to be a disruptive force in the field of transportation

Moses-K 1 Feb 4, 2022
Library which allows the use and rendering of Blockbench models and animations in a Minecraft server by using generated resource packs and armorstands

Hephaestus Engine Hephaestus Engine is a library which allows the visualization of block bench models and animations in a Minecraft server by the use

Unnamed Team 109 Dec 21, 2022
LINE 4.1k Jan 2, 2023
A powerful flow control component enabling reliability, resilience and monitoring for microservices. (面向云原生微服务的高可用流控防护组件)

Sentinel: The Sentinel of Your Microservices Introduction As distributed systems become increasingly popular, the reliability between services is beco

Alibaba 20.4k Dec 31, 2022
Opinionated libraries for HTTP&JSON-based RPC using Retrofit, Feign, OkHttp as clients and Jetty/Jersey as servers

Conjure Java Runtime (formerly http-remoting) This repository provides an opinionated set of libraries for defining and creating RESTish/RPC servers a

Palantir Technologies 76 Dec 13, 2022
ColocationSim: Simulate Colocation Datacenter in a Fine Granularity with Microservices and Interference Modeling

ColocationSim Introduction 将在线作业和离线作业混合部署在同一集群(简称混部,Colocation)提升数据中心资源利用率的主流方法,如何在保证在线作业性能的前提下最大化集群的资源利用率成为混部相关研究中最主要问题。混部作业调度算法从集群层面解决这一问题,是学术界、企业界的

null 93 Jan 4, 2023
Source Code for 'Pro Java Microservices with Quarkus and Kubernetes' by Nebrass Lamouchi

Apress Source Code This repository accompanies Pro Java Microservices with Quarkus and Kubernetes by Nebrass Lamouchi (Apress, 2021). Download the fil

Apress 24 Oct 31, 2022
Govern Service is a lightweight, low-cost service registration, service discovery, and configuration service SDK.

Govern Service is a lightweight, low-cost service registration, service discovery, and configuration service SDK. By using Redis in the existing infrastructure (I believe you have already deployed Redis), it doesn’t need to bring extra to the operation and maintenance deployment. Cost and burden. With the high performance of Redis, Govern Service provides ultra-high TPS&QPS (10W+/s JMH Benchmark).

Ahoo Wang 61 Nov 22, 2022
Quarkus JAX-RS App Deployed as AWS Lambda with AWS CDK

MicroProfile with Quarkus as AWS Lambda Function deployed with Cloud Development Kit (CDK) v2 for Java A lean starting point for building, testing and

Adam Bien 30 Dec 15, 2022
AWS JSON TRANSLATOR CLI is a command line application to translate JSON files using AWS Translate

A command line tool to translate JSON files using AWS Translate.

Marc Guillem 0 May 30, 2022
FlexyPool adds metrics and failover strategies to a given Connection Pool, allowing it to resize on demand.

Introduction The FlexyPool library adds metrics and flexible strategies to a given Connection Pool, allowing it to resize on demand. This is very hand

Vlad Mihalcea 970 Jan 1, 2023
CoSky is a lightweight, low-cost service registration, service discovery, and configuration service SDK.

High-performance, low-cost microservice governance platform. Service Discovery and Configuration Service

Ahoo Wang 61 Nov 22, 2022
Project on End to End CI/CD pipeline for java based application using Git,Github,Jenkins,Maven,Sonarqube,Nexus,Slack,Docker and Kuberenets with ECR as private docker registry and Zero Downtime Deployment

Project on End to End CI/CD pipeline for java based application using Git,Github,Jenkins,Maven,Sonarqube,Nexus,Slack,Docker and Kuberenets with ECR as private docker registry and Zero Downtime Deployment.

NITHIN JOHN GEORGE 10 Nov 22, 2022
Demo for schema references feature on the Confluent Schema Registry

Schema references demos This project aims to showcase the schema references feature on Confluent Schema Registry. Two distinct use case are considered

David Araujo 7 Sep 5, 2022
Opfern-Decomp - s tier client (probably)

Opfern Another Flika1999 client. No i'm not doing any kind of OMG OPFERN POPBOB EPIC CLIENT LEAK!!! I'm just decomping it for fun and for you weird pe

null 3 Dec 2, 2022