zoukankan      html  css  js  c++  java
  • Eureka服务治理-注册中心和注册服务

    一、Eureka介绍

    Spring Cloud Eureka 是 Spring Cloud Netflix组件之一,是微服务架构中最为核心和基础的模块,主要用来实现各个微服务实例的自动化注册与发现。

    二、Eureka组成

    Spring Cloud Eureka 主要包含了服务端和客户端组件:Eureka Server 服务端、Eureka Client 客户端。

    Eureka Server,是提供服务注册与发现功能的服务端,也称作服务注册中心,Eureka 支持高可用的配置。

    Eureka Client 客户端,主要处理服务的注册和发现,需要注册的微服务向 Eureka Server 注册自身提供的服务并通过心跳机制实现注册中心与微服务的通信,更新服务租约,刷新服务状态。

    三、搭建注册中心

    1、创建SpringBoot项目(sc-demo)

    由于SpringCloud是多个子项目的总括,建议先了解一下SpringCloud 和 SpringBoot 版本对应关系,比如SpringBoot用的最新版本,SpringCloud引用的依赖版本过低,启动就会报错如Unable to start embedded Tomcat等问题。
    Spring Cloud官方链接:https://spring.io/projects/spring-cloud

    这里我创建的SpringBoot项目是2.3.3版本,官方链接可以看到2.3.3对应的SpringCloud版本是Hoxton SR8。

    引入依赖

    <!-- 引入 Spring Cloud 的依赖,管理 Spring Cloud 各组件 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>Hoxton.SR8</version>
        <type>pom</type>
        <scope>runtime</scope>
    </dependency>
    
    <!-- SpringCloud eureka-server -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        <version>2.2.5.RELEASE</version>
    </dependency>
    

    2、修改application.yml配置

    server:
      port: 8900
    
    eureka:
      instance:
        hostname: localhost
      client:
        register-with-eureka: false
        fetch-registry: false
        service-url:
          defaultZone: http://localhost:8900/eureka/
    

    属性说明:

    • server.port:当前 Eureka Server 服务端口;

    • eureka.client.register-with-eureka:是否将当前 Eureka Server 服务作为客户端进行注册,false代表不向注册中心注册自己;

    • eureka.client.fetch-registry:是否获取其他 Eureka Server 服务的数据,由于注册中心职责就是维护服务实例,并不需要检索服务,所以也设置为false;

    • eureka.client.service-url.defaultZone:注册中心的访问地址。

    3、修改启动类

    通过 @EnableEurekaServer 注解声明该类是一个Eureka Server微服务

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

    4、启动

    打开浏览器,访问http://localhost:8900,可看到如下界面,注册中心启动成功。

    No instances avaliable 表示当前没有发现微服务实例,即没有微服务完成注册;

    如果我们将 application.yml 中的 register-with-eureka 属性值改为 true,重启后见下图:

    表示当前注册中心有一个客户端服务注册在案,即 Eureka Server 自己。

    四、注册服务提供者

    1、新建SpringBoot项目(provider)

    引入 Eureka Client 依赖

    <!-- 引入 Spring Cloud 的依赖,管理 Spring Cloud 各组件 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>Hoxton.SR8</version>
        <type>pom</type>
        <scope>runtime</scope>
    </dependency>
    
    <!-- Spring Eureka client-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        <version>2.2.5.RELEASE</version>
    </dependency>
    

    2、修改application.yml配置

    server:
      port: 8901
    spring:
      application:
        name: provider
    eureka:
      client:
        service-url:
          defaultZone: http://localhost:8900/eureka/
      instance:
        prefer-ip-address: true
    

    属性说明:

    • server.port:当前 Eureka Client 服务端口。

    • spring.application.name:当前服务注册在 Eureka Server 上的名称。

    • eureka.client.service-url.defaultZone:注册中心的访问地址。

    • eureka.instance.prefer-ip-address:是否将当前服务的 IP 注册到 Eureka Server。

    3、启动

    先后启动注册中心(sc-demo)和 提供者(provider)项目,浏览器输入localhost:8900,如下图所示:

    可以看到服务提供者 provider 已经在 Eureka Server 完成注册,接下来就可以访问 provider 提供的相关服务了。

    备注:
    Eureka 客户端不使用 @EnableEurekaClient 注解也可以注册到注册中心,这应该是新版Spring Cloud的特性,引用依赖即可,未做深究,这里做个记录。

  • 相关阅读:
    字符串 date 转标准 yyyyMMdd 格式
    stringBuild置空方法
    composer 加速
    php7.0 Mongodb 查询
    PHP7 mongo 操作
    php 简单的对称加密
    PHP 百度关键字
    php redis 写入读取的两个class
    php ci 框架自定义函数
    app已损坏,打不开,你应该将它移动到废纸篓
  • 原文地址:https://www.cnblogs.com/luckyliulin/p/13645297.html
Copyright © 2011-2022 走看看