Eureka纪要

本文详细介绍了Spring Cloud Eureka服务端的启动与配置,重点讲解了如何使用security进行安全保护,以及客户端如何设置和与Eureka的交互。涵盖了Eureka的核心组件、自我保护机制和客户端配置要点。
摘要由CSDN通过智能技术生成

写在前面

因为想要记录学习spring cloud时关键组件的关键知识,以作回望,加深印象。

概述

Eureka是spring cloud中提供的服务注册中心组件,用于注册并管理微服务,并协调微服务间的交互访问。

服务端eureka server

简单使用

引入依赖

<!--核心依赖-->
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>

启动类使用 @EnableEurekaServer 注解启用Eureka,以此将微服务启用为ereka服务器端

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
   
   public static void main(String[] args) {
      new SpringApplicationBuilder(EurekaApplication.class).web(true).run(args);
   }
}

作为服务端,常用的其他服务端配置

eureka:
  #此处设置会改变eureka控制台的显示,类似于节点备注,区分服务部署环境
  datacenter: cloud
  #此处设置会改变eureka控制台的显示,类似于节点备注,区分生产还是测试
  environment: prod
  #仪表盘配置
  dashboard:
    #控制台访问路径,默认只需要IP:port
    path: /dashboard
    #是否启用控制台
    enabled: true
  instance:
    #实例主机名
    hostname: localhost
  #作为服务器端配置
  server:
    #是否开启自我保护机制,服务器默认开启自我保护机制,开启自我保护模式后,过期的实例将不会被清理
    enable-self-preservation: false
    #服务器会每隔60s清理一次租约过期的服务,可以在服务端设置每次清理失效服务的时间间隔
    eviction-interval-timer-in-ms: 5000
  #作为客户端配置(对于eureka-server模块本身为“自注册”)
  client:
    #是否注册到eureka注册中心
    register-with-eureka: true
    #s是否从其他eureka服务器节点获取注册信息
    fetch-registry:  false
    #在自我保护机制下,每当有一个新的服务注册上来时,Renews threshold(阈值)都会相应增加
    #而过期实例被清理后,Renews threshold却不会立即更新减小,服务器默认15*60*1000毫秒(15分钟)更新一次,可以在服务器端配置更新周期
    renewal-threshold-update-interval-ms: 60000 
    #阈值=应收到心跳总次数*0.85,系数0.85可以在服务器配置
    renewal-percent-threshold: 0.85
    #要注册到哪个eureka-server上
    serviceUrl:
      defaultZone: http://user:password@127.0.0.1:8761/eureka

使用security

使用security为服务端提供安全校验,这样客户端连接到注册中心时,需要使用账号密码验证。

引入依赖

<!--security可以为服务器端设置账号密码-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

yaml配置

security:
  user:
    name: user
    password: password

eureka server的自我保护机制

待补充(Renews threshold)

客户端 eureka client

引入依赖

<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>

启动类使用 @EnableDiscoveryClient 注解启用Eureka,以此将微服务启用为ereka服务器端

@SpringBootApplication
@EnableDiscoveryClient
public class ConsumerApplication {
   public static void main(String[] args) {
      new SpringApplicationBuilder(ConsumerApplication.class).web(true).run(args);
   }
}

作为客户端,常用的yaml配置

eureka:
  #此处设置会改变eureka控制台的显示,类似于节点备注,区分服务部署环境
  datacenter: cloud
  #此处设置会改变eureka控制台的显示,类似于节点备注,区分生产还是测试
  environment: prod
  #仪表盘配置
  dashboard:
    #控制台访问路径,默认只需要IP:port
    path: /dashboard
    #是否启用控制台
    enabled: true
  instance:
    #实例主机名,作为客户端可以指定自己的主机名称,不指定的话,服务器默认使用IP地址
    hostname: localhost
    prefer-ip-address: false
    #当服务作为客户端注册到服务器上时,客户端会默认拼接【主机】+【应用名】+【端口】作为服务唯一ID,客户端可以自定义在服务器上的ID,不可重复
    instance-id: client-app
    #客户端默认每隔30s向指定的服务器发送续约请求(使用服务器端的renew函数?),可以自己定义每次发送心跳的间隔(租约时效)
    lease-renewal-interval-in-seconds: 60
    #服务器默认90s内没有收到客户端的续约请求,便会认定客户端服务租约过期,客户端可以自定义租约过期时间
    lease-expiration-duration-in-seconds: 60
    
  #作为客户端配置(对于eureka-server模块本身为“自注册”)
  client:
 		#要注册到哪个eureka-server上,eureka使用security时
    serviceUrl:
      defaultZone: http://user:password@127.0.0.1:8761/eureka
    #是否注册到eureka注册中心
    register-with-eureka: true
    #s是否从其他eureka服务器节点获取注册信息,默认true
    fetch-registry:  false
    #从eureka服务器注册表中获取注册信息的时间间隔(s),默认为30秒
    registry-fetch-interval-seconds: 30
    #复制实例变化信息到eureka服务器所需要的时间间隔(s),默认为30秒
    instance-info-replication-interval-seconds: 30
    #询问Eureka服务url信息变化的时间间隔(s),默认为300秒(5分钟)
    eureka-service-url-poll-interval-seconds: 300
    #最初复制实例信息到eureka服务器所需的时间(s),默认为40秒
    initial-instance-info-replication-interval-seconds: 40
    #eureka注册表的内容是否被压缩,默认为true,并且是在最好的网络流量下被压缩
    g-zip-content: true
    #eureka需要超时读取之前需要等待的时间,默认为8秒
    eureka-server-read-timeout-seconds: 8
    #eureka需要超时连接之前需要等待的时间,默认为5秒
    eureka-server-connect-timeout-seconds: 5
    #eureka客户端允许所有eureka服务器连接的总数目,默认是200
    eureka-server-total-connections: 200
    #eureka客户端允许eureka服务器主机连接的总数目,默认是50
    eureka-server-total-connections-per-host: 50
    #心跳执行程序线程池的大小,默认为5
    heartbeat-executor-thread-pool-size: 5
    #心跳执行程序回退相关的属性,是重试延迟的最大倍数值,默认为10
    heartbeat-executor-exponential-back-off-bound: 10
    #执行程序缓存刷新线程池的大小,默认为5
    cache-refresh-executor-thread-pool-size: 5
    #执行程序指数回退刷新的相关属性,是重试延迟的最大倍数值,默认为10
    cache-refresh-executor-exponential-back-off-bound: 10

补充:

  1. eureka.instance.home-page-url-path
    用于告诉eureka server当前实例的context绝对路径,默认为/,与server.context-path保持一致
  2. eureka.instance.home-page-url
    与home-page-url-path不同的是,home-page-url为相对路径
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值