Spring Cloud介绍及主要组件

SpringCloud 是微服务框架,将一系列组件进行整合。我们可以加入一些jar包,配置一些相关文件,通过一些简单的注解,就可以快速的构建成一个分布式系统。对我们熟悉spring的程序员来说,上手比较容易。

基于springboot构建

springCloud中提供了restTemplet(httpClient,httpUrlconnection)方式调用其他服务

SpringCloud分布式开发组件详解 (Netflix公司旗下)

服务发现——Netflix Eureka 服务注册中心
统一微服务之间的端口号,进行远程调用,方便查看与使用,
Eureka Server至少部署两台服务器,实现高可用。自我保护机制,定时发送心跳

客服端负载均衡——Netflix Ribbon

负载均衡是微服务架构中必须使用的技术,通过负载均衡来实现系统的高可用、集群扩容等功能

Ribbon从Eureka Server获取服务列表,Ribbon根据负载均衡算法直接请求到具体的微服务,中间省去了负载均衡服务。
Ribbon默认采用轮训算法,其他算法还有hash、权重、一致性hash
在这里插入图片描述

Feign
Spring Cloud引入
Feign并且集成了Ribbon实现客户端负载均衡调用。
Feign工作原理如下:
1、 启动类添加@EnableFeignClients注解,Spring会扫描标记了@FeignClient注解的接口,并生成此接口的代理
对象
2、 @FeignClient(“服务名称”)即指定了服务名称,Feign会从注册中
心获取服务列表,并通过负载均衡算法进行服务调用。
3、在接口方法 中使用注解@GetMapping("/路劲"),指定调用的url,Feign将根据url进行远程调
用。

断路器(熔断器)——Netflix Hystrix 读法:Hystrix

用于处理雪崩问题,假设一个请求需要abcd四个服务执行,如果其中a服务挂掉,则返回结果阻塞,同时如果越来越多的请求进入,则最后http容器的连接数耗尽,此时其他正常的服务也无法使用

解决问题方式:

1.线程隔离,服务降级
给每个服务分配一定的线程池,如给a服务5个线程。此时用户来访问a服务,a已经挂了,则最多只能占用5个线程,不会影响到其他服务的线程,同时设定一个超时时长,即请求到a服务之后,无法通过,等待一定时间后,则服务返回一个“服务器繁忙”,同时断开连接,直到能成功为止

2、熔断
在最近的20次请求,如果其中有超过一半次都失败,则熔断被访问的服务,同时请求直接返回失败,同时打开熔断器,休眠时间窗(默认5秒)10秒之后会再次尝试,进入半开状态,放一半的请求进入测试,如果仍然失败,则再次进入熔断再次进入半开状态,如果请求测试成功,则关闭熔断器

服务网关——Netflix Zuul

是netflix开源的微服务网关,1.路由,2.控制,3.控流
其核心是一系列的过滤器
在这里插入图片描述

分布式配置——Spring Cloud Config

在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,一是config server,二是config client,可以和svn,git集成,但是推荐使用github 集成使用
在这里插入图片描述
消息总线———Spring Cloud Bus

在Spring Cloud Config中,我们知道的配置文件可以通过Config Server存储到Git等地方,通过Config Client进行读取,但是我们的配置文件不可能是一直不变的,当我们的配置文件放生变化的时候如何进行更新哪?

一种最简单的方式重新一下Config Client进行重新获取,但Spring Cloud绝对不会让你这样做的,Spring Cloud Bus正是提供一种操作使得我们在不关闭服务的情况下更新我们的配置。
第二种就是Spring Cloud Bus(消息总线)动态更新服务配置只是消息总线的一个用处,还有很多其他用处。

SpringCloud 和SpringBoot是 什么关系
SpringBoot :专注于快速方便开发单个个体微服务
SpringCloud:是一个全局的微服务协调治理框架,它将SpringBoot开发的一个个微服务整合并管理起来,为各个服务之间提供 服务发现、负载均衡、断路器、路由、配置管理、微代理,消息总线、全局锁、分布式会话等集成服务。
SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖关系
SpringBoot专注快速方便开发单个微服务个体,SpringCloud 关注全局的服务治理框架

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值