SpringCloud常用组件

SpringCloud常用组件

  • Eureka 服务注册与发现
  • Ribbon 客户端负载均衡
  • Feign 声明式服务调用
  • Hystrix 断路器
  • Config 分布式配置
  • Zuul 服务网关

Eureka

简介

Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。

架构

由两个组件组成:Eureka服务端和Eureka客户端。
Eureka服务端用作服务注册中心。支持集群部署。
Eureka客户端用于简化与服务端交互,用来处理服务注册与发现。SpringCloud常用组件_第1张图片
Eureka 实战

Eureka工作原理

Ribbon

简介

Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独立部署,但是它几乎存在于每一个Spring Cloud构建的微服务和基础设施中。因为微服务间的调用,API网关的请求转发等内容,实际上都是通过Ribbon来实现的。 链接

服务器端负载均衡和客户端负载均衡的区别

https://www.jianshu.com/p/c248157bef98

负载均衡策略


Ribbon 实战

Feign

简介

feign是声明式的web service客户端,它让微服务之间的调用变得更简单了,类似controller调用service。Spring Cloud集成了Ribbon和Eureka,可在使用Feign时提供负载均衡的http客户端。链接

Ribbon 和 Feign 区别与联系

Feign 实战

Hystrix

在分布式环境中,许多服务依赖项中的一些必然会失败。Hystrix是一个库,通过添加延迟容忍和容错逻辑,帮助你控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点、停止级联失败和提供回退选项来实现这一点,所有这些都可以提高系统的整体弹性。

Hystrix介绍
Spring Boot 集成 Hystrix
Hystrix dashboard
Hystrix工作原理

附:Spring Boot 热部署

Config

Spring Cloud Config 是把应用原本放在本地文件的配置放到git服务器上,从而提供更好的管理、发布能力。提供了基于应用、环境、版本(其他的配置中心缺少)的配置管理。

SpringCloud常用组件_第2张图片
搭建配置中心
使用Spring Cloud Bus 来刷新配置

附:
SpringBoot 教程之 profile 的应用
application.yml与bootstrap.yml的区别

Zuul

Zuul是Spring Cloud全家桶中的微服务API网关。

所有从设备或网站来的请求都会经过Zuul到达后端的Netflix应用程序。作为一个边界性质的应用程序,Zuul提供了动态路由、监控、弹性负载和安全功能。Zuul底层利用各种filter实现如下功能:

认证和安全 识别每个需要认证的资源,拒绝不符合要求的请求。
性能监测 在服务边界追踪并统计数据,提供精确的生产视图。
动态路由 根据需要将请求动态路由到后端集群。
压力测试 逐渐增加对集群的流量以了解其性能。
负载卸载 预先为每种类型的请求分配容量,当请求超过容量时自动丢弃。
静态资源处理 直接在边界返回某些响应。
链接

SpringCloud常用组件_第3张图片

搭建Zuul网关
Nginx+Zuul集群

你可能感兴趣的:(springcloud)