Fork me on GitHub

熔断器-Ribbon使用Hystrix

本节详细讲解使用Hystrix的通用方式。 简介Hystrix是由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。Hystrix主要通过以下几点实现延迟和容错。 包裹请求 使用HystrixCommand(或HystrixObservableCommand)包裹对依赖的调用逻辑,每个命令在独立线程中执行。这使用到了...

SpringCloud Feign

在前面的文章中可以发现当我们通过RestTemplate调用其它服务的API时,所需要的参数须在请求的URL中进行拼接,如果参数少的话或许我们还可以忍受,一旦有多个参数的话,这时拼接请求字符串就会效率低下,并且显得好傻。 那么有没有更好的解决方案呢?答案是确定的有,Netflix已经为我们提供了一个框架:Feign。 Feign是一个声明式的Web Service客户端,它的目的就是让Web...

SpringCloud Ribbon

在之前几篇 Spring Cloud 的 5 分钟指南里我们已经依次介绍了多个 Spring Cloud 的核心组件,其中涵盖了微服务架构中必须的基础功能,例如服务发现,熔断,中心化配置。今天介绍的主角同样是由 Netflix 出品的 Ribbon,官方给 Ribbon 的定义是一个用于远程调用的库,而它更为人熟知的作用是可以进行客户端的 Load Balance。 Load Balanc...

微服务服务提供者在Eureka中注册

服务提供者被其他微服务调用的微服务 首先我们用首先打开http://start.spring.io,如下图所示, 创建报名,项目名 microservice-provider 最后点击下方的“Generate Project”按钮, 将会生成 zip包。 microservice-provider.zip 然后解压,导入idea中。 然后开始编写代码 编写服务提供者创建一个Maven项目,...

服务发现 - Eureka

Eureka简介Eureka是Netflix开源的服务发现组件,本身是一个基于REST的服务,包含Server和Client两部分,Spring Cloud将它集成在子项目Spring Cloud Netflix中。 关于服务发现在微服务架构中,服务发现(Service Discovery)是关键原则之一。手动配置每个客户端或某种形式的约定是很难做的,并且很脆弱。Spring Cloud提供...

SpringCloud微服务学习之旅

微服务微服务简介 服务发现 - Eureka 微服务服务提供者在Eureka中注册 SpringCloud Ribbon SpringCloud Feign 熔断器-Ribbon使用Hystrix 熔断器-Feign使用Hystrix 熔断器-Hystrix Dashboard 熔断器 - Turbine SpringCloud组件之Zuul Spring Cloud Sleuth与Zipk...

SpringCloud-----Ribbon异常java.net.UnknownHostException

如何解决Feign/Ribbon第一次请求失败的问题?** Spring Cloud中,Feign和Ribbon在整合了Hystrix后,可能会出现首次调用失败的问题,要如何解决该问题呢? 造成该问题的原因 Hystrix默认的超时时间是1秒,如果超过这个时间尚未响应,将会进入fallback代码。而首次请求往往会比较慢(由于Ribbon是懒加载的,在首次请求时,才会开始初始化相关类),这个...

微服务简介

什么是微服务架构近年来,在软件开发领域关于微服务的讨论呈现出火爆的局面,有人倾向于在系统设计与开发中采用微服务方式实现软件系统的松耦合、跨部门开发,被认为是IT软件架构的未来方向,Martin Fowler也给微服务架构极高的评价;同时,反对之声也很强烈,持反对观点的人表示微服务增加了系统维护、部署的难度,导致一些功能模块或代码无法复用,同时微服务允许使用不同的语言和框架来开发各个系统模块,...