•Cloud整体架构
•Eureka注册中心
•集成Rest实现Ribbon负载均衡
•Fegin 声明式服务调用
•Hystrix 服务熔断及接口降级
•Zuul网关整合Redis实现统一用户登录中心
•Config 统一配置中心
•Bus 消息总线
分布式链路跟踪器ZipKin
Spring Cloud:
•Spring Cloud是一个相对比较新的微服务框架,2016才推出1.0的release版本. 但是其更新特别快,几乎每1-2个月就有一次更新,虽然Spring Cloud时间最短, 但是相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案。
•Spring Cloud为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全局锁,leader选举,分布式session,集群状态)中快速构建的工具,使用Spring Cloud的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。
目前流行的使用方式是:应用springcloud框架外壳,内部服务直接的调用和通讯还是使用RPC,Dubbo等,springcloud是基于http的通信,http目前性能上没有RPC通信效率高,针对高并发还是使用RPC;目前springcloud的版本更新非常快,后期发展可期。
springcloud架构图:
整个springcloud架构都是基于HTTP通讯;
1. 请求由API进入内容解析,由CDN进行内容分发,然后进入Nginx代理,通过Nginx进入springcloud框架;
2. 前端由Nginx+HAproxy做负载均衡和方向代理,将外部请求分流路由到具体的Zuul;
3. Zuul是springcloud对外提供统一入口的基础组件,即对外服务入口,Zuul把请求分发到具体服务;
4. springcloud内部服务之间相互通讯使用Feign代理组件;
5. Ribbon用来做负载均衡,Hystrix主要做服务的熔断和降级;
6. Config配置中心,其支持git配置,可以将所有的配置都放在git上,通过Config组件进行不同的应用服务配置,如果配置修改了,直接修改Config中的配置就可以,然后通过springcloud中bus消息总线进行动态的更新;
7. Eurcka服务发现(CAP模式的AP模式);
8. Dashbroad-Turbine流量监控平台,实时针对每一个服务进行流量监控;
9. Zipkin轨迹监控平台,分布式服务调用链路跟踪器,记录每个服务调用次数、时长等等,易于发现瓶颈点;其可以集成kafka,也可以集成关系型数据库;