OpenCoder2023年10月19日
112阅读
所属分类高可用、秒杀、微服务架构、电商 PC网站

作品详情

公司在 IT 教育行业十余年,需要打造一款在线 IT 学习综合云平台,让用户节约时间、金钱成 本,摆脱地域和时间的限制,自由享受 IT 课程学习的服务。用户能在云平台学习免费课程, 也可以根据自己需求选择专业课程,付费后学习。用户也能通过论坛版块分享和查看自己及 其它用户的提问与文章。项目包括录播课程,直播课程,体系课,线下培训等业务。后续考 虑接入招聘企业和贷款平台,所以还有职位招聘业务,贷款业务。

项目采用 SpringCloudAlibaba 技术栈,采用前后端分离架构,主要技术如下:
1. SpringCloud/Alibaba(Nacos,Gateway,Feign,Sentinel,Seluth,Zipkin)、MyBatisPlus、SpringBoot、
SpringMVC
2. 数据存储:Mysql、Redis、Alicoud OSS、ElasticSearch、RocketMQ
3. 运维方面:Docker、Jenkins、K8S 等

我的职责:
1. 基于 SpringCloudAlibaba 微服务栈完成项目基础架构工作。
2. 基础组件的集成和统一 API 编写,如:Redis,RocketMQ,ElasticSearch 等等。
3. 基于 Spring Cloud Oauth2 + JWT 完成项目的认证授权,实现多端单点登录。
4. 使用@RestControllerAdvice+@ExceptionHandler 完成异常统一处理。
5. 集成 Seata 完成注册业务中的多数据库的事务操作,基于 Redis 实现分布式锁。
6. 缓存设计,整合 SpirngCache 注解快速缓存热点数据,如:系统配置,权限数据等。
7. 对接 OSS 服务器签名客户端直传完成文件上传,大文件进行分片上传。
8. 使用 ffmeg 结合 MQ 实现视频异步推流,搭建 HLS 服务器,完成视频断点续播。
9. 基于 ElasticSearch 服务器完成课程发布上线,以及门户端的课程全文检索,高亮,聚合。
10. 搭建统一消息系统,基于 RocketMQ 完成消息的异步推送。
11. 订单系统设计,下单逻辑中使用 RocketMQ 异步消息推送站内信和创建支付单。
12. 使用 RocketMQ 延迟消息处理支付超时关单,同时调用支付网关关单。
13. 对接支付网关完成订单支付,使用 RocketMQ 事务消息进行支付结果处理和业务处理
14. 数据库优化,索引优化,后期考虑接入 ShardingJDBC 实现主从&分库分表
15. 秒杀系统设计:独立的秒杀服务,使用 SpringBoot 定时任务定时发布近 2 天预秒杀课
程到 Redis,秒杀数量使用 Redisson 信号量缓存 Redis 可防止超卖
16. 秒杀逻辑,基于 Redis 秒杀,秒杀成功把“预创订单”数据写入 Redis 返回单号给前端
17. 前端确认订单,订单服务从 Redis 取出“预创订单”写入订单数据库,订单流程和支付
流程使用普通购买的流程差不多
18. 秒杀下单超时,支付超时都使用 RocketMQ 延迟消息关单
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论