业务题
介绍项目业务
IT_Rocter
这个作者很懒,什么都没留下…
展开
-
第七天业务题
2、使用CAS乐观锁,更新数据前判断数据与之前查询到的是否一致,不一致则其它线程更新过。本次操作放弃或重试。单人超领:单用户频繁点击领取,或者因为网络故障等情况发送了多次请求,导致查询的判断逻辑失效,而导致超领现象。锁的粒度大,性能差,在被锁定的代码又成为了单线程。多人超领:在多线程的情况下运行,同时操作了共享资源,且不具备原子性,从而产生了超领现象。解决方法:添加AspectJ依赖,用其代理对象调用事务方法。兑换码优惠券:是给指定用户发访的,用户需要用指定的兑换码领取。固定天数:优惠券领取后的有效时间。原创 2024-01-22 21:14:13 · 376 阅读 · 0 评论 -
第六天业务题
由于当前排行榜会根据月份变化,所以需要用到XXL-JOB的定时任务,自动创建mysql数据表,将redis中的数据同步到mysql中,最后删除redis中的数据,这三个步骤缺一不可,所以使用任务链,保证任务成功,这样当新的排行榜数据存入时,不会导致内存溢出。2.历史排行榜是本月之前的用户积分数据,它的访问频率并没有那么高,所以可以存入mysql中,由于数据量太大,所以进行集群分库分表操作,这样更方便删除过早之前的数据,还可以避免存入一个库中数据全部丢失的问题。6-3 请你说一说你的排行榜功能是如何实现的。原创 2024-01-22 14:32:13 · 424 阅读 · 0 评论 -
第五天业务题
在项目中签到功能,是需要计算连续签到天数,如果使用其他类型去计算的话效率较慢,以及对内存的存储而言是不好的,而使用bitmap类型通过0,1就可以表示是否签到,效率好,内存空间的使用更少。bitmap是Redis中的String类型里的一种类型,存储数据是以二进制(bit位)为单位进行存储的。比如此时有一个1到6的链表,我要找5这个数字,普通的链表是依次向后找出5,而跳表是在这个基础上又加了一层索引。被称为位图,可以用来表示大量的布尔值。保存积分的服务监听MQ队列中的消息,一旦有消息就进行积分的增加。原创 2024-01-18 21:56:21 · 424 阅读 · 0 评论 -
第三天业务题
此外,MongoDB的文档存储模型也能够更好地支持问答系统中的多级嵌套数据结构,比如问题和对应的回答、评论等,MongoDB还适合存储价值较低的信息(例如:评论),而Mysql适合存储的是对信息安全性有高要求的数据(例如:用户个人信息)。回答表:存储问题的回答/评论,主要字段可能包括回答ID、回答内容、回答者ID、问题ID、回答时间等。问题表和回答表之间是一对多的关系,一个问题可以有多个回答,但一个回答只能对应一个问题。我们的问答系统用到了三张表,分别是:用户表,问题表,回答/评论表。原创 2024-01-18 21:10:38 · 417 阅读 · 0 评论 -
第四天业务题
对于登录用户信息传递,是基于JWT实现登录的,获取当前登录用户,解析其中的token即可。原创 2024-01-18 16:06:55 · 338 阅读 · 0 评论 -
第二天业务题
首先根据课表的最近一次学习时间确定用户最近学习的一个课程,然后根据课表中的课程id调用课程微服务查询课程信息,再根据课表中的章节id调用课程微服务查询章节信息,最后封装结果返回给前端。用户购买/报名课程到交易模块,完成支付将订单ID、用户ID、课程id等消息发送到MQ,学习服务监听MQ消费消息,执行保存课表操作。根据需求分页查找课表,根据课程id集合收集课程信息转为map,遍历获取到每个课表,赋值。涉及到两个微服务:课表微服务,课程微服务。2-2 说一下查询课表的业务流程。原创 2024-01-14 21:41:47 · 334 阅读 · 0 评论 -
第一天业务题
首先,文章创作者点击发布请求后,先把文章内容保存到数据库,并将文章的状态修改为审核中,然后解析文章内容,分成文本,图片,视频等类型的内容,将文本存到数据库,将图片视频存到MinIO,然后调用第三方的内容审核工具,进行审核,若全部审核通过,会将文章直接发布,并将文章保存到ES,并制作前端静态化页面,如果审核不通过,先获取到不通过的原因,存到数据库并返回给文章创作者,如果需要人工二次审核,会由平台管理员判断是否通过,若不通过,同样返回不通过的原因,以上就是文章发布的流程。1-4 说一下文章发布的流程。原创 2024-01-12 22:38:23 · 504 阅读 · 0 评论