4-1 你们项目是如何是XXL-JOB的
XXL-JOB主要用于分布式系统中的任务调度和执行。它主要有两个核心部分,任务调度中心,代码执行器,可以方便地管理和调度分布式系统中的定时任务,:
使用xxl-job主要有以下几个步骤:
配置 XXL-JOB 执行器:在项目的配置文件,添加 XXL-JOB 执行器的配置,包括执行器的地址、端口、注册名称等。
编写定时任务方法:在你的 Spring Boot 项目中,编写需要定时执行的任务方法,并使用 XXL-JOB 提供的@xxlJob注解来标记此方法。
配置 XXL-JOB 客户端调度:在 XXL-JOB 的管理后台上,配置调度中心,创建任务,并配置任务的调度策略、触发器等。将任务绑定到指定的执行器。配置完成后,XXL-JOB 将会自动向执行器发送任务请求,并按照配置的调度策略执行任务。
以上就是使用xxl-job的详细步骤
4-2 说一说你的评论点赞功能是如何完成(reids版本)
评论点赞功能在我的项目中是一个独立的通用的微服务。
首先,先判断点赞记录是否存在 如果存在,就用向redis(set类型)中保存业务id(key)和用户id(value),返回的结果是redis中数据变更的数量,如果数量为null或0,就说明给用户点过了,不能再点了,结束流程,大于0,说明没点过,点赞成功。
如果不存在,直接根据业务id和用户id删除即可。返回的结果是redis中数据变更的数量,如果数量为null或0,删除失败,结束流程。大于0则删除成功。
然后,根据业务id获取redis中点赞的数量,如果这个数量是null就设置成0,然后把业务类型做key,业务id做value,数量为score向redis(zset)中保存。
最后通过XXL-JOB定时任务,向MQ投递消息(业务id,点赞数量)。哪个微服务需要用到,就用程序监听MQ,消费消息。
以上就是完成点赞功能的步骤了
4-3 项目过程有没有难题(业绩)
因为点赞业务既有高并发读操作,也有高并发写操作。
我们可以使用redis来结果这种问题,由于一个业务可以被很多用户点赞,显然是需要一个Redis集合Set来记录。点赞次数需要记录业务类型,业务id,点赞数,这三个字段我们可以用Redis中的Hash或者是ZSet来储存这三个字段,
这样既可以减轻数据库的负担又能加速数据的访问还解决这两个问题,