SpringCloud(一):Eureka服务注册与发现

Eureka是Netflix开源的一款提供服务注册和发现的产品,是springCloud体系中最重要最核心的组件之一。
Eureka作为SpringCloud的注册中心,主要负责服务的注册与发现;
每个微服务都是一个Eureka client组件,负责将该服务根据id、ip和端口注册到Eureka Server中;
Eureka Server是一个注册中心,该组件内部维护了一个注册表,保存了各个服务所在的机器ip和端口号等信息。
本文简要阐述如何使用IDEA工具,集成Eureka组件搭建一个简单的服务注册与发现工程。

具体步骤如下:

一、创建maven父工程

  1. 由于创建的是父工程,因此不需要选择Create from archetype,直接点击Next;在这里插入图片描述
  2. 输入GroupId以及ArtifactId,GroupId一般以com.xxx命名,ArtifactId为项目名即可,然后直接Next;在这里插入图片描述
  3. 选择好项目目录,因为IDEA的特性,所以先创建一个目录demo,再在该目录下创建cloud_demo目录,用于放置整个项目的所有子工程,否则可能会导致创建model时出现问题;在这里插入图片描述
    搭建好的父工程如下:
    在这里插入图片描述

二、搭建EurekaServer工程

  1. 直接在当前父工程下创建Model;
    在这里插入图片描述

  2. 这里因为使用的是IDEA,对于搭建项目还是十分的友好,我们直接选择左侧的Spring Initalizr,直接点击Next;
    在这里插入图片描述

  3. 填写相应的GroupId以及ArtifactId,其它使用默认选项,点击Next;
    在这里插入图片描述

  4. 选择Spring Cloud Discovery,然后勾选其中的Eureka Server,点击Next,
    在这里插入图片描述

  5. 输入Module name,即工程名称,其中Content root以及Module file location必须是在父工程下的单独一个目录,否则会导致搭建的项目出现错误,最后点击Next即可;
    在这里插入图片描述
    搭建好以后,目录如下图所示,即为成功;
    在这里插入图片描述

  6. 修改配置文件,关于配置项图中通过注解方式简要阐述,并在启动类加上@EnableEurekaServer的注解;

    #端口号,通常设置为8761
    server.port=8761
    #服务名
    spring.application.name=eureka_server
    
    
    #设置当前实例的主机名称
    eureka.instance.hostname=localhost
    #是否注册自身到EureakServer上,默认为true;由于当前工程本身即是EurekaServer,所以设置为false;
    eureka.client.register-with-eureka=false
    #标识是否从Eureka Server获取注册信息,默认为true;由于当前工程本身即是EurekaServer,所以设置为false;
    eureka.client.fetch-registry=false
    #设置Eureka的地址
    eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
    
    @EnableEurekaServer
    @SpringBootApplication
    public class EurekaServerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(EurekaServerApplication.class, args);
        }
    
    }
    

    最后启动项目,打开浏览器,输入localhost:8761,页面如下,至此EurekaServer服务搭建成功。
    在这里插入图片描述

三、搭建EurekaClient工程

  1. 同样在父工程下创建Model,步骤与搭建Server工程类似,这里不再一一阐述,步骤如下图所示:
    在这里插入图片描述在这里插入图片描述

  2. 因为使用IDEA的自动创建工程的方式,所以需要在该client工程的pom.xml文件中,加入web依赖,否则会导致启动失败。

    <!--添加web依赖-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
  3. 修改配置文件,并在启动类上添加@EnableEurekaClient注解,最后启动项目即可。

    #端口号
    server.port=8080
    #服务名
    spring.application.name=eureka_client
    eureka.client.healthcheck.enable=true
    eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/
    
    @EnableEurekaClient
    @SpringBootApplication
    public class EurekaClientApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(EurekaClientApplication.class, args);
        }
    
    }
    
  4. 重新刷新浏览器,查看Eureka页面,即可发现client已成功注册。
    在这里插入图片描述

关于页面头部的红色警告问题,这里简要阐述一下:

系统在三种情况下会出现红色加粗的字体提示
(1).自我保护机制关闭
RENEWALS ARE LESSER THAN THE THRESHOLD. THE SELF PRESERVATION MODE IS TURNED OFF.THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.
(2).自我保护机制开启
EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY’RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.
(3).在配置上,自我保护机制关闭了,但是一分钟内的续约数没有达到85% ,可能发生了网络分区,会有如下提示
THE SELF PRESERVATION MODE IS TURNED OFF.THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.

END===>回到顶部.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringCloud提供了一个组件Eureka,它可以实现服务注册发现。具体实现步骤如下: 1. 引入Eureka Server依赖 在pom.xml文件中引入如下依赖: ``` <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> ``` 2. 编写配置文件 在application.yml或者application.properties文件中添加如下配置: ``` server: port: 8761 eureka: instance: hostname: localhost client: register-with-eureka: false fetch-registry: false ``` 其中,port表示Eureka Server的端口,hostname表示Eureka Server的主机,register-with-eureka表示是否将自己注册Eureka Server上,fetch-registry表示是否从Eureka Server上获取服务信息。 3. 启动Eureka Server 在启动类上加上@EnableEurekaServer注解,开启Eureka Server功能。 ``` @SpringBootApplication @EnableEurekaServer public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } } ``` 4. 注册服务服务提供者的配置文件中添加如下配置: ``` spring: application: name: service-provider eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ ``` 其中,name表示服务称,defaultZone表示Eureka Server的地址。 5. 发现服务服务消费者的配置文件中添加如下配置: ``` spring: application: name: service-consumer eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ ``` 在服务消费者中,可以使用RestTemplate或者Feign进行服务调用,并且不需要指定服务的具体地址,而是通过服务称进行调用。 以上就是SpringCloud实现服务注册发现的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值