当前位置: 代码网 > it编程>编程语言>Java > SpringCloud-Eureka

SpringCloud-Eureka

2024年07月31日 Java 我要评论
Spring Cloud Eureka是一个基于REST的服务治理组件,主要用于实现服务注册与发现。它由Netflix开源,是Spring Cloud生态系统中的一个重要组成部分。Spring Cloud Eureka的主要功能包括以下几个方面:服务注册与发现:服务提供者将自己的信息注册到Eureka服务器上,Eureka服务器将这些信息存储起来,供服务消费者使用。服务消费者可以通过Eureka服务器获取所有可用的服务提供者实例。

eureka

   eureka是netflix开源的一个服务发现框架,用于构建和管理微服务架构中的服务注册和发现。它通过创建一个中央的服务注册表来帮助微服务之间进行通信,并提供了自动化的服务注册和发现功能。在eureka中,服务提供者将自己注册到eureka服务器,并提供自己的元数据,而服务消费者可以通过eureka服务器来查找和获取需要的服务。eureka还提供了故障转移和负载均衡等功能,以确保服务的高可用和可伸缩性。

原理

  •  1. 首先它有两个角色:服务端和客户端,服务端就是一个注册中心。而客户端就是那些消费者和提供者都是微服务
    • 2. 首先客户端会将自己的服务名+ip+port等信息注册到注册中心去
    • 3. 而消费端会每隔30秒去注册中心拉取这些服务列表,然后存到本地缓存中
    • 4. 从本地缓存中取出,进行一个动态的调用
    • 期间客户端会每隔30s向注册中心发个消息,表示自己还存在,这就是心跳检测
    • 注册中心会每隔60s就检测一次,客户端有没有发这个心跳过来,如果没有,那么倒计时90s,一旦超时就将这个服务挂掉(前提是关闭了自自我保护机制,默认是开启的)这就是失效剔除机制
    • 自我保护机制开启的时候,当客户端十五分钟之内,发现这个续约失败率低于百分之85的话是不会被剔除的

实例

  1. 创建一个spring boot项目,并添加以下依赖:
<dependencies>
    <dependency>
        <groupid>org.springframework.cloud</groupid>
        <artifactid>spring-cloud-starter-netflix-eureka-server</artifactid>
    </dependency>
</dependencies>

  1. 在主类上添加@enableeurekaserver注解,以启用eureka server功能。
@springbootapplication
@enableeurekaserver
public class eurekaserverapplication {
    public static void main(string[] args) {
        springapplication.run(eurekaserverapplication.class, args);
    }
}

  1. 创建一个配置文件(比如application.yml)来配置eureka server的相关属性。
server:
  port: 8761

eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false
    fetch-registry: false

  1. 运行应用程序,eureka server将在默认端口(8761)上启动。

  2. 创建一个新的spring boot项目,并添加以下依赖:

<dependencies>
    <dependency>
        <groupid>org.springframework.cloud</groupid>
        <artifactid>spring-cloud-starter-netflix-eureka-client</artifactid>
    </dependency>
</dependencies>

  1. 在主类上添加@enablediscoveryclient注解,以启用eureka client功能。
@springbootapplication
@enablediscoveryclient
public class eurekaclientapplication {
    public static void main(string[] args) {
        springapplication.run(eurekaclientapplication.class, args);
    }
}

  1. 创建一个配置文件(比如application.yml)来配置eureka client的相关属性。
spring:
  application:
    name: eureka-client-example

eureka:
  client:
    service-url:
      defaultzone: http://localhost:8761/eureka/

server:
  port: 8080

  1. 运行应用程序,eureka client将在默认端口(8080)上启动,并注册到eureka server上。

  2. 现在,您可以通过访问http://localhost:8761来查看eureka server的控制台,并在instances currently registered with eureka部分中看到已注册的eureka client。

总结

       spring cloud eureka是一个基于rest的服务治理组件,主要用于实现服务注册与发现。它由netflix开源,是spring cloud生态系统中的一个重要组成部分。

spring cloud eureka的主要功能包括以下几个方面:

  1. 服务注册与发现:服务提供者将自己的信息注册到eureka服务器上,eureka服务器将这些信息存储起来,供服务消费者使用。服务消费者可以通过eureka服务器获取所有可用的服务提供者实例。

  2. 服务健康监测:eureka服务器会定时向服务提供者发送心跳包,检测服务的状态。如果一个服务在一定时间内未能发送心跳包,eureka服务器将会从注册表中将其剔除,以保证服务的高可用性。

  3. 负载均衡:eureka客户端会通过负载均衡算法选择一个可用的服务提供者,从而实现请求的分发。在eureka的设计中,负载均衡是通过客户端实现的,即服务消费者根据自己的需求选择一个合适的服务提供者。

  4. 故障转移:eureka支持故障转移,当一个注册的服务提供者宕机时,eureka可以自动将请求转发给其他可用的服务提供者,从而实现服务的高可用性。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com