SpringCloud:微服务框架:它提倡将单一应用程序划分成一组小的服务,服务之间可以进行互相的协调,互相配合,为用户提供最终实现价值。每一个微服务专于单一的功能。
SpringCloud是基于springboot实现的服务治理工具包,在微服务架构中用于管理和协调服务的。
Springcloud是一系列框架的有序集合,利用springboot作为基础,添加了注册,配置中心,消息总线,负载均衡,搭建在springboot上一起部署开发
三大角色:
Eureka Server提供服务注册和发现:各个服务提供者节点启动后,会在Eureka Server中进行注册,这样Eureka Server中的服务注册表中会存储我们可用的服务节点
Server Provider服务提供方:将自身的服务注册到Eureka Server,从而使服务消费者能够找到
Service Consumer服务消费者:从Eureka Server获取注册服务列表,从而找到服务进行消费。
项目 :对应很多模块:订单查询,付款,商品查询
Springcloud的负载均衡:Ribbon:是由netflix发布的云中间层服务开源项目,主要功能是提供客户端负载均衡算法。Ribbon客户端组件提供一系列完善的配置,如,连接超时,重试登录等等
feign负载均衡:在上面的案例,我们调用服务提供者中的数据直接调用其controller中的实现方法,但是在实际的运用中是不能够让别人知道该功能是如何实现的,只是提供了一个接口,如何调用接口实现功能呢?
feign是一个声明式的web server客户端,它的目的就是让web server调用更加简单,Feign提供了HTTP请求的模板,通过编写简单的接口和插入注解,可以更好的定义HTTP请求参数,格式,地址等信息。
Feign是以接口的形式进行调用,而不是通过RestTemple来调用feign的底层还是Ribbon,进行了封装让我们调用起来更方便
Hystrix(豪猪):断路器:在理想状态下,一个应用依赖的服务都是健康可取的,我们可以正常处理所有的请求。
如果当依赖阻塞时,大多数服务器的线程池就会出现阻塞,影响整个线上服务的稳定性
我们还可以通过服务器的熔断和降级等手段隔离。这样不会影响到系统的整个业务
熔断:当我们失败率达到栈值自动粗发降级(如网络问题,超时)熔断器触发的快速失败进行恢复
启用:如果调用持续出错或者超时,电路进入熔断状态,后续一段时间内的所有调用都会被拒绝,一段时间和
尝试进入半熔断状态,查看当前允许少量请求尝试,如果还是失败,再次回到熔断状态
降级机制:超时降级,降级后可以配合降级接口返回数据。
Zuul路由网关是netfix开源的有个API 服务器,本质就是一个web servlet应用。当前Zuul在云平台上提供动态路由,监控,安全等服务框架,Zuul相当于是设备和Netfix流应用的web网站后端所有请求的前提,也要注册到Eureka。
通过我们路由 方式去拜访:
pringCloud笔记\Zuul.png)
通过我们路由 方式去拜访:
http://Zuul服务器ip:zuul端口号/服务提供者的名称/拜访路径