Spring Cloud Alibaba 各大组件的作用

nacos是什么?注册中心在微服务中的作用是什么?

注册中心
注册中心主要涉及三大角色
1.服务提供者(被调用的接口)  2.服务消费者(调用接口者)  3.注册中心
项目中使用了nacos作为注册中心,注册中心在微服务架构中是必不可少的存在,它可以作为服务与服务之间的一个通讯录,
实际上它里面存储就是各个服务的信息(例如ip,端口,服务名)
如果没有注册中心,我们就需要通过ip加端口的方式去访问其他服务.这样做的话,如果服务ip或端口发生改变,我们就需要大量的修改代码,注册中心就解决了这个问题,可以根据名称动态的获取ip和端口

Ribbon是什么?在微服务中的作用是什么?

负载均衡
在项目中,如果一个服务的访问量变大了,一台服务器承受不了压力,这个时候就需要做集群,那么如果做了集群,这个服务就会有多个访问地址,这时一个请求进来的话应该访问哪个服务呢,因为如果访问不均衡的话还是会造成资源的分配不平均,ribbon负载均衡就解决了这个问题,它里面有三个策略,分别是轮询,随机,权重.通过这些策略就可以均衡分配请求.

Feign是什么?在微服务中的作用是什么?

远程调用(服务间的调用)
Feign的远程调用指的是微服务间的远程调用(项目内服务之间的调用,与Gateway无关)
而Feign的负载均衡指的也是服务间互相调用的负载均衡(与Gateway无关)
因为在微服务架构中,各个服务都部署在不同的服务器中,在没有feign之前我们都是通过restTemplate这个类来远程调用服务,那么使用了feign之后,就使我们调用服务像调用本地方法一样简单,只需要写一个feign接口,贴上对应注解写上参数,调用的时候通过ioc容器获取对应接口的对象,调用方法就可以调用该服务.
其实feign的底层也是用的restTemlpate来发送请求调用服务,而且底层也集成了ribbon负载均衡,所以在nacos下使用fegin默认实现了负载均衡(默认轮巡模式)

Sentine是什么?在微服务中的作用是什么?

服务熔断降级
我的理解Sentine在项目中是作为一个保护资源的存在,在高并发的情况下,可能会有多大量的请求请求一个资源,那么这个资源的服务器可能会承受不住这种压力而崩溃,用户也就访问不到这个服务了.
而且还会导致服务器雪崩效应,就是一个服务出现问题导致其他调用这个服务的服务出错,然后这个问题就像雪崩一样扩散,最终导致整个项目出现问题.
那么sentine就可以解决这个问题,可以为某个接口来做
限流(通过监控QPS来限制访问的流量),
降级(当满足某些条件就进行熔断操作),来保证服务器不会因为超大的访问量冲垮.
没有具体操作过,因为在项目中由项目经理操作.

Gateway是什么?在微服务中的作用是什么?

服务网关
这里指的是客户端对项目服务的访问与feign的内部调用不一样
网关的作用作为统一的入口,可以把一些通用的功能放到网关这里进行处理(登录拦截,验证,鉴权,限流)
在微服务项目中,存在多个服务,每个服务都分别部署在各种的服务器上,那就代表有多个访问地址.这样对于客户端的开发非常不友好,因为这样要记录很多访问地址,而且如果地址改变了就需要修改很多代码.
服务网关就可以解决这个问题,首先网关启动,会在注册中心注册,顺便带回一份最新的服务信息列表,那么当一个请求进入网关的时候,会带上路由规则,这个路由规则就是服务的名称,这时网关获取服务名与本地的服务信息列表对比,发现有对应的服务就会根据信息拼接url,在根据ribbon(feign)的负载均衡配置选择合适的节点,通过restTemplate对象发送一个http请求,访问该服务
其次还可以在网关配置过滤器filter做一些登录验证,鉴权等的统一功能.

Gateway与Feign负载的区别?

gateway负载均衡是相对于请求的负载,对于web(客户端)请求进行负载,而feign是服务间调用的负载,服务间的限流.
流程是:请求到gateway,gate通过路由请求到对应的服务,如果服务间有调用,使用feign进行服务间调用,然后数据原路返回web

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Spring Cloud Alibaba是一个开源的微服务框架,它包括了五大组件: 1. Nacos:一个动态服务发现、配置管理和服务管理平台,支持Kubernetes和Spring Boot。 2. Sentinel:一个流量控制、熔断降级的组件,为微服务提供实时的监控和控制。 3. RocketMQ:一个分布式消息中间件,具有高吞吐量、低延迟、可靠性强等特点。 4. Dubbo:一个高性能的Java RPC框架,支持多种协议和负载均衡策略。 5. Seata:一个易于使用的分布式事务解决方案,支持各种SQL和NoSQL数据库。 ### 回答2: Spring Cloud Alibaba是一个基于Spring Cloud的生态体系,提供了一系列的阿里巴巴分布式系统解决方案,其中包含了五大组件:Nacos、Sentinel、Dubbo、RocketMQ和Seata。 1. Nacos Nacos是阿里巴巴开源的一款注册中心和配置中心,它具有更灵活、更易于扩展、更强大的动态服务发现、配置管理和服务管理能力。 2. Sentinel Sentinel是一款面向分布式服务架构的实时流量控制、熔断降级降权、系统负载保护等多种服务保护功能的开源框架,它可以在几乎所有的微服务框架中无缝集成,具有强大的实时监控能力。 3. Dubbo Dubbo是一款高性能、轻量级的RPC框架,它可以帮助用户快速构建基于Java的分布式应用程序,提供了负载均衡、服务发现、服务治理等一系列微服务必备的组件。 4. RocketMQ RocketMQ是一个高性能、低延迟、高可用、分布式消息中间件,它可以支持海量的消息存储并且提供多种可靠的消息传输保障方式。 5. Seata Seata是一个易于使用、高效、稳定的分布式事务解决方案,它可以帮助用户解决分布式场景下的事务一致性问题,提供了多种分布式事务协调支持。 总之,Spring Cloud Alibaba提供了一整套基于阿里巴巴生态体系的分布式解决方案,其中包含了五大关键组件,每个组件都有其特定的优势和作用,能够帮助用户更加轻松、高效地构建分布式应用程序。 ### 回答3: Spring Cloud Alibaba是阿里巴巴基于Spring Cloud打造的一个开源框架,它提供了一系列的全新的开源组件,包括Nacos、Sentinel、Dubbo、RocketMQ以及Seata。这五个组件构成了Spring Cloud Alibaba的核心,同时也是区别于其他云原生框架的关键所在。 1. Nacos Nacos是一款面向微服务架构的服务发现和配置管理系统,它实现了细粒度的服务域名管理以及动态配置管理。Nacos可以作为服务注册中心、配置中心和元数据中心,同时,它支持多种协议,包括HTTP、DNS、gRPC等,方便了不同语言和框架之间的集成。 2. Sentinel Sentinel是一个强大的开源项目,用于服务保护和流量控制。例如,当一个服务请求量过大时,Sentinel可以通过限流、熔断和降级来保护服务。它还可以提供实时监控与告警功能。 3. Dubbo Dubbo是一个高性能的分布式服务框架,可以实现服务的注册、发现、调用和管理等功能。同时,Dubbo提供了多种通信协议和序列化方式,以适应不同的场景。 4. RocketMQ RocketMQ是一个分布式的消息中间件,类似于Kafka,但性能更高、容易扩展,并且支持多种消息模式。RocketMQ具备高密度发布和订阅功能,并支持点对点和广播模式。 5. Seata Seata是一种分布式事务处理解决方案,可以管理跨多个微服务的分布式事务。Seata提供了可靠的数据一致性,并支持多种数据库存储引擎。 总之,Spring Cloud Alibaba提供了一组强大的云原生组件,帮助开发人员快速构建微服务应用并管理它们。这些组件提供了可靠的服务注册、发现、限流、熔断、消息管理、分布式事务等功能,使得开发人员能够专注于业务逻辑的实现。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值