Spring cloud 尝试

《微服务架构实战》周立 课本

版本定义为伦敦地铁站,按字母顺序A-B-C-D,本实验用的是Camden版本。

Spring Boot    单实例

Eureka    微服务注册发现

Ribbon    客户端负载均衡

Feign    声明式调用

Hystrix    容错处理

Zuul    网关

Config 统一管理配置

Sleuth    微服务跟踪

Actuator 监控端点,info,beans,env,trace,mapping,autoconfig。

 

Eureka基本思想:包含两个组件,Eureka Server和Eureka Client分别作为服务发现和注册,心跳来续约租期,可缓存注册表信息,可集群部署,提高系统灵活性,可伸缩性和可用性。默认端口8761.注意实例ID的配置信息。添加security实现用户认证功能。自我保护模式即节点在短时间丢失,会保护注册表信息,不再删除信息,网络故障恢复后退出自我保护模式。@EnableEurekaServer    @EnableDiscoveryClient

 

Ribbon基本思想:控制HTTP和TCP客户端行为,获取服务提供者列表后,基于某种负载均衡算法,自动地帮助服务消费者去请求,比如轮询,随机等。@LoadBalanced,对某个方式实现负载均衡,采用restTemplate.getForObject(url,结果)。可配置负载均衡算法。

 

Feign基本思想:代替拼接的Url,采用声明式,模板化的HTTP客户端,@FeignClient(name=实例名)修饰一个接口,接口里面是对应请求的方法,多参数采用Map存储。

 

Hystrix基本思想:防止雪崩效应,有依赖关系的两个服务,前服务出现延迟或者调用失败,后面出现阻塞并一直等待,最后导致资源耗尽并崩溃。容错的实现方式有为网路请求设置超时,请求不到就尽快释放资源;断路器模式,短时间内失败的请求数超过一定阈值,打开断路器,一段时间后进入“半开”状态,允许一个请求访问,成功就关闭断路器,否则继续打开断路器。Hystrix实现由包裹请求(@HystrixCommand),包裹对依赖的调用逻辑;跳闸机制,错误率超过阈值,自动跳闸,停止请求;资源隔离,为每个依赖维护一个小型线程池,若满,发往该依赖的请求被立即拒绝,而不是排队;监控,实时监控运行指标;回退机制,请求失败或拒绝,执行回退逻辑,执行回退方法;自我修复,打开一段时间后,进入半开状态,尝试对一个请求响应,修改断路器状态。8030 Dashboard监控。

 

Zuul基本思想:不同微服务有不同地址,网站介于客户端和服务端之间的中间层,外部请求都会走微服务网关,无需直接调用特定接口;易于控制,易于认证,减少了客户端和微服务之间的交互次数。实现功能有身份认证和安全,动态路由,压力测试,负载分配,静态资源处理。@EnableZuulProxy,8040,声明一个代理,整合Ribbon和Hystrix,所有经过Zuul的请求都会在Hystrix中执行。暴露一个管理端点/routes,方便直观查看路由信息。http://ZUUL_HOST:ZUUL_PORT:微服务在Eureka上的serviceId/**会转发到serviceId对应的微服务。设置过滤器,Header操作等等。

 

Config基本思想:配置管理的需求有集中管理配置,不同环境不同配置,运行期可动态调整,配置修改后自动更新。分为Config Server是一个可横向扩展,集中式的配置服务器,Config Client是获取或修改存储在Config Server的配置属性,可缓存在自己的服务器中。@EnableConfigServer,8080端口,配置git仓库的目录地址。在Client端要配置文件bootstrap.yum,内容包含config的url,profile,label。这个文件具有更高的优先级,所以不会被覆盖。

 

Bus基本思想:自动刷新配置,使用消息代理连接分布式节点,微服务A的配置信息一更新,其所有的实例都会更新。

 

Sleuth基本思想:分布式更早,查看微服务在执行过程中的指标等信息,有助于更好的分析系统效率。加入依赖,设置打印日志信息级别。可与ELK配合使用,可视化分析日志信息。

 

常见问题:

1.Eureka注册服务慢,,设置心跳时间短,加快客户端和其他服务之间的连接。

2.Eureka自我保护模式会保存实例信息,在开发阶段可关闭保护模式。

3.Eureka自定义InstanceID,在配置文件中设置。

4.Hystrix出现的首次请求失败,默认的超时时间为1秒,第一次加载会比较慢,导致的超时。解决方案为延长超时时间为5s。

 

学习经历,深刻体会到Spring Cloud的作者真的skr,我们只是在用创造好的工具,差距好大,等到咱自己研发这一套架构,那才是真的强。加油。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值