# spring-cloud **Repository Path**: yaiys/spring-cloud ## Basic Information - **Project Name**: spring-cloud - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-04-18 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SpringCloud组件demo ### 模块简介 * **demo**: 提供接口的web服务 * **eureka**: eureka注册中心 * **zuul**:zuul组件,包含回退和路由 * **zuul-ratelimit**: zuul限流 * **hystrix**:hystrix容错 * **feign**:feign组件 * **ribbon**:ribbon使用 1,什么是spring cloud? spring cloud是一系列框架的有序集合,他利用 spring boot 的开发便利性巧妙地简化了分布式系统的基础设施开发,如服务注册发现,配置中心,消息总站。负载均衡,断路由,数据监控等。都可以使用springboot的风格做到一键启动和部署 2.spring cloud端路由的作用是什么? 在分布式框架中,断路由器模式的作用都是类似的,都是当一个服务单元发生故障时,类似于家里电器短路,保险会跳闸一样。系统就会通过端路由器的故障监控。向调用方返回一个错误的响应。而不是长时间等待。这样就不会是的线程因调度用故障服务被长时间占用不释放资源。避免故障在分布式系统中的蔓延。 3,spring cloud的核心组件 * Eureka:服务治理(注册和发现) Spring Cloud Eureka是Spring cloud Netflix项目下的服务治理模块,由两个模块组成,Eureka客服端和服务端,服务端做了服务注册中心,支持服务集群部署。客户端是一个JAVA客户端,用来处理服务注册与发现 * Feign:基于动态代理机制,根据注解和选择的机器。拼接请求URL地址,发起请求 * Ribbon 实现负载均衡, 主要作用是负载均衡算法。Ribbon是基于HTTP 和 TCP的客户端负载均衡工具,它基于 Netflix Ribbon实现。通过spring cloud封装,可以轻松的实现面向服务的Rest模块强求,自动转换为伏虎段负载均衡的服务调用 * Hystrix:断路由,保护系统,控制故障范围 为了保证高可用性,单个服务通常会集群部署,由于网络原因或者自身的原因,服务并不能保证100%的可用性,如果单个服务出现问题,调用这个服务的就出现线程阻塞,若此时,大量的请求,涌入,servlet容器会的线程资源会被消耗完毕,导致服务瘫痪。服务于服务之间的依赖性,故障就会传播,对整个微服务系统导致灾难性的严重后果,这种服务故障就是学风效应。 提供线程池,不同的服务走不同的线程池,实现了不同不符调用的隔离,避免了服务雪崩 * 由zuul网关转发请求到对应的服务器, Zuul API网关管理,路由,负载均衡等多种作用。 类似于NGNIX,反向代理功能。在未付框架中,后端服务往往不会开放给前段调用,而是通过一个API网关根据请求的URL,路由到相应的服务,当添加API网关后,在第三方调用端和服务端提供方之间就建立了一堵墙。作用就是对调用用方和都断通信进行权限控制,后端请求均衡分配给服务端。 4,SpringCloud和Dubbo * 相同点都是主流框架,一个是Apache下的spring体系下的,一个是阿里的分布式 * 从技术纬度,dubbo本身只是实现了服务智力,而spring cloud现在有21个子项目 * 服务的注册中心来看,Dubbo使用了第三方的ZooKeeper作为其底层的注册中心,实现服务的注册和发现,SpringCloud使用Spring Cloud Netflix Eureka实现注册中心,当然SpringCloud也可以使用ZooKeeper实现,但一般我们不会这样做 * 服务调用方式:rpc远程调用协议,Rest API * 服务网关:d没有实现,s有 zuul * spring cloud还支持断路由,配置文件支持版本控制,事物总线实现配置文件的更新 5. Rest和RPC对比