项目逐字稿

文章详细描述了一个在线教育项目的流程,涉及用户注册、兴趣选择、课程推荐、购买、优惠券管理、视频上传与安全管理、搜索功能以及高并发优惠券处理。特别强调了项目中的13个微服务及其职责,如视频管理、支付、搜索等,并提到了关键技术和策略,如ElasticSearch搜索、流量控制和乐观锁库存管理。
摘要由CSDN通过智能技术生成

论述一下你项目的主题流程:

        首先用户在前端发起注册或登录请求,初次注册登录成功后选择兴趣爱好,在选择之后会有课程进行推荐,用户再查看视频课程介绍决定是否购买课程,否的话先加入购物车,是的话进行下单操作,然后再判断是否有可以使用的优惠券,有,则领取优惠券再进行支付,若没有则直接走支付功能,然后会将用户购买的课程加入课程表,结束;

项目中有多少个微服务?

项目中总共有13个微服务,分别是共同调用微服务、api微服务、网关微服务、权限微服务、点赞微服务、用户微服务、短信微服务、优惠微服务、健身课程微服务、支付微服务、用户观看微服务(其中有评论回复功能)、数据微服务、搜索微服务等;我负责的模块主要是视频管理微服务、课程学习微服务优惠券模块,搜索模块和用户模块;

视频管理微服务的功能,其中有几张表、分别有什么字段?

课程微服务主要是用来对视频的上传,分类的功能,为用户提供视频教程服务;

在管理端负责视频的上传将其上传到对应的分类中,对于上传的时候,我们采用断点续传的方式,保证视频可以正常上传,采用IO流来实现视频的分块上传、下载等;解决因为网络问题而导致的视频的反复重新上传,对于视频的安全性方面,我们采用了nginx中存入一个lua脚本代码,来反向代理我们视频文件的url地址,防止我们的视频呗别人恶意爬取;

视频课程微服务中有三张表:课程分类表、草稿课程表、课程内容表;

课程分类表中的字段有:课程id,分类名称、课程分类的状态(正常、禁用)、创建时间、更新时间、创建人、更新人;

草稿课程是用来存放上传视频的草稿的,分别有课程草稿id,课程名称、课程的售卖方式、课程的价格、课程状态(待上架、已上架、下架)、课程购买有效期开始时间、课程购买有效期、课程的评分、课程的时长、创建时间、更新时间、创建人、更新人;

课程内容:课程内容id,课程的介绍、适合人群、创建时间、创建人、更新时间、更新人。

优惠券模块:

营销模块主要有五张表:优惠券的规则信息表、优惠券的作用范围表、兑换码表、促销活动表、用户领券的记录表;

优惠券的规则信息表有:优惠券id,优惠券的名称、优惠券的名称、优惠券的类型、折扣类型、是否限定作用的范围、折扣力度(几折或者满多少减多少)、使用门槛、最高优惠金额、获取的方式(手动直接领取,兑换码兑换)、开始发放时间、结束发放时间、优惠券有效天数、优惠券有效期的开始时间,总数量、已发放的数量,已使用的数量、没人限领的数量、创建时间、更新时间、创建人、更新人;

优惠券的作用范围:优惠券的作用范围id、范围限定类型、优惠券的id、优惠券作用范围的业务id;

促销活动促销活动id、活动名称、促销活动类型、活动开始时间、活动结束时间、创建时间,更新时间,创建人,更新人;

兑换码表:兑换码id、兑换码、兑换码的状态(待兑换,已兑换,兑换活动已结束)、兑换人创建时间、兑换码过期时间、更新时间;

用户领取优惠券的记录:用户券id,优惠券模板id,优惠券有效期开始时间、优惠券有效期结束时间、优惠券使用时间、优惠券状态、创建时间、更新时间;

优惠券功能,主要就是并发量比较高,所以说我们在接受到请求后是先放入到MQ中,实现了流量削峰,排队处理,然后需要保住优惠券的库存不出现超领的情况,我们使用的是乐观锁实现的,其实也就是在更新时加一个条件,需要当前已发放的优惠券数量小于优惠券总数量,就可以实现不超卖。

搜索模块:

用户在APP端点击搜索框,输入查询内容,点击搜索的时候,请求发送到nginx,nginx反向代理到网关,网关找视频课程微服务,视频课程微服务使用了ES实现关键字搜索功能,先将用户输入的文本根据分词器进行分词,然后根据课程的标题或关键字做为条件进行查询,寻找匹配的词条,之后把响应结果返回到前端展示。

用户在APP端点击搜索框并输入查询内容,然后点击搜索。

APP会把搜索请求发送到Nginx服务器,Nginx服务器会根据配置的反向代理规则把请求转发给网关。

网关接收到请求后会根据请求中的URL路径和HTTP方法,把请求转发给微服务。

视频课程微服务接收到请求后,会使用ElasticSearch进行关键字搜索,并获取匹配的结果。

视频课程微服务会把搜索结果返回给网关。

网关把响应结果返回给Nginx服务器。

Nginx服务器将响应结果返回给用户,页面展示搜索结果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值