积分系统是如何设计的

一、新增积分

用户签到、学习、参与互动问答、提交学习笔记等行为都可以产生积分,并基于积分形成排行榜。积分当月有效,月底清零。

由积分规则可知,获取积分的行为多种多样,而且每一种行为都有自己的独立业务。而这些行为产生的时候需要保存一条积分明细到数据库。

我们显然不能要求其它业务的开发者在开发时帮我们新增一条积分记录,这样会导致原有业务与积分业务耦合。

因此必须采用异步方式,将原有业务与积分业务解耦。如果有必要,甚至可以将积分业务抽离,作为独立微服务。

要实现服务之间的解耦,可以使用MQ,实现流程如下:

当完成某个业务新增积分后,用户积分发生变化,我们就发送MQ通知

在RabbitMQ中,结合不同的RoutingKey,发送消息到不同的队列中,然后我们编写不同的消息监听器,让不同的业务方监听不同的RoutingKey,并进行消费(积分的新增)。

二、查询积分

在个人中心,用户可以查看当天各种不同类型的已获得的积分和积分上限:

可以看到,页面需要的数据:

• 积分类型描述

• 今日已获取积分值

• 积分上限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值