发表于: 2021-04-27 23:31:42
1 1267
学习springcloud
实现spring cloud各个组件
暂无
收获:
4.进行调用。
Spring Cloud基于Spring Boot,springCloud为了解决集群和分布式当中出现的问题,提供了一整套的解决方案——服务注册与发现,服务消费,服务保护与熔断,网关,分布式调用追踪,分布式配置管理等。
介绍一个springcloud的实际应用场景
下面的库存服务,仓储服务,积分服务分别存放在多个服务器上
1.Eureka 服务注册和发现
Eureka Server:保存各个服务的注册信息
2.Feign 声明式调用
2.Feign底层使用了动态代理机制,还不太了解动态代理机制
不用Feign需要写的代码:
用Feign之后的代码:
3.Ribbon 负载均衡
2.Ribbon的运用过程: Eureka找到服务-> Ribbon,选择其中一个服务器 -> Feign 建立连接、构造请求、发送请求、获取响应、解析响应
4.Hystrix 熔断器
1.解决高并发的场景下,线程都卡在积分服务请求过程中,这样会导致其他服务没有一个线程可以处理请求,发现其他服务也都挂了,不响应任何请求了(简称服务雪崩),想到这个过程不是在Feign中吗?为什么不在Feign中进行管控?可能是这些重复的代码过多了,于是把这些代码提取出来,构建成了一个部件,以方便掌控,感觉所以的服务都这样
2.解决方案,在调取的服务中间创建一个连接池,设置在请求过程中如果超过了五分钟,就对这个这个服务进行熔断处理并进行降级(记录请求过程中的信息,将来手动进行恢复)
5.Zuul 路由网关
1.统一管理:不管是(PC端或移动端)的请求,还是服务内部调用。一切对服务的请求都会经过Zuu这个网关,然后再由网关来实现鉴权、动态路由等等操作。Zuul就是我们服务的统一入口。感觉Zuul就是大脑了
2.有Zuul网关之后,可以做统一的降级、限流、认证授权、安全,等等
还有Config(配置中心), Sleuth(服务链路追踪), Admin(监控), Security(安全)
OAuth2和 JWT 保护微服务架构系统等等 这些都没了解
总结:
spring Cloud中的Eureke和Feign就相当于一个RPC框架,此外spring cloud还提供了多个组件,就是为了解决分布式调用过程中出现的问题,是这些问题的一整套解决方案。
评论