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

作品详情

公司在 IT 教育行业十余年,需要打造一款在线 IT 学习综合云平台,让用户节约时间、金钱成 本,摆脱地域和时间的限制,自由享受 IT 课程学习的服务。用户能在云平台学习免费课程, 也可以根据自己需求选择专业课程,付费后学习。用户也能通过论坛版块分享和查看自己及 其它用户的提问与文章。项目包括录播课程,直播课程,体系课,线下培训等业务。后续考 虑接入招聘企业和贷款平台,所以还有职位招聘业务,贷款业务。项目采用 SpringCloudAlibaba 技术栈,采用前后端分离架构,主要技术如下:1. SpringCloud/Alibaba(Nacos,Gateway,Feign,Sentinel,Seluth,Zipkin)、MyBatisPlus、SpringBoot、SpringMVC2. 数据存储:Mysql、Redis、Alicoud OSS、ElasticSearch、RocketMQ3. 运维方面: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
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论