4-1 你们项目是如何部署XXL-JOB的
XXL-JOB是一种定时任务,主要用于分布式系统。
首先,参考官方文档搭建基础环境。
然后,在本地配置调度中心的名字和执行器的端口并且在定期任务上使用@xxljob注解指定工作处理器的名字。
其次,打开调度中心的网址,创建调度中心连接执行器,要和本地配置一致
最后,创建任务,任务中jobhandle和@xxljob指定的名字一致。
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 项目过程有没有难题(业绩)
写项目不是一蹴而就的,我在项目自然碰到过难题。
我最开始写评论点赞功能时使用的MySql,写完后发现,实现完功能后,发现简单的功能却需要对数据库读写4次,在高并发时,数据库完全承受不住压力,于是加入了缓存redis,完成后,已经完全不需要数据库了,数据库也就自然没有压力了。