(一)学习之前的原理解析
2018-04-26 本文已影响6人
默云客
一句话总结Springcloud:
Springcloud ,包含了一系列成熟框架,及对这些框架便捷化部署和分布式基础设施实现的模块。是一种一站式部署分布式服务的便捷实现。
Springcloud整体结构:

Ribbon,客户端负载均衡,重试机制。
Hystrix,客户端容错保护,服务熔断、请求缓存、请求合并、依赖隔离。
Feign,声明式服务调用,本质上就是Ribbon+Hystrix(优化代码,避免直接使用RestTemplate的混乱)
Bus,消息总线,配合Config仓库修改的一种Stream实现,
独自启动不需要依赖其它组件。
Eureka,服务注册中心,特性有失效剔除、服务保护。
Dashboard,Hystrix仪表盘,监控集群模式和单点模式,其中集群模式需要收集器Turbine配合。
Zuul,API服务网关,功能有路由分发和过滤。
还有其它服务空间、如Config(配置信息中央)、等
注册中心:
服务者提供服务,在注册中心发布,消费者通过服务名可以直接在注册中心调用服务。
Restful风格:
使用restful风格,http协议,大众化、略有笨重,访问速度有点慢、但是具有良好跨平台性质。
服务横向拓展:

如图,用户服务负载比较大的情况下,可以负载均衡部署两个,分担压力。
熔断机制:
服务依赖:

如图,有个服务依赖链、假设C服务挂了,A依然在不断访问B,而B调用不到C于是在等待,最后,请求过多,B也挂了。
熔断原理:

当C服务停止的时候,B自动调用写死的数据进行回复,从而避免因为请求过多导致A服务奔溃的情况。