SpringCloud概要解析
springCloud – 一个采用微服务结构的分布式治理框架(17年年底开始在国内流行)
SpringCloud和Dubbo的区别
- 二者传输协议不一样
SpringCloud -->http;
Dubbo -->rpc - Dubbo 只是实现了服务治理(注册 发现等),相当于SpringCloud中的Netflix
Spring Cloud下面有很多个子项目, 颗粒度更细 - Spring Cloud基于Spring Boot来实现, 二者版本间有限制
- Dubbo是SOA架构的一个典型事例, SpringCloud是微服务架构的一个典型事例; SOA架构横向切割; 微服务架构纵向切割, 每个微服务都在自己的进程中独立运行
SpringCloud中包含的部分框架:
Netflix:
Eureka 注册中心 --> 需要自己开发
Robbin 负载均衡
Hystrix 熔断器保护服务之间的调用 --> 添加注解使用
Zuul 网关 --> 需要自己开发
Bus 消息总线
Config 配置中心
Eureka有失效剔除和自我保护机制
当服务正常关闭时, 称为Eureka的下线, 下线的服务也会在注册中心立即剔除;
服务非正常关闭的情况下, 则不会立即剔除, 由于eureka默认每30s拉取服务(可自己设置成其他值), 如果本次拉取时发现服务失效, 则会将此服务放置在一个每隔90s进行剔除失效服务的定时任务中, 但eureka并不会立即执行剔除任务, 而是先判断失效服务的比例(默认情况下,也可在配置文件中修改其自我保护机制), 如果失效服务率高于15%, 则会开启自我保护, 不再剔除失效服务(因为此时有可能是网络信号传输不好导致服务失效), 如果失效服务率低于15%, 则会剔除失效的服务。