【Java】SpringCloud基础知识点

什么是SpringCloud

SpringCloud是一套分布式微服务的解决方案,Spring Cloud 的各个项目基于 Spring Boot,将 Netflix 的多个框架进行封装,并且通过自动配置的方式将这些框架绑定到 Spring 的环境中,从而简化了这些框架的使用。由于Spring Boot 的简便,使得我们在使用 Spring Cloud 时,很容易的将 Netflix 各个框架整合进我们的项目中。
在这里插入图片描述
中文官网地址 :SpringCloud中文官网

有哪些组件

在这里插入图片描述

Eureka

Eureka 提供基于 REST 的服务,在集群中主要用于服务管理。Eureka 提供了基于 Java语言的客户端组件,客户端组件实现了负载均衡的功能,为业务组件的集群部署创造了条件。使用该框架,可以将业务组件注册到 Eureka 容器中,进行集群部署,Eureka 提供的服务调用功能,可以发布容器中的服务并进行调用。
一个简单的 Eureka 集群,需要有一个 Eureka 服务器、若干个服务提供者。

  • 服务端:
    对于注册到服务器端的服务组件,Eureka 服务器并没有提供后台的存储,这些注册的服务实例被保存在内存的注册中心,它们通过心跳来保持其最新状态,这些操作都可以在内存中完成。客户端存在着相同的机制,同样在内存中保存了注册表信息,这样的机制提升了Eureka 组件的性能,每次服务的请求都不必经过服务器端的注册中心。

  • 客户端:
    作为 Eureka 客户端存在的服务提供者,主要进行以下工作:第一、向服务器注册服务;第二、发送心跳给服务器;第三、向服务器端获取注册列表。当客户端注册到服务器时,它将会提供一些关于它自己的信息给服务器端,例如自己的主机、端口、健康检测连接等。

  • 服务调用者:
    对于发布到 Eureka 服务器的服务,使用调用者可对其进行服务查找与调用,服务调用者也是作为客户端存在,但其职责主要是发现与调用服务。在实际情况中,有可能出现本身既是服务提供者,也是服务调用者的情况,例如传统的企业应用三层架构中,服务层会调用数据访问层的接口进行数据操作,它本身也会提供服务给控制层使用。

Ribbon

负载均衡是分布式架构的重点,负载均衡机制将决定着整个服务集群的性能与稳定。
Ribbon 是 Netflix 下的负载均衡项目,它在集群中为各个客户端的通信提供了支持,它主要实现中间层应用程序的负载均衡。

  • Ribbon 提供以下特性:
    1.负载均衡器,可支持插拔式的负载均衡规则。
    2.对多种协议提供支持,例如 HTTP、TCP、UDP。
    3.集成了负载均衡功能的客户端。

Spring Cloud 将 Ribbon 的 API 进行了封装,使用者可以使用封装后的 API 来实现负载均衡,也可以直接使用 Ribbon 的原生 API.

  • Ribbon 主要有以下三大子模块:
    Ribbon-core:该模块为 Ribbon 项目的核心,主要包括负载均衡器接口定义、客户端接口定义,内置的负载均衡实现等 API。
    Ribbon-eureka:为 Eureka 客户端提供的负载均衡实现类。
    Ribbon-httpclient:对 Apache 的 HttpClient 进行封装,该模块提供了含有负载均衡功能的 REST 客户端。

  • Ribbon 的负载均衡器主要与集群中的各个服务器进行通信,负载均衡器需要提供以下基础功能:
    维护服务器的 IP、DNS 名称等信息。
    根据特定的逻辑在服务器列表中循环。

  • 为了实现负载均衡的基础功能,Ribbon 的负载均衡器有以下三大子模块:
    Rule: 一个逻辑组件,这些逻辑将会决定,从服务器列表中返回哪个服务器实例。
    Ping: 该组件主要使用定时器,来确保服务器网络可以连接。
    ServerList: 服务器列表,可以通过静态的配置确定负载的服务器,也可以动态指定服务器列表。如果动态指定服务器列表,则会有后台的线程来刷新该列表。

Hystrix

提供了熔断器功能,能够阻止分布式系统中出现联动故障。

Zuul

Zuul 是由 Netflix 孵化的一个致力于“网关 “解决方案的开源组件。

Config

Spring Cloud 中提供了分布式配置中 Spring Cloud Config ,为外部配置提供了客户端和服务器端的支持。

Feign

Spring Cloud 将 Feign 集成到 netflix 项目中,当与 Eureka、Ribbon 集成时,Feign 就具有负载均衡的功能。Feign 本身在使用上的简便性,加上与 Spring Cloud 的高度整合,使用该框架在 Spring Cloud 中调用集群服务,将会大大降低开发的工作量。

在使用 Feign 时,可以使用注解来修饰接口,被注解修饰的接口具有访问 Web Service 的能力,这些注解中既包括了 Feign 自带的注解,也支持使用第三方的注解。除此之外,Feign还支持插件式的编码器和解码器,使用者可以通过该特性,对请求和响应进行不同的封装与解析。

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小冷coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值