点赞模块逐字稿

首先分析整理一下点赞业务的需求,一个通用点赞系统需要满足下列特性:

  • 通用:点赞业务在设计的时候不要与业务系统耦合,必须同时支持不同业务的点赞功能

  • 独立:点赞功能是独立系统,并且不依赖其它服务,这样才具备可迁移性

  • 并发:一些热点业务点赞会很多,所以点赞功能必须支持高并发

  • 安全:要做好并发安全控制,避免重复点赞

要保证安全,避免重复点赞,就必须保存每一次点赞记录,只有这样在下次用户点赞时才能查询数据,判断是否是重复点赞。

同时,因为业务方经常需要根据点赞数量排序,因此每个业务的点赞数量也需要记录下来。

表结构分为点赞记录,与业务关联的点赞数

新增点赞
 

  • 用户不能重复点赞

  • 点赞就新增一条点赞记录,取消点赞就删除记录

  • 点赞数由具体的业务方保存,需要通知业务方更新点赞数

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

其实在实现提交学习记录的时候,分析过高并发问题的处理方案。点赞业务既有高并发读操作,也有高并发写操作。

高并发读的优化:1. 优化SQL和代码 2. 添加缓存

高并发写的优化:1. 优化SQL和代码 2. 变同步写为异步写 3. 合并写请求

最终点赞业务流程变成这样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值