SpringCloud 组件作用理解

这是自己学习springcloud的一点总结和理解;

一、Spring Cloud核心组件:Eureka
Eureka是服务注册中心,其作用主要是服务的注册和发现,而我们可以怎么来理解它呢,例如我现在需要完成一个支付订单功能,首先我的支付是一个服务,支付之后必须得让商品减一吧,商品也是一个服务,之后得通知商品出库了,又是一个商品后库服务。那么多服务,他们之间怎么互相知道谁是谁呢,他们需要发送某个请求的时候怎么知道找谁呢,于是Eureka的作用就出来了,可以将其看做一个注册表,将我的地址和端口注册在上面。也就是告诉EurekaServer自己在哪个机器上。
二、Spring Cloud核心组件:Feign
我们现在有了Eureka,也知道哪个服务在哪个机器哪个端口上了,那么我们怎么来调用请求呢,难道还需要自己写一个Http请求吗。所有Feign为我们完美得解决了这个问题。首先,你对某个接口加了@FeignClient注解,他会自动扫描到这个注解的接口生成动态代理,在根据你接口上的@RequestMaping生成你需要的请求地址。然后对这个地址发起请求,解析响应。
三、Spring Cloud核心组件:Ribbon
当然,如果你遇到库存服务部署在五个服务器上怎么办呢,Ribbon在这儿就会帮你选择某一个机器,然后把请求发给他。其中就使用到了轮询机制,当然Ribbon和Feign我们通常是结合在一起紧密合作的。
四、Spring Cloud核心组件:Hystrix
当我们突然遇到订单服务断开了怎么办,每当你调用这个服务,就会等几秒然后返回一个超时的错误,每次调用都是一个线程,那么这样就会影响后面的服务,比如商品库存减少,通知发货,导致服务雪崩。我们就算不改变订单状态,也需要将库存减少和发货吧。那么现在我们有了Hystrix,Hystrix会创建很多个线程池,将每个服务方进去,且不互相影响,当然,我们如果要调用这个已经断开的服务的时候,就会直接将其熔断,而不是等几秒的超时,这就是服务熔断。那么我们已经断开的这个服务的请求怎么办呢,我们可以使用另外的方法处理他,例如我们可以使用Fallback机制将其记录下来,等到服务重新启动后再将其操作了,并且当你的一些服务压力太大了的时候,可以关闭掉某些不太重要的服务,这就是服务降级。
五、Spring Cloud核心组件:Zuul
当你的服务到达了一定的数量,你的前端兄弟肯定是记不住的,所以一般微服务架构中都必然会设计一个网关在里面,像android、ios、pc前端、微信小程序、H5等等,不用去关心后端有几百个服务,就知道有一个网关,所有请求都往网关走,网关会根据请求中的一些特征,将请求转发给后端的各个服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值