Fork me on GitHub

SpringCloud组件之Zuul

Zuul是Netflix开源的微服务网关,可以和Eureka、Ribbon、Hystrix等组件配合使用,Spring Cloud对Zuul进行了整合与增强,Zuul默认使用的HTTP客户端是Apache HTTPClient,也可以使用RestClient或okhttp3.OkHttpClient。 Zuul的主要功能是路由转发和过滤器。路由功能是微服务的一部分,比如/demo/test...

熔断器 - Turbine

Turbine在复杂的分布式系统中,相同服务的节点经常需要部署上百甚至上千个,很多时候,运维人员希望能够把相同服务的节点状态以一个整体集群的形式展现出来,这样可以更好的把握整个系统的状态。 为此,Netflix提供了一个开源项目(Turbine)来提供把多个hystrix.stream的内容聚合为一个数据源供Dashboard展示。 和Hystrix Dashboard一样,Turbine也...

熔断器-Hystrix Dashboard

Hystrix监控Ribbon除了隔离依赖服务的调用以外,Hystrix还提供了近实时的监控,Hystrix会实时、累加地记录所有关于HystrixCommand的执行信息,包括每秒执行多少请求多少成功,多少失败等。Netflix通过hystrix-metrics-event-stream项目实现了对以上指标的监控。 上文提到的microservice-consumer-ribbon-wit...

熔断器-Feign使用Hystrix

Feign默认已经整合了Hystrix,本节详细探讨Feign使用Hystrix的具体细节。 服务降级 加配置,默认Feign是不启用Hystrix的,需要添加如下配置启用Hystrix,这样所有的Feign Client都会受到Hystrix保护! 123feign: hystrix: enabled: true 提供Fallback: 123456789101112@Fe...

熔断器-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提供...