SpringCloud是一个微服务框架,它提供了全套的分布式系统解决方案.它是一个拥有诸多Spring子项目的大型综合项目。
1.分布式系统最需要解决的问题是业务端的负载均衡,SpringCloud给我们提供了如下解决方案,首先我们的微服务的服务地址都会注册在Eureka注册中心,WEB服务通过Ribbon进行选择负载较小的Service.
当我们的业务端使用Rest架构调用的时候,需要服务端提供一个调用地址,即使我们使用了Eureka注册中心,但是我们还是需要一个明确的调用地址,开发者认为最便捷的应用工具是接口,所以希望所有的Rest服务的内容以接口的形式出现,所以SpringCloud提供了一个叫feign的技术进行接口伪造,如下图所示
由于我们Springcloud牵扯到的问题还是属于RPC这个范畴,那么熔断机制就显得非常重要,如果没有处理好熔断机制,那么会造成雪崩效应.SpringCloud给我们提供了Hystrix熔断处理,如下图所示
当我们的用户调用微服务的时候需要知道我们微服务的所有名称,这样显得太复杂繁琐,所以提供了Zuul代理机制,通过Zuul的代理用户只需要知道指定的路由的路径就可以访问指定的微服务的信息,而且服务端也能更加合理的将微服务名称隐藏.
微服务创建之中,一定会有很多个微服务配置文件,SpringCloud设计之初提供一个SpringCloudConfig来进行配置文件的管理。
以上就是SpringClond的基本架构