Spring Cloud之Eureka服务注册与发现

Eureka简介

Eureka 是 Netflix 出品的用于实现服务注册和发现的工具,Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现。

CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性P在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。

Eureka保证CP,Eureka各个节点都是平等的,几个节点挂掉不会影响正常节点的工作,剩余的节点依然可以提供注册和查询服务。而Eureka的客户端在向某个Eureka注册或时如果发现连接失败,则会自动切换至其它节点,只要有一台Eureka还在,就能保证注册服务可用(保证可用性),只不过查到的信息可能不是最新的(不保证强一致性)

单机环境搭建

1.引入依赖,特别要注意Spring Boot 和Spring Cloud的版本要对应
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2.添加注解 @EnableEurekaServer
@EnableEurekaServer
@SpringBootApplication
public class EurekaStudyApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaStudyApplication.class, args);
    }

}
3.配置application.yml和bootstrap.yml文件
# 配置bootstrap.yml
spring:
  application:
    name: register
server:
  port: 8007
management:
  server:
    port: 8001
    
# 配置application.yml
eureka:
  instance:
    preferIpAddress: true # true将IP注册到Eureka Server上,否则为机器的主机名
    leaseRenewalIntervalInSeconds: 10 #Eureka客户需要多长时间发送心跳给eureka服务器,表明它仍然活着,默认为30 秒
    leaseExpirationDurationInSeconds: 30 #Eureka服务器在接收到实例的最后一次发出的心跳后,需要等待多久才可以将此实例删除,默认为90秒
    metadata-map: #自定义元数据
      VERSION: 0.9.0
  client:
    register-with-eureka: false # 实例是否在Eureka服务器上注册自己的信息以供其他服务发现,默认为true
    fetch-registry: false #表示是否从EurekaServer获取注册信息,默认为true,表示需要从其他server同步信息
    serviceUrl:
      defaultZone: ${EUREKA_DEFAULT_ZONE:http://dev.xxx.com:8007/eureka}
    registryFetchIntervalSeconds: 10 #从Eureka服务器注册表中获取注册信息的时间间隔(s),默认为30秒
    disable-delta: true
  server:
    evictionIntervalTimerInMs: 4000 #过期实例应该启动并运行的时间间隔,单位为毫秒,默认为60 * 1000
    enable-self-preservation: false #自我保护机制
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值