4-1 你们项目是如何部署XXL-JOB的
XXL-JOB是一种定时任务,主要用于分布式系统。
首先,参考官方文档搭建基础环境。
然后,在本地配置调度中心的名字和执行器的端口并且在定期任务上使用@xxljob注解指定工作处理器的名字。
其次,打开调度中心的网址,创建调度中心连接执行器,要和本地配置一致
最后,创建任务,任务中jobhandle和@xxljob指定的名字一致。
4-2 说一说你的评论点赞功能是如何完成(reids版本)
评论点赞主要涉及到两个微服务,分别是点赞微服务和学习微服务。
每一条恢复评论的点赞信息作为一条记录存储Redis中。将回复评论的 ID 作为键,点赞用户的 ID 列表作为值。每个用户的点赞记录用Redis的Set类型存储起来。
首先在用户点击点赞按钮时,首先从 Redis 中获取该评论的点赞用户列表,判断用户是否已经点赞。如果用户已经点赞,则取消点赞;如果用户未点赞,则执行点赞操作。
如果用户未点赞,将用户的 ID 添加到评论的点赞用户列表中,并在用户的点赞列表中添加评论的 ID。同时,更新点赞计数。
如果用户已经点赞,将用户的 ID 从评论的点赞用户列表中移除,并在用户的点赞列表中移除评论的 ID。同时,统计更新点赞数量;
其次以业务类型作为键,评论id作为值,点赞数量作为分数缓存到Redis的ZSet结构中。
最后通过xxl-job定期读取缓存中的点赞数量,向MQ投递消息;学习微服务通过监听MQ,更新点赞数量,避免了对数据库的频繁查询。
以上就是我的点赞功能的实现步骤。
4-3 项目过程有没有难题(业绩)
刚开始在项目中对于点赞信息的存储是通过MySQL实现的,但是写完发现要多次对数据库进行读写操作,所有使用Redis存储点赞信息对其优化;
通过 Redis 存储点赞信息,可以高效地实现评论点赞功能,避免了频繁的数据库读写操作,提升了系统性能。当用户进行点赞或取消点赞操作时,只需更新 Redis 中的相关数据即可。这种方式还能够方便地支持计数、用户点赞列表等功能。当然,在实际应用中,还需要考虑并发控制、缓存过期等问题。