加入收藏 | 设为首页 | 会员中心 | 我要投稿 保山站长网 (https://www.0875zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

架构的四大金刚利器

发布时间:2021-03-12 15:18:38 所属栏目:评论 来源:互联网
导读:缓存 缓存的使用可以说无处不在,从应用请求的访问路径来看,用户 user - 浏览器缓存 - 反向代理缓存- WEB服务器缓存 - 应用程序缓存 - 数据库缓存等,几乎每条链路都充斥着缓存的使用,缓存最直白的解释就是用空间换时间的算法。缓存就是把一些数据暂时存放

缓存

缓存的使用可以说无处不在,从应用请求的访问路径来看,用户 user -> 浏览器缓存 -> 反向代理缓存-> WEB服务器缓存 -> 应用程序缓存 -> 数据库缓存等,几乎每条链路都充斥着缓存的使用,缓存最直白的解释就是“用空间换时间”的算法。缓存就是把一些数据暂时存放于某些地方,可能是内存,也有可能硬盘。总之,目的就是为了避免某些耗时的操作。我们常见的耗时的操作,比如数据库的查询、一些数据的计算结果,或者是为了减轻服务器的压力。其实减轻压力也是因查询或计算,虽然短耗时,但操作很频繁,累加起来也很长,造成严重排队等情况,服务器抗不住。

distributed-tools 组件提供了一个 CacheEngine 接口,基于 Tair、Redis 分别有不同的实现,具体 CacheEngine 定义如下:
 

et 方法针对 key 进行查询, put 存储缓存数据, invalid 删除缓存数据。

限流

在分布式系统中,尤其面对一些秒杀、瞬时高并发场景,都需要进行一些限流措施,保证系统的高可用。通常来说限流的目的是通过对并发访问/请求进行限速,或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以 拒绝服务(定向到错误页或告知资源没有了)、排队 或 等待(比如秒杀、评论、下单)、降级(返回托底数据或默认数据,如商品详情页库存默认有货)。

常见的一些限流算法包括固定窗口、滑动窗口、漏桶、令牌桶,distributed-tools 组件目前基于计数器只实现了固定窗口算法,具体使用方式如下:

(编辑:保山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读