GaryLee's Blog
12
05
如何设计一个站内消息系统? 如何设计一个站内消息系统?
一、什么是站内消息系统?如图所示,以微博为例,这些评论、点赞等消息加起来就叫做站内消息系统。 站内消息系统大概有以下几项内容: 系统消息:如系统下发的一些公共信息等都叫做系统消息,即系统发给用户的消息 行为消息:如评论、点赞等互动行为产生
2023-12-05
05
如何设计一个动态Feed流系统? 如何设计一个动态Feed流系统?
一、什么是Feed流?Feed流就是能够实时/智能推送消息的数据流,如微博、朋友圈、动态等都属于Feed流。 Feed流有几个重要的概念: Feed:每一条消息都是一个Feed,如微博中的每一条微博等 Feed流:多个Feed组成一个Fe
2023-12-05
04
如何设计一个短链系统? 如何设计一个短链系统?
一、什么是短链系统?短链指的是短的链接,对应的有长链。比如: 长链:https://time.geekbang.org/column/intro/100020801 短链:http://gk.link/a/10q2I 为什么要有短链呢?
2023-12-04
04
什么是JWT? 什么是JWT?
一、背景在介绍JWT前,我们先了解一下Cookie、Session和Token,这几个概念我们会比较熟悉,它们是用于Web应用程序中管理用户状态和身份状态的技术。因为在Web应用程序中,Http的通信是无状态的,每个请求都是独立的,所以服务
2023-12-04
02
什么是时间轮算法? 什么是时间轮算法?
一、什么是时间轮算法?时间轮算法是一种用于处理定时任务和调度的常用算法。 时间轮算法的组成有: 时间轮 时间槽:一个时间轮对应多个时间槽,时间槽还可以分为秒级时间槽、分钟级时间槽、小时级时间槽等 二、时间轮算法怎么实现?如下图所示,一个
2023-12-02
02
在Java中如何实现定时任务? 在Java中如何实现定时任务?
一、定时任务是什么?有什么用?定时任务可以帮助我们在某个时间点触发某个动作,如凌晨0点要结算榜单、晚上8点要下发用户PUSH等。 总结一下在实际开发中定时任务的几个使用场景: 定时同步数据/刷新缓存:比如活动配置等不需要数据强一致性的场景
2023-12-02
11
30
28
排行榜的最佳实践 排行榜的最佳实践
一、排行榜的最佳实践1、实现方式一般情况下,排行榜可以通过MySQL或者Redis来做实现,但在特定场景下也可以用大数据来做数据支持,那么不同实现方式有什么区别呢?: 排序方式 优点 缺点 适用场景 MySQL order b
2023-11-28
27
如何进行分库分表?会带来什么问题? 如何进行分库分表?会带来什么问题?
一、为什么要进行分库分表?分库分表的目的是为了解决单表过大、单库表过多的问题,具体可参考文章(《如何进行SQL调优?》) 二、什么情况下需要进行分库分表?以下几种情况可以考虑分库分表: 单表数据量达到千万级别(读写性能差) 数据库中内存占
2023-11-27
27
27
22
1 / 15