乐趣区

关于微服务:Spring-Cloud服务发现组件Eureka

简介

Netflix Eureka 是微服务零碎中最罕用的服务发现组件之一,非常简单易用。当客户端注册到 Eureka 后,客户端能够晓得彼此的 hostname 和端口等,这样就能够建设连贯,不须要配置。

Eureka 服务端

增加 Maven 依赖:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

增加注解 @EnableEurekaServer 到 Spring Boot 的启动类中:

package com.pkslow.cloud.eureka;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class EurekaServer {public static void main(String[] args) {SpringApplication.run(EurekaServer.class, args);
    }
}

配置端口号:

server:
  port: 8761
eureka:
  client:
    fetch-registry: false
    register-with-eureka: false

而后启动服务,在浏览器中关上:http://localhost:8761/

咱们就能够看到服务端的信息了,但目前还没客户端注册。

Eureka 客户端

只有注册到 Eureka 服务端的服务,能力被其它服务发现。

增加依赖如下:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

增加注解@EnableEurekaClient

package com.pkslow.cloud.rest;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication
@EnableEurekaClient
public class RestService {public static void main(String[] args) {SpringApplication.run(RestService.class, args);
    }
}

把服务端的地址配置好:

spring.application.name=rest-service
server.port=8081
pkslow.admin=larry|18|admin@pkslow.com
eureka.client.service-url.defaultZone: http://localhost:8761/eureka
eureka.instance.prefer-ip-address=true
management.endpoints.web.exposure.include=*

留神这个 spring.application.name 是很要害的,以它为名字注册到 Eureka。

启动该服务,并刷新 Eureka 服务端的页面:

就能够看到有服务注册上来了。

代码

代码请看 GitHub: https://github.com/LarryDpk/p…

退出移动版