zoukankan      html  css  js  c++  java
  • 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的服务注册就已经实现了。

  • 相关阅读:
    LOJ6433 [PKUSC2018] 最大前缀和 【状压DP】
    [NOIP2017] 宝藏 【树形DP】【状压DP】
    51Nod1824 染色游戏 【Lucas定理】【FMT】【位运算】
    51Nod1778 小Q的集合 【组合数】【Lucas定理】
    LOJ6436 [PKUSC2018] 神仙的游戏 【FFT】
    LOJ6432 [PKUSC2018] 真实排名 【组合数】
    BZOJ5210 最大连通子块和 【树链剖分】【堆】【动态DP】
    LOJ2269 [SDOI2017] 切树游戏 【FWT】【动态DP】【树链剖分】【线段树】
    洛谷3707 [SDOI2017] 相关分析 【线段树】
    RBAC
  • 原文地址:https://www.cnblogs.com/yanfeiLiu/p/9568949.html
Copyright © 2011-2022 走看看