SpringCloudAlibaba入门

SpringCloudAlibaba入门

一、SpringCloudAlibaba的认识
1.1 SpringCloudAlibaba出现的原因

​ SpringCloud Netflix是SpringCloud微服务框架的第一代实现,它的所有组件几乎都在Netflix产品上做的封装。而且,SpringCloud Netflix项目已经入维护状态。进入维护状态,意味着Netfli相关部门不再向模块添加新功能,而且不再处理相关Bug异常。为了使用高性能的微服务框架,急需开发SpringCloud Netflix的替代品,Alibaba基于公司业务开发了SpringCloudAlibaba微服务框架,是一次能力的增强和扩展,是SpringCloud的第二代实现。

1.2 SpringCloudAlibaba的架构与特点

​ SpringCloudAlibaba的典型架构如下图所示:

在这里插入图片描述

​ SpringCloudAlibaba包含GateWay(高性能异步非阻塞网关)、Nacos(注册中心与配置中心)、Sentinel(熔断与降级组件)、Dubbo(高性能RPC通信框架)、Seata(高性能和简单易用的分布式事务服务)、RocketMQ(高性能高可靠消息中间件)等。前段基于Nginx负载均衡策略进行域名解析,后端服务基于Ribbon做负载均衡。

​ 特点:

  • 主体框架:采用最新的 Spring Cloud Hoxton SR8, Spring Boot 2.3.7.RELEASE, Spring Cloud Alibaba 2.2.3.RELEASE 版本进行系统设计;
  • 统一注册:支持 nacos 作为注册中心,实现多配置、分群组、分命名空间、多业务模块的注册和发现功能;
  • 统一认证:统一 Oauth2 认证协议,采用 jwt 的方式,实现统一认证,并支持自定义 grant_type 实现手机号码登录,第三方登录正在开发中;
  • 业务监控:利用 Spring Boot Admin 来监控各个独立 Service 的运行状态;利用 Hystrix Dashboard 来实时查看接口的运行状态和调用频率等。
  • 内部调用:集成了 feign 和 dubbo 两种模式支持内部调用,并且可以实现无缝切换,适合新老程序员,快速熟悉项目;
  • 业务熔断:采用 Sentinel 实现业务熔断处理,避免服务之间出现雪崩;
  • 身份注入:通过注解的方式,实现用户登录信息的快速注入;
  • 在线文档:通过接入 knife4j,实现在线 API 文档的查看与调试;
  • 代码生成:基于 Mybatis-plus-generator 自动生成代码,提升开发效率,生成模式不断优化中,暂不支持前端代码生成;
  • 消息中心:集成消息中间件 RocketMQ,对业务进行异步处理;
  • 业务分离:采用前后端分离的框架设计,前端采用 vue-element-admin
  • 链路追踪:自定义 traceId 的方式,实现简单的链路追踪功能
  • 多租户功能:集成 Mybatis Plus, 实现 saas 多租户功能
二、SpringCloudAlibaba组件
2.1 Nacos

​ Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,主要的功能有注册中心和配置中心。Nacos可以同时作为注册中心和配置中心,默认情况注册中心采用Distro协议(AP),配置中心采用Raft(CP)。Nacos client可以通过ephemeral属性设置节点为临时节点或持久节点,临时节点对应了Distro协议,持久节点对应Raft协议。它的使用,大概如下图所示:

在这里插入图片描述

2.2 Sentinel

​ Sentinel是对SpringCloud Netflix 的Hystrix组件的进一步的优化,大多数是参照Hystrix的核心理念设计的。 Sentinel 以阿里巴巴集团近 10 年的双十一大促流量的核心场景为基础,能够实现消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。Sentinel 同时还提供实时的监控功能。在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。它还具有广泛的开源生态, Sentinel 提供开箱即用的与其它开源框架/库的整合模块,引入依赖即可使用,它的功能如下图所示:

在这里插入图片描述

2.3 Openfeign

​ OpenFeign是一个显示声明式的WebService客户端。使用OpenFeign能让编写Web Service客户端更加简单。使用时只需定义服务接口,然后在上面添加注解。
SpringCloud对Feign进行了封装,支持MVC注解和HttpMessageConverts。在Spring Cloud中使用OpenFeign,可以做到使用HTTP请求访问远程服务,就像调用本地方法一样方便。
​ Feign和OpenFeign作用一样,都是进行远程调用的组件。里面都内置了Ribbon。都是加在消费端的注解,让消费端可以调用其他生产者的服务。它们使用方式不同,Feign直接加在接口上并且不支持SpringBoot注解。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值