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
    评论
Spring Cloud是一个用于构建分布式系统的开源框架。它提供了一系列的工具和组件,帮助开发者快速构建和部署云原生应用。如果你想学习Spring Cloud,以下是一些步骤和资源可以帮助你入门: 1. 了解Spring框架:在学习Spring Cloud之前,建议先掌握Spring框架的基础知识,包括Spring Boot和Spring MVC等。 2. 学习微服务架构:Spring Cloud是基于微服务架构的,所以学习微服务的概念和原理非常重要。了解什么是微服务、微服务架构的优势和挑战以及常用的微服务组件。 3. 官方文档:Spring Cloud有详细的官方文档,包含了各个组件的使用说明和示例代码。你可以从官方文档开始学习,逐步掌握各个组件的功能和用法。 4. 示例项目:通过参考一些示例项目可以更好地理解和学习Spring Cloud。你可以在GitHub上搜索Spring Cloud相关的示例项目,如Spring Cloud Samples等。 5. 教程和博客:有许多优秀的教程和博客文章可以帮助你学习Spring Cloud。你可以搜索一些知名的技术博客或者在线学习平台,如CSDN、博客园、Spring官方博客等。 6. 练手项目:选择一个小型的练手项目,尝试使用Spring Cloud构建一个简单的微服务应用。通过实践来加深对Spring Cloud的理解和掌握。 记住,学习Spring Cloud需要一定的时间和实践,持续学习和实践是非常重要的。希望以上的建议对你有帮助!如果你还有其他问题,可以随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值