less than 1 minute read

我们知道在微服务架构中,服务的注册与发现需要一个注册中心。如果没有注册中心,那么微服务之间无法知道对方的地址以及是否可用。 Eureka就是一个可供选择的注册中心。

搭建服务端

  1. 引入依赖

     <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
         <version>3.0.4</version>
     </dependency>
    
  2. 在启动类上方加注解@EnableEurekaServer,如

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

     server:
       port: 8001
     spring:
       application:
         name: eurekaServer # eureka服务名称
     eureka:
       client:
         service-url: # eureka地址信息
           defaultZone: http://127.0.0.1:8001/eureka
    

    配置完成之后访问http://localhost:8001/,能看到Eureka管理界面,发现已经有一个服务被注册了,那就是Eureka自身。

注册微服务

其他微服务怎么注册呢?非常简单。

  1. 引入spring-cloud-starter-netflix-eureka-client依赖
  2. 配置

     spring:
       application:
         name: userServer # eureka服务名称
     eureka:
       client:
         service-url: # eureka注册中心地址信息
           defaultZone: http://127.0.0.1:8001/eureka
    

服务发现

当想要使用微服务时,要做以下几点。

  1. 引入spring-cloud-starter-netflix-eureka-client依赖
  2. RestTemplate 添加 @LoadBalanced注解实现负载均衡
  3. 用服务提供者的服务名称提供远程调用。如http://userservice/user/