eureka

本文介绍Eureka服务注册与发现机制,包括服务提供者的注册流程、服务发现者的注册表更新、心跳机制及自我保护模式。对比Eureka与Zookeeper的区别,并详细说明Eureka服务器的搭建步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.注册
服务提供者启动时,向eureka一次次反复注册,直到注册成功为止
2.拉取注册表
服务发现者每30秒拉取一次注册表(刷新注册表)
3.心跳
服务提供者每30秒发送一次心跳数据
eureka连续3次收不到一个服务的心跳,会删除这个服务
4.自我保护模式
特殊情况
如果由于网络不稳定或中断,15分钟内,85%以上服务器出现心跳异常,就会自动进入保护模式。
在保护模式下,所有服务都不删除。
网络恢复后,可以自动退出保护模式,恢复正常
开发期间很容易达到保护模式的条件,会影响测试,在开发期间可以关闭保护模式

eureka 和 zookeeper 区别:
eureka:
强调AP(可用性)
集群结构:对等结构
zookeeper:
强调CP(一致性)
集群结构:主从结构

搭建eureka服务器
1.新建 springboot 项目
2.添加 eureka server 依赖
3.yml配置
1.主机名
2.禁用保护模式
3.针对单台服务器,配置不向自己注册,也不从自己拉取注册表
4启动类注解 @EnableEurenaServer,通过注解触发自动配置
添加依赖(Edit Starters添加)

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>
                spring-cloud-starter-netflix-eureka-client
            </artifactId>
        </dependency>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR9</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
	单台主机
spring:
  application:
    name: eureka-server
server:
  port: 2001  # 默认8761

eureka:
  instance:
    hostname: eureka1 # 主机名,集群中区分不同服务器
  server:
    enable-self-preservation: false # 开发期间禁用保护模式
  client:
    register-with-eureka: false # 单台服务器不向自己注册
    fetch-registry: false # 单台服务器不从自己拉取
	构建eureka服务集群
eureka:
  instance:
    hostname: eureka2 # 主机名,集群中区分不同服务器
  client:
    register-with-eureka: true
    fetch-registry: true

    # 2要连接1
    service-url:
      defaultZone: http://eureka1:2001/eureka
# 获取地址表,要从注册表获取配置中心的地址
eureka:
  client:
    service-url:
      defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka

单台 eureka 服务器启动后报错: Connect to localhost:8761 timed out
这是自动配置的一个默认集群服务器,但是这个默认服务器不存在,所以出错。后面自己搭建了集群服务,默认服务器就不会再自动配置

### Eureka 微服务注册与发现框架 #### 什么是 EurekaEureka 是 Netflix 开源的一款基于 REST 的服务发现工具,主要用于分布式系统的微服务架构中的服务治理。它是 Spring Cloud 生态系统中默认使用的注册中心组件之一[^1]。 #### Eureka 的主要功能 Eureka 提供了服务注册与发现的功能,使得微服务之间的通信更加高效和可靠。其核心功能包括以下几个方面: - **服务注册**:当某个服务启动时,会向 Eureka Server 注册自己的元数据信息(如 IP 地址、端口号等)。这些信息会被存储在 Eureka Server 中以便后续查询[^2]。 - **服务发现**:客户端可以通过 Eureka Server 查询已注册的服务实例列表,并从中选择合适的目标进行调用[^4]。 #### Eureka 的工作流程 以下是 Eureka 的典型工作流程描述: - 当一个服务提供者启动后,它会通过 HTTP 请求将自己的地址和其他必要信息发送给 Eureka Server 进行注册。 - 客户端应用如果需要消费某项服务,则可以从 Eureka Server 获取当前可用的服务实例清单并随机选取其中一个发起请求[^3]。 - 此外,为了保证高可靠性,Eureka 支持多节点部署形成集群模式下的高可用配置方案。 #### 实现步骤概述 虽然采用具体步骤词汇表达,但仍可概括如下内容帮助理解实际操作过程: 构建完整的 eureka 系统通常涉及创建独立运行的服务端程序 (即所谓的 `EurekaServer`) ,之后让各个业务逻辑单元分别扮演生产方角色 (`cloud-provider-payment` 类型项目),它们主动连接至前者完成自我声明;与此同时也要准备好另一个方向上的使用者部分(`eureka-consumer`) 来验证整体连通状况良好与否 。最后确认页面展示正常表明一切设置均生效 . ```java @SpringBootApplication @EnableEurekaServer public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } } ``` 上述代码片段展示了如何定义一个简单的 Eureka Server 应用程序入口类。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值