论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
大数据
›
数据仓库与分析
›
基于redis加rabbitmq的简单点赞系统的筹划与优化 ...
基于redis加rabbitmq的简单点赞系统的筹划与优化
不到断气不罢休
论坛元老
|
2025-3-31 15:16:39
|
显示全部楼层
|
阅读模式
楼主
主题
1765
|
帖子
1765
|
积分
5295
配景
点赞是当今互联网项目使用率非常高的一个业务场景,主要用于用户给内容点赞或者对其他人的评论点赞。通过统计点赞数目,可以筛选出热门内容,供用户高效的获取有价值的信息,提高系统的活跃度。所以,实现一个高效,安全,通用的点赞系统对系统的完整性有很大资助。
筹划头脑
首先,点赞系统要为系统的差别部分所服务,为了降低系统的耦合度,要将其筹划成一个独立的服务,一个完整的点赞系统要具备以下四种特性:
通用:点赞业务在筹划的时候不要与业务系统耦合,必须同时支持差别业务的点赞功能
独立:点赞功能是独立系统,并且不依赖别的服务,如许才具备可迁移性
并发:一些热点业务点赞会很多,所以点赞功能必须支持高并发
安全:要做好并发安全控制,制止重复点赞
其次,筹划合适的数据表,表中的字段包罗点赞的业务id,用户id,业务类型,在业务表中加点赞数目的字段。
技能选型
mysql:生存点赞记载的信息;
rabbitmq:当用户点赞或者取消点赞之后,异步的投递点赞消息给具体的业务,目的是解耦合。
实现思路
由于点赞有点击和取消两种状态,所以要做好幂等性校验,制止一个用户由于网路延长等标题对同一个业务多次点赞。对于点赞,首先查询数据库中是否存在该条点赞记载,有的话直接停止,没有就新增点赞记载。对于取消,直接删除数据库中对应的记载。然后统计该业务的点赞数目投递到mq中
然后在差别的服务中,监听mq,更新点赞次数。
用户在欣赏内容时,需要对自身点赞的内容进行高亮提示。该业务也是需要在点赞服务中实现,对于传入的一组业务聚集,要查询当前用户点赞过的业务并返回,并袒露接口供其他服务调用。
性能优化
以上就是一个点赞系同一个基础的实现方式,分析一下,进行一个点赞或取消使用时,需要访问多次数据库,如果用户访问量过大,会造成数据库访问量激增,对数据库的性能造成影响。
常用的优化方案就是添加缓存并使用异步读写,我所采用的就是redis缓存和xxljob定期读取数据的方案,下面先容一下实现思路。
首先,在实现点赞的新增和取消时,采用了redis中的set聚集,他是一个无序,内部元素不重复的聚集,类似java中的HashSet。由于一个业务可以被多个用户点赞,所以将业务id设为key,将用户id设为value,可以轻松的实现对新插入的元素是否重复的校验并去重。添加点赞记载时,只需要判断返回值,1表示点赞成功,0表示已有记载,直接结束。取消点赞就是删除对应的value。对于点赞的次数,就是获取set聚集的长度。
在统计差别业务的点赞次数时,我使用的redis中的zset,他是有序的set聚集,使用scoce对聚集中的元素进行排序。使用这个数据结构,可以轻松的统计差别业务对应的点赞次数,并给出排序。
最后,使用xxljob定期从缓存中获取业务的点赞数目,并投递给mq。xxljob他是一个优秀的定时任务框架,广泛的用于分布式系统的定时任务实现。在读取成功之后,要及时的将缓存中的key删除,淘汰内存的占用,保证消息的时效性。
通过以上几点优化,有效的淘汰了对数据库的使用次数,降低了系统的压力,大大提高了系统的响应速率。
以上就是我筹划的一个简单的点赞系统的解决方案,当然,还存在大量的优化空间,欢迎各位讨论。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
不到断气不罢休
论坛元老
这个人很懒什么都没写!
楼主热帖
Spark的一些重要概念
手绘地图深度解析:类型、风格、功能、 ...
从SAP ECC升级到SAP S4HANA, 几个Key P ...
数据库设计员工管理系统
【Redis高手修炼之路】初学Redis——概 ...
MySQL触发器
从API到Agent:万字长文洞悉LangChain ...
【高效学数据库】第一范式、第二范式、 ...
19.HVV溯源
物联网无线数传通信模块设备常见的几种 ...
标签云
国产数据库
集成商
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表