- 博客(9)
- 收藏
- 关注
原创 day08
在分布式系统中,我们不能让每个实例去使用各自的JVM内部锁监视器,而是应该在多个实例外部寻找一个锁监视器,多个实例争抢同一把锁。这个分布式锁是基于Redis的setnx命令实现的,只有Redis中不存在某个key时setnx命令才能成功,否则失败,通过这个特点就可实现简单的分布式锁。之后,Redisson会通过watchdog(看门狗)机制每隔10s监视当前客户端是否持有锁,如果继续持有,则延长生存时间。首先,根据订单查询可用优惠方案,主要判断订单是否符合优惠的条件,例如满减门槛或者是否适用优惠卷的分类。
2024-01-25 08:51:51 313
原创 day07
4、事务异常类型不对: Spring的事务管理默认感知的异常类型是RuntimeException,当我们的业务中会抛出RuntimeException以外的异常时,应该通过@Transactional注解中的rollbackFor属性来指定异常类型。1、事务方法非public修饰:由于Spring的事务是基于AOP的方式结合动态代理来实现的。如果是指定发放,是要用兑换码实现的,要考虑兑换码的生成;1、优惠券生成:在后台系统中,管理端可以创建各种类型的优惠券,例如满减券、折扣券、无门槛券等。
2024-01-23 17:25:46 356 1
原创 day06
在这个工程中,由于是每月操作,因此,我们使用的是XXL-JOB定时任务来执行的,另外,由于历史榜单较多,我们使用的是分库分表策略,每个赛季记录分为一张表。在实时榜单中,我们需要频繁的数据进行操作,因此我们使用redis的zset进行储存数据,在用户获得积分后,同步写入到redis中,用户的积分就是zest集合中的分数,按照分数进行排名。XXL-JOB分为三个任务,首先,执行创建上个月的数据表,成功后,读取Redis数据,写入MySQL数据库,最后,清空Redis中的缓存。最后,清空Redis中的缓存。
2024-01-23 17:24:16 298 1
原创 day05
bitmap是Redis中提供的一种数据结构,底层是以二进制为单位进行储存的,bitmap是基于字符串类型实现的,因此它可以进行基本的字符串操作,比如分片存储、持久化和备份,bitmap通常用于实现一些特定的应用场景,例如在线统计、用户在线状态的记录、布隆过滤器等。在其他四个方式获取积分中,为了防止有人恶意刷分,我们设置了每天通过该方式获得的积分上限,获得够一定积分后,便不能通过此类方式获取。在签到获取中,我们有连续签到奖励机制,连续签到次数越多,奖励的积分越多。我们项目中积分功能是在学习微服务下的。
2024-01-19 08:34:29 343 1
原创 day03
3-2 详细说一下你们的问答系统用到了几张表,表中的主要字段有哪些,表关系是什么。3-3 你们为什么用Mongo, 而不用MySQL存储问题和评论。3-1 你们的项目是如何进行参数校验的。
2024-01-18 21:21:43 316
原创 day01
首先接收前端传入的账号和密码,去数据库里面进行比对,因为数据库密码是加密的,所以在比对之前还要对前端传入的密码进行加密;用户后面访问系统的时候需要携带这个token,我们只需在后端写一个拦截器,用于拦截请求验证token,验证通过则放行,否则禁止通行,并且返回提示。然后在保存文章信息的同时,我们异步调用文章审核功能,我们使用阿里云服务对文章内容和图片进行审核,当我们审核完成之后使用feign来调用调用文章微服务,进行文章的新增或者修改,最后,在对应的微服务的service层,打上断点,寻找报错代码。
2024-01-18 21:17:21 399
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人