springcloud 系列之 Eureka 的构建

132 阅读1分钟


首先 导入 pom 文件 , 版本管理 统一使用 springboot 的 父级 进行管理 

<!--eureka 健康监控-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
 
        <!-- eureka 的服务端 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            <version>${eureka.version}</version>
        </dependency>

在自己的 yml 文件中 配置 

eureka:
  instance:
    #eureka服务端的实例名称
    hostname: localhost
  client:
    #false表示不向注册中心注册自己。
    register-with-eureka: false
    #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    fetch-registry: false
    service-url:
      #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址。
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

添加启动类

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

启动之后 访问 localhost:port 就可以了


这个就是自己注册的服务了

eureka 项目位置 github.com/1042545965/…

eureka的理解

一 : eureka 在目前我的项目中起的作用

① :在网关的调用

zuul:
  prefix: /api
  routes:
    cloud-auth:
      path: /cloudAuth/**
      # 就是 服务的名称 application:name = cloud-auth
      serviceId: cloud-auth
    cloud-user:
      path: /cloudUser/**
      # 就是 服务的名称 application:name = cloud-user
      serviceId: cloud-user

这是我在 网关中配置的服务转发 serviceId: cloud-user 指定了服务的名称 就能直接去访问了 而不需要将url 写死 

  ② : 在服务间调用的时候

@FeignClient(name = Canstant.CLOUD_AUTH , fallback = AuthApiFallback.class)
public interface AuthApi {
 
    /**
     * 获取用户登陆权限
     */
    @RequestMapping(value = "/authApi/getSysUserMenuList", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
    public List<UserMenuDto> getSysUserMenuList(@RequestParam("userName") String userName);
 
}

这里的 Canstant.CLOUD_AUTH 就是eureka的服务名称 , 在使用feign的时候也能 根据服务名称来访问服务 ,更加解耦

二 : 就是从CAP 理论来理解 eureka的优势 , 比如相比教 zk而言