Spring Cloud

Posted by 杨一 on 2020-07-04

Spring Cloud

0A66Qs.png

  • Eureka(服务治理):服务消费者、服务提供者、注册中心;
    默认开启自我保护机制:某时刻某一个微服务不可用了, Eureka不会立刻清理,依旧会对该微服务的信息进行保存,属于CAP里面的AP分支;可能属于网络阻塞,假死状态;可关闭默认保护机制;
  • Zuul:网关服务,用于处理前台请求的负载请求、以及鉴权;基于IO阻塞式的servlet;
  • Ribbon:用于负载后台各个服务请求之间的负载均衡;
  • Fegin:后台服务之间的调用方式,可基于注解、可插拔、熔断
    首先声明接口,接口上的注解来选择服务名字,方法上使用@Getmapping(“/index”) ;这种方式相当于Ribbon+RestTemplate调用方式;另外还提供服务熔断机制;
  • Hystrix:微服务之间调用出现错误,针对错误情况进行预先处理,避免服务调用方的线程被占用;需要结合 Spring Boot Actuator 实现;Actuator 提供了健康、数据统计、监控请求数据、可视化界面;Hystrix 既可以加在客户端也可加在服务端;当服务端健康调用 而客户端无法健康调用时,客户端也可以根据自己的fallback来设置调用错误函数;双方都可以保护好对方;
    设计原则:
    服务隔离
    降级机制(fallback):超时、运行异常、触发熔断、线程池信号量打满
    熔断机制(break):最大访问量后,直接拒绝访问,并以降级友好提示;
    限流机制():秒杀等场景,大家排队,一秒钟N个;
    实时监控、报警:
    实时的配置修改:
  • Spring Cloud Config :配置中心(本地配置中心、远程配置中心)在不重新启动微服务的情况下,动态修改配置文件数据;
  • Spring Bus:
    Spring stream消息驱动:屏蔽底层消息中间件的差异降低切换成本,统一消息的编程模型;
  • ZipKin 服务跟踪:可以采集和跟踪分布式系统中请求数据的组件,让用户可以更加直观的看到各个微服务所耗费的时间,
    Zipkin Server + Zipkin Client;