常用业务流程梳理Day4

本文介绍了如何在项目中使用XXL-JOB进行分布式任务调度,并详细阐述了使用Redis实现低耦合的评论点赞功能,包括Redis存储、并发控制和性能优化策略。
摘要由CSDN通过智能技术生成

4-1 你们项目是如何使用XXL-JOB的

        xxl-job 是一个分布式任务调度框架,用于解决任务的定时调度和分布式任务执行的问题。使用xxl-job需要业务逻辑代码和配置任务调度中心两部分;主要有以下几个步骤:

1、在项目中先导入相关xxl-job的依赖;

2、在项目的配置文件中配置xxl-job调度中心地址等相关配置信息

3、编写配置类
4、在调度中心的执行器管理中新增执行器

5、配置自定义任务,给方法上添加注解@XxLJob(value="自定义JobHandler名称")完成定义
6、去调度中心的任务管理中新增任务

4-2 说一说你的评论点赞功能是如何完成(reids版本)

由于业务方的类型很多,比如互动问答、笔记、课程等,所以通知方式必须是低耦合的,这里建议使用MQ来实现。

当点赞或取消点赞后,点赞数发生变化,我们就发送MQ通知。整体业务流程如图:

        评论点赞主要涉及到两个微服务,分别是点赞微服务和学习微服务。

每一条恢复评论的点赞信息作为一条记录存储Redis中。将回复评论的 ID 作为键,点赞用户的 ID 列表作为值。每个用户的点赞记录用Redis的Set类型存储起来。

        首先在用户点击点赞按钮时,首先从 Redis 中获取该评论的点赞用户列表,判断用户是否已经点赞。如果用户已经点赞,则取消点赞;如果用户未点赞,则执行点赞操作。

        如果用户未点赞,将用户的 ID 添加到评论的点赞用户列表中,并在用户的点赞列表中添加评论的 ID。同时,更新点赞计数。

        如果用户已经点赞,将用户的 ID 从评论的点赞用户列表中移除,并在用户的点赞列表中移除评论的 ID。同时,统计更新点赞数量;

        其次以业务类型作为键,评论id作为值,点赞数量作为分数缓存到Redis的ZSet结构中。

        最后通过xxl-job定期读取缓存中的点赞数量,向MQ投递消息;学习微服务通过监听MQ,更新点赞数量,避免了对数据库的频繁查询。

        以上就是我的点赞功能的实现步骤。

4-3 项目过程有没有难题(业绩)

        刚开始在项目中对于点赞信息的存储是通过MySQL实现的,但是写完发现要多次对数据库进行读写操作,所有使用Redis存储点赞信息对其优化;

        通过 Redis 存储点赞信息,可以高效地实现评论点赞功能,避免了频繁的数据库读写操作,提升了系统性能。当用户进行点赞或取消点赞操作时,只需更新 Redis 中的相关数据即可。这种方式还能够方便地支持计数、用户点赞列表等功能。当然,在实际应用中,还需要考虑并发控制、缓存过期等问题。   

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值