前言

Spring cloud作为当下主流的微服务框架,让我们实现微服务架构变得更加简单快捷。Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。它是一个基于HTTP和TCP的客户端负载均衡器。它可以通过在客户端中配置ribbonServerList来设置服务端列表去轮询访问以达到均衡负载的作用。

正文

接下来为大家一份文档,文档内容包括:Spring Cloud概述、搭建开发环境、微服务发布与调用、负载均衡、REST客户端Feign、Spring Cloud的保护机制、微服务集群网关、微服务与消息驱动、集群配置中心等等,由于篇幅限制小编在这里只展示文章的部分大纲及内容。

Spring Cloud与Netlix

Spring Cloud并不是一个具体的框架,大家可以把它理解为一个工具箱,它提供的各。

工具,可以帮助我们快速构建分布式系统。Spring Cloud的各个项目基于Spring Boot,将Netlix的多个框架进行封装,并且通过自动配置的方式将这些框架绑定到Spring的环境中,从而简化了这些框架的使用。由于Spring Boot的简便,使得我们在使用Spring Cloud时,很容易将Netflix各个框架整合进项目中。Spring Cloud下的Spring Cloud Netlix模块,主要封装了Netlix 的以下项目。

➢Eureka: 基于REST服务的分布式中间件,主要用于服务管理。

➢Hystrix: 容错框架,通过添加延迟阈值以及容错的逻辑,帮助我们控制分布式系统间组件的交互。

➢Feign: 一个REST客户端,目的是为了简化Web Service客户端的开发。

➢Ribbon: 负载均衡框架,在微服务集群中为各个客户端的通信提供支持,它主要实现中间层应用程序的负载均衡。

➢Zuul: 为微服务集群提供代理、过滤、路由等功能。

Spring Cloud的主要模块

除了Spring Cloud Netlix模块外,Spring Cloud还包括以下几个重要的模块。

➢Spring Cloud Config: 为分布式系统提供了配置服务器和配置客户端,通过对它们的配置,可以很好地管理集群中的配置文件。

➢Spring Cloud Sleuth:服务跟踪框架,可以与Zipkin、Apache HTrace和ELK等数据分析、服务跟踪系统进行整合,为服务跟踪、解决问题提供了便利。

➢Spring Cloud Stream:用于构建消息驱动微服务的框架,该框架在Spring Boot的基础上,整合了Spring Integration来连接消息代理中间件。

➢Spring Cloud Bus:连接RabbitMQ、Kafka 等消息代理的集群消息总线。

Ribbon简介

Ribbon是Netlix下的负载均衡项目,它在集群中为各个客户端的通信提供了支持,它主要实现中间层应用程序的负载均衡。Ribbon 提供以下特性:

➢负载均衡器,可支持插拔式的负载均衡规则。

➢对多种协议提供支持,例如HTTP、TCP、 UDP。

➢集成了负载均衡功能的客户端。

同为Netflix项目,Ribbon可以与Eureka整合使用,Ribbon同样被集成到Spring Cloud中,作为spring-cloud-netflix项目中的子模块。Spring Cloud将Ribbon的API进行了封装,使用者可以使用封装后的API来实现负载均衡,也可以直接使用Ribbon的原生API。

负载均衡器组件

Ribbon的负载均衡器主要与集群中的各个服务器进行通信,负载均衡器需要提供以下基础功能:

➢维护服务器的IP、DNS名称等信息。

➢根据特定的逻辑在服务器列表中循环。

为了实现负载均衡的基础功能,Ribbon 的负载均衡器有以下三大子模块。

➢Rule: 一一个逻辑组件,这些逻辑将会决定从服务器列表中返回哪个服务器实例。

➢Ping:该组件主要使用定时器来确保服务器网络可以连接。

➢ServerList: 服务器列表,可以通过静态的配置确定负载的服务器,也可以动态指定服务器列表。如果动态指定服务器列表,则会有后台的线程来刷新该列表。

一.Spring Cloud述

二.搭建开发环境

三.微服务发布与调用