Possibly relevant dependencies:

spring-cloud-starter-netflix-eureka-server\2.0.0.BUILD-SNAPSHOT
com.netflix.eureka\eureka-core\1.8.6
com.netflix.eureka\eureka-client\1.8.6
spring-cloud-netflix-eureka-client\2.0.0.BUILD-SNAPSHOT
spring-cloud-netflix-core\2.0.0.BUILD-SNAPSHOT

I have my 2 Eureka Server names defined in my hosts file:

127.0.0.1   peer1
127.0.0.1   peer2

My Eureka Server is defined as such:

@SpringBootApplication
@EnableEurekaServer
public class SpringMicroservicesEurekaServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringMicroservicesEurekaServerApplication.class, args);
    }
}

The 2 related server resources

application-peer1.yml

server:
  port: 8761
eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url: 
      defaultZone: http://peer2:8762  # Where's my buddy?
  instance:
    hostname: peer1
    health-check-url: http://peer1:8761/actuator/health
    status-page-url: http://peer1:8761/actuator/status
    lease-renewal-interval-in-seconds: 5

application-peer2.yml

server:
  port: 8762
eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url: 
      defaultZone: http://peer1:8761
  instance:
    hostname: peer2
    health-check-url: http://peer2:8762/actuator/health
    status-page-url: http://peer2:8762/actuator/health
    lease-renewal-interval-in-seconds: 5

My service is defined thusly

@SpringBootApplication
@EnableEurekaClient
public class SpringMicroservicesEurekaClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringMicroservicesEurekaClientApplication.class, args);
    }
}

Its 2 resource files

bootstrap.yml

[intentionally left blank]

application.yml

eureka:
  instance:
    leaseRenewalIntervalInSeconds: 1
    leaseExpirationDurationInSeconds: 2
  client:
    serviceUrl:
      defaultZone: http://peer1:8761/eureka/
spring:    
  application:
    name: MyStupidService

logging:
  level:
    com.oreilly.cloud: DEBUG

The service hits the server, but fails to register:

DS: Registry: cancel failed because Lease is not registered for: MYSTUPIDSERVICE/192.168.0.105:MyStupidService
Not Found (Cancel): MYSTUPIDSERVICE - 192.168.0.105:MyStupidService

This may also be relevant. Here are the client logs:

Registering application MyStupidService with eureka with status UP
Saw local status change event StatusChangeEvent [timestamp=1520114947579, current=UP, previous=STARTING]
DiscoveryClient_MYSTUPIDSERVICE/192.168.0.105:MyStupidService: registering service...
DiscoveryClient_MYSTUPIDSERVICE/192.168.0.105:MyStupidService - registration status: 204
Started SpringMicroservicesEurekaClientApplication in 5.074 seconds (JVM running for 6.373)
Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@6eafb10e: startup date [Sat Mar 03 17:09:04 EST 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@4c2cc639
Unregistering application MyStupidService with eureka with status DOWN
Saw local status change event StatusChangeEvent [timestamp=1520114947606, current=DOWN, previous=UP]
DiscoveryClient_MYSTUPIDSERVICE/192.168.0.105:MyStupidService: registering service...
Stopping beans in phase 0
Shutting down DiscoveryClient ...
Unregistering ...
DiscoveryClient_MYSTUPIDSERVICE/192.168.0.105:MyStupidService - registration status: 204
DiscoveryClient_MYSTUPIDSERVICE/192.168.0.105:MyStupidService - deregister  status: 200
Completed shut down of DiscoveryClient

The github repo is at: https://github.com/jclevine/eureka_server_client_test


This seems to work for Spring Boot v1.5.9, so it may very well be a bug in v2.0.0.

Comment From: spencergibb

Can you get your app back in a state that 2.0.0 fails. You made changes including moving back to Edgware.

Comment From: jclevine

@spencergibb If you go back to this commit, it should fail as shown above.

Comment From: ryanjbaxter

My guess is that this is happening because your application is finished running. Maybe you are expecting your client to run as a web app? If so you will need to add

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

Comment From: jclevine

Weird. I wonder why it works without that in the earlier version of Spring Boot. I'll give this a shot and see if it works.

Comment From: Chaithanya-Bangaru

Weird. I wonder why it works without that in the earlier version of Spring Boot. I'll give this a shot and see if it works.

That should work, because I faced the same problem, Spring Boot 2+ versions explicitly needed Web starter too , earlier, just Eureka Discovery was just enough

Comment From: spencergibb

Closing this due to inactivity. Please re-open if there's more to discuss.

Comment From: RADHAPANDIKUNTA

Iam having above issuse instance cancelled after registring instance plz give solution anyone

Comment From: spencergibb

@RADHAPANDIKUNTA please open a new issue and provide a complete, minimal, verifiable sample that reproduces the problem. It should be available as a GitHub (or similar) project or attached to the issue as a zip file.