Cloud-Native Applications in Java
上QQ阅读APP看书,第一时间看更新

Running a service registry

Consul and Eureka are two popular dynamic service registries. There are subtle conceptual differences between them with respect to the method of heartbeats and agent-based operations, but the fundamental concept of registry is similar. The selection of the registry will be driven by the needs and the decisions of the enterprise. For our example, let's continue with Spring Boot and the Spring Cloud ecosystem and use Eureka for this example. Spring Cloud includes Spring Cloud Netflix, which has support for the Eureka registry.

Perform the following steps to get a service registry running:

  1. Create a new Maven project with artifactId as eureka-server.
  2. Edit the POM file and add the following:
    • Parent as spring-boot-starter-parent
    • The dependency to eureka-server as spring-cloud-starter-eureka-server
    • The dependencyManagement to spring-cloud-netflix:
  1. Create an application class similar to the one we created for the product project. Note the annotations. The annotation @EnableEurekaServer starts Eureka as a service:
  1. Create an application.yml file in the /product/src/main/resources folder of the application and put in the following:
server: 
  port: 8761 
  1. Create a bootstrap.yml file in the resources folder of the application and put in the following:
spring: 
  application: 
    name: eureka 
  1. Build the eureka-server Maven project (as we did for product) and then run it.
  2. Apart from a few connectivity errors (more on this later), you should see a Tomcat started message as follows:

Once the startup is completed, access the Eureka server at localhost:8761 and check whether you get the following page:

Look at the circled section in the preceding screenshot. The instance currently registered with Eureka is EUREKA itself. We can correct this later. Now, let's focus on registering our product service with this Eureka service registry.