SpringCloud学习--Eureka 服务注册与发现

Posted Lyf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud学习--Eureka 服务注册与发现相关的知识,希望对你有一定的参考价值。

目录

  一:构建项目

  二:服务注册与发现

  为什么选择Eureka,请看上一篇博客 Eureka -- 浅谈Eureka

项目构建

    IDEA 选择 New Project 选择 Spring Initializr 

    填入Group组、Artifice项目名,勾选Type为 Gradle Config(这里是基于gradle实现的)

    选择组件:根据自己需要进行选择,这里需要Eureka来做为注册中心,所以我先勾线了Eureka的两个服务依赖

    创建完成后 在 bulid.gradle中 使用subprojects统一所有子项目的配置

      subprojects{} 作用:使用多模块项目时,不同模块之间有相同的配置,导致重复配置,可以将相同的部分抽取出来,使用配置注入的技术完成子项目的配置。根项目就像一个容器, subprojects 方法遍历这个容器的所有元素并且注入指定的配置。

 服务注册与发现

  注册中心

    首先先创建一个Module模块,操作如下:右键项目 New Module

    选择gradle(如果用maven构建请选择maven)

    输入模块名称 register-center

    完成模块创建,在子模块的bulid.gradle中 添加 eureka 注册服务依赖

dependencies {
    compile(\'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server\')
}

    在main里面创建启动类RegisterApplication(注意加入@EnableEurekaServer注解 来表明自己是一个注册中心)

@SpringBootApplication
@EnableEurekaServer//表明自己是注册中心
public class RegisterApplication {
    public static void main(String[] args) {
        SpringApplication.run(RegisterApplication.class, args);
    }
}

    在resources中添加application.yml配置文件

spring:
  application:
    name: register-center
server:
  port: 10000
eureka:
  client:
    service-url:
     defaultZone: http://localhost:10000/eureka#默认地址
    register-with-eureka: false#启动时不注册表明自己是一个注册中心
    fetch-registry: false
View Code

    这里自定义了Eureka端口地址

    其Eureka默认端口地址为8761

    打开Eureka地址 发现 自己(register-center)已经被注册进了,和我们起初只是单让它作为一个注册中心是不匹配的

    可以发现现在是没有配置  register-with-eureka: false    fetch-registry: false 这两句代码的  Eureka也将自己注册进来,将这两句代码加入配置文件中 再次刷新Eureka发现自己已经不在注册中心了

   服务发现

    同上再次创建一个Module(order-client) 在其bulid.gradle中添加eureka客户端的依赖

dependencies {
    compile(\'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client\')
}

    创建启动类OrderClientApplication(添加@EnableDiscoveryClient //表示自己是eureka客户端)

@SpringBootApplication
@EnableEurekaClient //表明自己是eureka客户端
public class OrderClientApplication {
    public static void main(String[] args) {
        SpringApplication.run(OrderClientApplication.class,args);
    }
}

    添加application.yml配置 这里就不需要在写入 register-with-eureka: false    fetch-registry: false 

    这里在启动时应该注意先将eureka服务端(register-center)启动,再启动客户端(order-client),如不先启动服务端(也可以添加 register-with-eureka: false fetch-registry: false 解决但是这就又成为服务端了,并不是我们想要的),客户端将报如下错误

    这里牵扯到Eureka的特点:即是服务端,又是客户端,后续会对Eureka注册过程进行一个分析想学习的,请关注博主o,这里先不做说明

    启动服务端再启动客户端,刷新注册中心,发现客户端已经注册进去了

    至此,Eureka的服务注册就已经实现了。

 

以上是关于SpringCloud学习--Eureka 服务注册与发现的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud 学习笔记总结

springcloud学习笔记day02——Eureka

springcloud学习笔记day02——Eureka

springcloud学习笔记day02——Eureka

springcloud学习笔记day02——Eureka

SpringCloud学习--Eureka 服务注册与发现