![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpringCloud
妹纸也能做程序
欢迎来到Java女程序媛的故事汇!
展开
-
18.zuul路由网关
Zuul包含了对请求的路由和过滤两个最主要的功能: 其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础.Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。 提供: 代理...原创 2019-11-21 17:28:07 · 62 阅读 · 0 评论 -
17.服务监控hystrixDashboard
除了隔离依赖服务的调用以外,Hystrix还提供了准实时的调用监控(Hystrix Dashboard),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。Netflix通过hystrix-metrics-event-stream项目实现了对以上指标的监控。Spring Cloud也提供了Hystri...原创 2019-11-21 16:35:45 · 110 阅读 · 0 评论 -
16.Hystrix断路器(服务降级)
服务降级处理是在客户端实现完成的,与服务端没有关系 1.修改microservicecloud-api工程,根据已经有的DeptClientService接口新建一个实现了FallbackFactory接口的类DeptClientServiceFallbackFactory @Component public class DeptClientServiceFallbackFactory imple...原创 2019-11-21 14:30:00 · 108 阅读 · 0 评论 -
15.Hystrix断路器(服务熔断)
服务熔断 熔断机制是应对雪崩效应的一种微服务链路保护机制。 当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回"错误"的响应信息。当检测到该节点微服务调用响应正常后恢复调用链路。在SpringCloud框架里熔断机制通过Hystrix实现。Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内20次调用失败就会启动熔断机制。...原创 2019-11-21 11:43:52 · 127 阅读 · 0 评论 -
14.Hystrix断路器(一)
分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。 服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”. 对于高流量的应...原创 2019-11-21 11:19:20 · 106 阅读 · 0 评论 -
13.Feign负载均衡
Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单, 它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和R...原创 2019-11-21 10:40:07 · 68 阅读 · 0 评论 -
12.Ribbon自定义负载均衡算法
1.修改microservicecloud-consumer-dept-80 2.主启动类添加@RibbonClient 在启动该微服务的时候就能去加载我们的自定义Ribbon配置类,从而使配置生效,形如: @RibbonClient(name=“MICROSERVICECLOUD-DEPT”,configuration=MySelfRule.class) 3.新建自定义Robbin规则类(MyS...原创 2019-11-21 09:08:15 · 239 阅读 · 0 评论 -
11.Ribbon核心组件IRule
IRule:根据特定算法中从服务列表中选取一个要访问的服务 RoundRobinRule:轮询 RandomRule:随机 AvailabilityFilteringRule:会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,还有并发的连接数量超过阈值的服务,然后对剩余的服务列表按照轮询策略进行访问 WeightedResponseTimeRule:根据平均响应时间计算所有服务的权重,响应时...原创 2019-11-20 17:45:37 · 72 阅读 · 0 评论 -
10.Ribbon负载均衡(二)
Ribbon负载均衡 1.架构说明 Ribbon在工作时分成两步 第一步先选择 EurekaServer ,它优先选择在同一个区域内负载较少的server. 第二步再根据用户指定的策略,在从server取到的服务注册列表中选择一个地址。 其中Ribbon提供了多种策略:比如轮询、随机和根据响应时间加权。 2.参考microservicecloud-provider-dept-8001,新建两份,...原创 2019-11-20 17:31:01 · 75 阅读 · 0 评论 -
9.Ribbon负载均衡(一)
概述 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Rib...原创 2019-11-20 16:27:09 · 73 阅读 · 0 评论 -
8.Eureka集群实战
原理说明 基本原理 上图是来自eureka的官方架构图,这是基于集群配置的eureka; 处于不同节点的eureka通过Replicate进行数据同步 Application Service为服务提供者 Application Client为服务消费者 Make Remote Call完成一次服务调用 服务启动后向Eureka注册,Eureka Server会将注册信息向其他Eureka S...原创 2019-11-20 15:20:36 · 129 阅读 · 0 评论 -
7.作为服务注册中心,Eureka比Zookeeper好在哪里
作为服务注册中心,Eureka比Zookeeper好在哪里 著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性P在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。 因此 Zookeeper保证的是CP, Eureka则是AP。 Zookeeper保证CP 当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注...原创 2019-11-19 18:07:18 · 72 阅读 · 0 评论 -
6.微服务Eureka服务发现
1.对于注册进eureka里面的微服务,可以通过服务发现来获得该服务的信息 2.修改microservicecloud-provider-dept-8001工程的DeptController @Autowired private DiscoveryClient client; @RequestMapping(value = "/dept/discovery", method = Req...原创 2019-11-19 18:02:40 · 106 阅读 · 0 评论 -
5.Eureka自我保护机制
由上章的内容,相信大家都看到了 这里有一串红色的,这就是自我保护机制给出的提示信息 什么是自我保护模式? 默认情况下,如果EurekaServer在一定时间内没有接收到某个微服务实例的心跳,EurekaServer将会注销该实例(默认90秒)。但是当网络分区故障发生时,微服务与EurekaServer之间无法正常通信,以上行为可能变得非常危险了——因为微服务本身其实是健康的,此时本不应该注销这个...原创 2019-11-19 17:42:29 · 117 阅读 · 0 评论 -
4.微服务之Eureka服务注册
是什么 SpringCloud封装了netflix公司开发的Eureka模块来实现服务注册与发现(可以对比zookeeper),netflix在设计 Eureka时遵循的是AP原则(CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得 ) Eureka的基本架构...原创 2019-11-19 17:35:24 · 149 阅读 · 0 评论 -
3.微服务之RestTemplate项目实战
以Dept部门模块做一个微服务通用案例Consumer消费者(Client)通过rest调用Provider生产者(Server)提供的服务 Ecplise+SpringBoot+mybatis+mysql +maven(父子项目) 首先复习下maven父子项目结构(一个project带着多个module子模块): ---- app-parent 一个父项目(app-parent)聚合很...原创 2019-11-15 17:24:55 · 156 阅读 · 0 评论 -
2.SpringCloud入门概述
是什么 SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。 SpringCloud利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工...原创 2019-11-15 11:08:59 · 55 阅读 · 0 评论 -
1.微服务概述
微服务是什么 将传统的一站式应用根据业务拆分成一个个单一的服务,能够彻底解耦,一个服务解决一件事,能够自行运行和销毁,拥有自己独立的数据库。 微服务与微服务架构 微服务:强调的是服务大小,关注某一个点,是具体解决某一个问题/提供落地对应服务的一个服务应用,狭义的讲,可以看作Eclipse里面一个个微服务工程/或者module。 微服务架构:是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服...原创 2019-11-14 20:20:56 · 147 阅读 · 0 评论