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的服务注册就已经实现了。

  • 相关阅读:
    java三大特性或java对象的三大特性?
    数据结构与算法第10周作业——二叉树的创建和遍历算法
    JDBC的应用
    数据结构与算法--第5周作业(线性表合并算法)
    数据结构与算法--第4周作业(单链表)
    WEB(JSP)下的JDBC操作实验
    application下的JDBC操作
    思考题:JSP的指令inclue和动作include的区别
    css3动画小试
    JS => 函数
  • 原文地址:https://www.cnblogs.com/yanfeiLiu/p/9568949.html
Copyright © 2011-2022 走看看