序:最近在学习SpringCloud的系列内容,在此做一个系列的教程,实现一个简单的微服务项目,从创建项目,搭建集群,熔断,zuul路由,等相关框架的使用,希望可以给大家带来帮助,同时可以收藏做个笔记;
什么是SpringCloud?(可以理解为一个生态环境)
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
SpringCloud有哪些功能?
包括服务的发现和注册,负载均衡、断路器、REST客户端、请求路由等。
以下是个人的理解,大白话来说明一下这几个服务都是做什么的:
发现和注册 : 按照分布式的理念,两个服务直接是不可以有依赖的,也就是单独部署一个服务也能用,那么我们客户端在调用服务如何知道谁是谁呢?这时就需要一个中介,也就是服务中心,之前分布式使用Zookeeper作为服务中心,SpringCloud中可以使用Eureka作为服务中心,它的任务就是,某个服务运行后来服务中心注册,告诉服务中心我是谁,我是干嘛的,这样客户端在使用某个服务时就去注册中心拿,这就是发现与注册
负载均衡: 当后台服务搭建了集群,就是复制了几份一起运行,端口不一样而已,就是怕有一台服务挂了,还有其他的可以访问,不至于服务直接停了,那假如有几十万,甚至几千万同时访问的时候,分别访问那个服务器就是个问题,不可能全部都访问一台,那这台基本就挂掉了,所以要分配好这些人都去访问那个服务器,使用策略,让几台服务器分摊压力,这就是负载均衡
断路器: 断路器本身是电路上的一种过载保护装置,当线路中有电器发生短路时,它能够及时的切断故障电路以防止严重后果发生。通过服务熔断(也可以称为断路)、降级、限流(隔离)、异步RPC等手段控制依赖服务的延迟与失败,防止整个服务雪崩。一个断路器可以装饰并且检测了一个受保护的功能调用。根据当前的状态决定调用时被执行还是回退。通常情况下,一个断路器实现三种类型的状态:open、half-open以及closed,相当于服务出错不要占用资源导致服务挂掉,或引发雪崩,一旦有错立即返回错误,或提示,切断本次服务保证后台其他服务
请求路由: 使用虚拟路径代替真实路径,保证连接中没有真实数据,提高安全性