# Spring Cloud Alibaba Learning **Repository Path**: tzj2015/spring-cloud-alibaba-learning ## Basic Information - **Project Name**: Spring Cloud Alibaba Learning - **Description**: 通过一个项目对 Spring Cloud Alibaba 生态组件学习 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2021-03-31 - **Last Updated**: 2021-12-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Spring Cloud Alibaba Learning ### Spring Cloud Alibaba & Spring Boot 版本选择 [Spring 官网](https://spring.io/projects/spring-cloud) - Spring Cloud: Hoxton.SR10 - Spring Boot: 2.3.0.RELEASE - Spring Cloud Alibaba 2.2.3.RELEASE ### 业务 #### user - 判端用户是否存在 [完成,待优化] - 注册用户 [完成,待优化] - 登陆用户 [完成,待优化] #### user address - 查看用户地址列表 [完成,待优化] - 添加地址 [完成,待优化] - 更新地址 [完成,待优化] - 删除地址 [完成,待优化] - 设置默认地址 [完成,待优化] #### item - 商品详情 [完成,待优化] - 获取商品评论信息 [完成,待优化] - 获取评论等级的数量 [完成,待优化] - 搜索商品 [完成,待优化] - 刷新购物车 (TODO 移至 cart 模块) #### order - 创建订单 [完成,待优化] [分布式事务完成,完成] [支付使用MQ优化,待优化] - 获取订单状态 [完成,待优化] #### cart - 添加商品到购物车 - 删除购物车商品 - 清空购物车 ### 资料 #### Nacos 注册中心、配置中心、服务治理 - [Nacos](/guide/Nacos.md) - [Nacos-Config](/guide/Nacos-Config.md) #### Gateway 网关 - 权限校验 - 统一入口 [已实现] - 限流熔断 - 路由转发 [已实现] - 负载均衡 [已实现] - 链路追踪 #### JWT(JSON Web Token) [待实现] - 无状态、去中心话,更适用分布式场景 ##### OAuth2 [待实现] - 是一套广泛流行的认证授权协议 - 协议中有两个核心的角色,认证服务器和资源服务器 - 资源服务器: gateway - 认证服务器: auth #### 分布式锁 [已实现, 待测试] - 基于数据库的分布式锁 - 基于Redis的Setnx实现分布式锁 - 使用 Redisson [当前使用] #### API接口幂等 [已实现, 待测试] - 核心思想:通过唯一业务单号保证幂等 - SELECT 操作:不会对业务数据有影响,天然幂等 - DELETE操作:第一次已经删除,第二次也不会有影响 - UPDATE操作:更新操作传入版本号,通过乐观锁实现幂等性 - INSERT操作:此时没有唯一业务单号,构建唯一业务单号的条件 - 混合操作:有唯一业务编号使用分布式锁,没有构建唯一业务单号的条件 > 该项目使用AOP(切面+注解)方式实现接口幂等 #### API 鉴权认证机制 [已实现, 待测试] - [参考百度智能云实现](https://cloud.baidu.com/doc/Reference/s/Njwvz1wot) - 该实现在gateway模块 #### Ribbon 负载均衡 #### Feign 微服务间调用 - 连接池 #### Sentinel 轻量级流量控制、熔断降级(容错) #### Seata 分布式事务解决方案 - 相关资料 - [Seata Server 搭建](/guide/Seata-Server.md) - [Seata 整合到项目](/guide/Seata-Cloud.md) - [Seata 使用过程问题总结](/guide/Seata-Issues.md) #### 微服务打包 - [微服务打包](/guide/Build-Deployment.md)