springcloud入门文档

springcloud版本选择

中文文档:https://www.springcloud.cc/spring-cloud-dalston.html(中文文档是基于Greenwich版本)
官方文档:https://spring.io/projects/spring-cloud

  1. Angel发布系列基于Spring Boot 1.2.x构建,并且在某些方面与Spring Boot 1.3.x不兼容。
  2. Brixton建立在Spring Boot 1.3.x之上,并且与1.2.x不兼容。Brixton发布系列基于Spring Boot 1.3.x构建,但也已在1.4.x上进行了测试。
  3. Camden发布系列基于Spring Boot 1.4.x构建,但也已在1.5.x上进行了测试。
  4. Dalston和Edgware发行列车建立在Spring Boot 1.5.x上,并且不能与Spring Boot 2.0.x一起使用。
  5. Greenwich可以构建并与Spring Boot 2.1.x一起使用,并且不能与Spring Boot 1.5.x一起使用。
发行列车springboot版本
Hoxton2.2.x
Greenwich2.1.x
Finchley2.0.x
Edgware1.5.x
Dalston1.5.x

下面图片标注了当前官方的推荐使用版本,此版本是我的学习版本,可以点进去查看官方文档。

  • GA:General Availability,正式发布的版本,官方推荐使用此版本。在国外都是用GA来说明release版本的。
  • PRE:预览版,内部测试版,主要是给开发人员和测试人员测试和找BUG用的,不建议使用。
  • SNAPSHOT: 快照版,尚处于开发中的版本,可以稳定使用,且仍在继续改进版本。

在这里插入图片描述

点击ReferenceDoc,再点击Getting Started,搜索<groupId>org.springframework.boot</groupId>,可以找到官方推荐的springboot版本
在这里插入图片描述

项目地址:

https://gitee.com/yucong9527/cloud.first.git
https://gitee.com/yucong9527/cloud.second.git(高可用)

  1. 项目整合:eureka,feign,zuul,config
  2. 为什么没有hystrix,ribbon,stream,bus?因为feign自带ribbon,并且feign集成了hystrix;至于stream,通常会利用中间件写独立的组件;配置在项目中的可变变量可以存储在zk从而代替bus。
  3. first.eureka:eureka服务器
    first.entity:实体类
    first.service:feign接口,指定了失败回调函数和对first.provider进行负载
    first.provider:服务提供者,也是eureka客户端和config客户端
    first.consumer:服务调用者,也是eureka客户端和config客户端
    first.zuul:网关,也是eureka客户端和config客户端
    first.config:配置中心,config服务端也是eureka客户端,provider、consumer、zuul的配置都放在gitee,通过profiles来统一管理
  4. 先启动eureka服务,first.eureka ;
    再启动配置中心,first.config;
    再启动服务提供者,first.provider,provider先注册到eureka,读取config配置,再到Git找到application-first.yml文件,读取自己的配置;
    再启动服务提供者,first.consumer,consumer先注册到eureka,读取config配置,再到Git找到application-first.yml文件,读取自己的配置;
    再启动服务提供者,first.zuul,zuul先注册到eureka,读取config配置,再到Git找到application-first.yml文件,读取自己的配置;
    以上配置并不是启动成功就可以执行,本身需要向eureka注册服务、其他组件会定时拉取eureka注册列表。
  5. eureka服务器地址:http://localhost:7001
    服务调用:http://localhost:9501/enjoy-api/consumer-proxy/product/get/1
    服务调用:http://localhost:9501/enjoy-api/consumer-proxy/product/find/aa
    provider异常回调:http://localhost:9501/enjoy-api/consumer-proxy/product/get/123
    provider异常回调:http://localhost:9501/enjoy-api/consumer-proxy/product/find/aaa

Eureka介绍

Eureka提供了基于rest的服务,在集群中主要用于服务管理,将业务组件注册到eureka容器中,这些组件就可以进行集群部署,eureka主要维护这些服务的列表并自动检测他们的状态。

服务提供者

eureka客户端的服务提供者,主要进行以下工作:第一,向服务器注册服务;第二,发送心跳给服务器;第三,向服务器端获取注册列表。当客户端注册到服务器时,他会提供一些关于自己的注册信息给服务器,列如自己的主机、端口号、健康监测连接等。

心跳检测配置

  1. 客户端的实例会向服务端发送周期性的心跳,默认是30秒发送一次,可以通过修改客户端的eureka.instance.lease-renewal-interval-in-seconds属性来改变这个值。
  2. 服务器端接收心跳请求,如果在一定期限内没有接收到服务实例的心跳,那么会将实例从注册表中清理掉,其他的客户端将会无法访问这个实例。这个期限的默认值是90秒,可以通过修改客户端的eureka.instance.lease-expiration-duration-in-seconds属性来改变这个值。也就是说服务器90秒没有收到客户端的心跳,就会将这个实例从列表中清理掉。但需要注意的是,清理注册表有一个定时器在执行,默认是60秒执行一次。
eureka.instance.lease-renewal-interval-in-seconds:指示eureka客户端需要向eureka服务器发送心跳以指示它仍然存在的频率(以秒为单位),默认30秒。
eureka.instance.lease-expiration-duration-in-seconds:eureka服务器在接收到最后一个心跳之后等待的时间(秒),然后才能从此视图中删除此实例,默认90秒。

自我保护机制

  1. 自我保护机制的工作机制是如果在15分钟内超过85%的客户端节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,Eureka Server自动进入自我保护机制。
  2. 需要注意的是,如果开起来自我保护机制,则实例不会被剔除。在测试时,可以关闭自我保护机制,在服务器中配置:eureka.server.enable-self-preservation=false。
eureka.server.enable-self-preservation:自我保护机制,默认开启true。
eureka.server.eviction-interval-timer-in-ms:服务器清理实例的时间间隔,单位毫秒,默认是60秒

客户端到服务器抓取注册表时间间隔

在默认情况下,客户端每隔30s去服务器抓取注册表(可用的服务列表),并且将服务端的注册表保存到本地服务中,可以通过修改eureka.client.registry-fetch-interval-seconds配置来改变注册表抓取间隔。

eureka.client.registry-fetch-interval-seconds:抓取注册表时间间隔,默认30s
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值