摘要: Spring Cloud Zuul 实现了路由规则与实例的维护问题,通过 Spring Cloud Eureka 进行整合,将自身注册为 Eureka 服务治理下的应用,同时从 Eureka 中获取了所有其他微服务的实例信息,这样的设计非常巧妙的将服务治理体系中维护的实例信息利用起来,使得维护服务实 阅读全文
posted @ 2017-09-10 22:47 立3807 阅读(1142) 评论(0) 推荐(0) 编辑
摘要: 由于 Spring Cloud Feign 的客户端负载均衡是通过 Spring Cloud Ribbon 实现的,所以我们可以直接通过配置 Ribbon 的客户端的方式来自定义各个服务客户端调用的参数。 全局配置 全局配置的方法非常简单,我们可以i直接使用 ribbon.<key>=<value> 阅读全文
posted @ 2017-09-10 22:46 立3807 阅读(1155) 评论(0) 推荐(0) 编辑
摘要: 在 Spring Cloud Feign 中,除了引入了用户客户端负载均衡的 Spring Cloud Ribbon 之外,还引入了服务保护与容错的工具 Hystrix,默认情况下,Spring Cloud Feign 会为将所有 Feign客户端的方法都封装到 Hystrix 命令中进行服务保护, 阅读全文
posted @ 2017-09-10 22:46 立3807 阅读(3582) 评论(0) 推荐(0) 编辑
摘要: 请求压缩 Spring Cloud Feign 支持对请求与响应进行GZIP压缩,以减少通信过程中的性能损耗,我们只需要通过下面二个参数设置,就能开启请求与响应的压缩功能,yml配置格式如下: feign: compression: request: enabled: true response: 阅读全文
posted @ 2017-09-10 22:46 立3807 阅读(693) 评论(0) 推荐(0) 编辑
摘要: 主要用来控制 HystrixCommand 命令的行为,主要有下面5种类型的属性配置: execution配置 该配置前缀为 hystrix.command.default execution.isolation.strategy :该属性用来设置执行的隔离策略,有如下二个选项: THREAD:通过 阅读全文
posted @ 2017-09-10 16:39 立3807 阅读(7129) 评论(1) 推荐(1) 编辑
摘要: 在实际开发中,对于服务依赖的调用可能不止一处,往往一个接口会被多处调用,所以我们通常会针对各个微服务自行封装一些客户端类来包装这些依赖服务的调用,Spring Cloud Feign 在此基础上做了进一步的封装,由他来帮助我们定义和实现依赖服务接口的定义,我们只需要创建一个接口并用注解的方式来配置他 阅读全文
posted @ 2017-09-10 16:39 立3807 阅读(5171) 评论(0) 推荐(0) 编辑
摘要: 使用继承的方式来创建Hystrix 命令,不是用注解的方式来使用 Hystrix 创建 HelloGetCommand 对象,继承与 HystrixCommand 并实现 run 方法,示例如下: public class HelloGetCommand extends HystrixCommand 阅读全文
posted @ 2017-09-10 16:38 立3807 阅读(527) 评论(0) 推荐(0) 编辑
摘要: 异常处理 在 HystrixCommand 实现的run方法中抛出异常,除了 HystrixBadRequestException之外,其他异常均会被Hystrix 认为命令执行失败并触发服务降级处理逻辑,所以当需要在命令中执行抛出不触发降级的异常时使用他,在使用注解配置实现 Hystrix 命令时 阅读全文
posted @ 2017-09-10 16:38 立3807 阅读(3410) 评论(0) 推荐(0) 编辑
摘要: 由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身问题出现调用故障或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会因等待出现故障的依赖方响应形成任务积压,最终导致自身服务的瘫痪。 在微服务架构中,存在着大 阅读全文
posted @ 2017-09-10 16:37 立3807 阅读(750) 评论(0) 推荐(0) 编辑