SpringCloud
Anbang713
这个作者很懒,什么都没留下…
展开
-
Hystrix-请求缓存实战
在《Hystrix-执行流程》中,我们说到在执行command的时候会先检查是否开启缓存,若开启缓存,且缓存中有数据时,就直接返回结果。今天,我们就通过实战看下这说的是什么意思。一、创建command重写getCacheKey方法,返回一个String类型的值作为缓存的key。public class CommandUsingRequestCache extends HystrixC...原创 2019-01-03 21:25:10 · 462 阅读 · 0 评论 -
Hystrix-fallback实战
在《Hystrix-执行流程》中,我们说到几种情况会导致fallback,比如:(1)短路器发现异常事件的占比达到一定的比例,直接开启短路。(2)线程池或者信号量已满,直接reject掉。(3)执行过程中超时,TimeoutException异常。(4)执行过程中报错,抛出异常。以上几种情况,只要发生其中一种,就会执行fallback方法进行降级处理。那么接下来我们看看程序的执...原创 2019-01-03 21:50:18 · 750 阅读 · 0 评论 -
SpringCloud-拜托!面试请不要再问我Spring Cloud底层原理
原文地址:https://mp.weixin.qq.com/s/mOk0KuEWQUiugyRA3-FXwg,原创作者:中华石杉,微信公众号:石杉的架构笔记。一、概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给...转载 2018-12-30 09:56:05 · 1543 阅读 · 1 评论 -
SpringCloud-拜托!面试请不要再问我Spring Cloud底层原理实战
上一篇我们说到《拜托!面试请不要再问我Spring Cloud底层原理》,我们大概了解了Spring Cloud中各个组件的作用以及其背后实现的原理。但是俗话说得好,实践是检验真理的唯一标准。这一篇我们动手实践一下,即搭建一个包含订单服务、库存服务、仓库服务、积分服务的微服务架构项目。一、项目的工程结构工程名 服务名 端口号 shop-parent 父工程 ...原创 2018-12-30 17:44:02 · 2655 阅读 · 1 评论 -
Hystrix-短路器原理及实战
短路器是什么?顾名思义,短路器的作用是用来阻断的。即当打开短路器时,后续对command的执行会直接执行fallback降级。那么什么情况下短路器会被打开呢?下面我们一起了解下这其中的原理。一、短路器的工作原理1、短路器打开的前提是经过短路器的流量超过了一定的阈值。比如说在10s内,经过短路器的流量必须达到20个才会判断要不要短路。2、到达短路器的流量异常占比必须超过一定的阈值。比如我...原创 2019-01-05 11:28:24 · 1197 阅读 · 0 评论 -
Hystrix-基本概念
一、Hystrix是什么在微服务的架构系统中,每个服务都可能会调用很多其他服务,被调用的那些服务就是依赖服务。有的时候某些依赖服务出现故障也是很正常的。Hystrix可以让我们在对服务间的调用进行控制,加入一些调用延迟或者依赖故障的容错机制。Hystrix通过将依赖服务进行资源隔离,进而组织某个依赖服务出现故障的时候,这种故障在整个系统所有的依赖服务调用中进行蔓延,同时Hystrix还提供故障...原创 2019-01-02 07:53:26 · 980 阅读 · 0 评论 -
Hystrix-限流及其实战
一、基本概念Hystrix把一个分布式系统的某一个服务打造成一个高可用的服务最重要的手段之一就是对资源隔离,即通过限流来限制对某一服务的访问量,比如说对mysql的访问,为了避免过大的流量直接请求mysql服务,hystrix通过线程池或者信号量技术进行限流访问。在《Hystrix-基本概念》中,我们了解到Hystrix的两种隔离技术:线程池和信号量。也分析了在什么样的场景下使用线程池和信...原创 2019-01-06 11:51:56 · 10111 阅读 · 0 评论 -
Hystrix-多级降级
通常情况下,我们在command里的getFallback()做降级处理。在getFallback()里,我们可以再套一个command作为第一级降级策略,而这个command的fallback就是第二级降级策略。下面我们直接通过代码来看下多级降级的实现。一、创建commandpublic class CommandMultiLevelFallback extends HystrixCo...原创 2019-01-06 12:56:44 · 642 阅读 · 0 评论 -
Hystrix-执行流程
Hystrix的执行流程大概有以下几个步骤,大致流程如下: 一、创建command创建一个HystrixCommand或者HystrixObservableCommand对象,代表了对某个依赖服务发起的一次请求或者调用。构造的时候,可以在构造函数中传入任何需要的参数。HystrixCommand:主要用于仅仅会返回一个结果的调用。HystrixObservableCommand:...原创 2019-01-02 22:11:30 · 567 阅读 · 0 评论