代码改变世界

随笔分类 -  中间件

StackExchange.Redis跑起来,为什么这么溜?

2024-05-27 08:29 by 萤火架构, 888 阅读, 收藏, 编辑
摘要: StackExchange.Redis跑起来,为什么这么溜? StackExchange.Redis 是一个高性能的 Redis 客户端库,主要用于 .NET 环境下与 Redis 服务器进行通信,大名鼎鼎的stackoverflow 网站就使用它。它使用异步编程模型,能够高效处理大量请求。支持 Redis 的绝大部分功能,包括发布/订阅、事务、Lua 脚本等。由 StackExchange 团队维护,质量和更新频率有保障。这篇文章就来给大家分享下 StackExchange.Redis 为什么玩的这么溜。 阅读全文

ASP.NET Core中使用漏桶算法限流

2021-12-11 11:35 by 萤火架构, 643 阅读, 收藏, 编辑
摘要: 漏桶算法是限流的四大主流算法之一,其应用场景各种资料中介绍的不多,一般都是说应用在网络流量控制中。 阅读全文

ASP.NET Core中使用滑动窗口限流

2021-12-10 07:34 by 萤火架构, 1596 阅读, 收藏, 编辑
摘要: 滑动窗口算法用于应对请求在时间周期中分布不均匀的情况,能够更精确的应对流量变化,比较著名的应用场景就是TCP协议的流量控制,不过今天要说的是服务限流场景中的应用。 算法原理 这里假设业务需要每秒钟限流100次,先来看固定窗口算法的两个问题: 漏检 如下图所示,单看第1秒和第2秒,其请求次数都没有超过 阅读全文

使用Redis实现令牌桶算法

2021-12-08 07:33 by 萤火架构, 4392 阅读, 收藏, 编辑
摘要: 在限流算法中有一种令牌桶算法,该算法可以应对短暂的突发流量,这对于现实环境中流量不怎么均匀的情况特别有用,不会频繁的触发限流,对调用方比较友好。 阅读全文

限流的非正式用途 - 解决重复提交问题

2021-12-02 08:23 by 萤火架构, 661 阅读, 收藏, 编辑
摘要: 在业务应用程序开发中,经常遇到用户重复提交的问题。比如有一个报名的表单,如果用户不小心连续点击了提交按钮多次,数据库中就可能产生多条报名记录。 阅读全文

限流惩罚是怎么一回事

2021-12-01 08:10 by 萤火架构, 1145 阅读, 收藏, 编辑
摘要: 最近经常看到某某主播被直播平台限流惩罚,平台给主播的流量变少,甚至直接没有流量了。这篇文章要说的是后端服务的限流惩罚,和这个主播被限流惩罚有点相似之处,又有些不同。 阅读全文

多租户系统中如何实现分别限流

2021-11-30 08:12 by 萤火架构, 738 阅读, 收藏, 编辑
摘要: 限流是后端服务开发中经常要集成的一个功能,对于防范系统因压力过大导致崩溃特别有用。在多租户系统中,限流对于限制单个租户使用的资源量也特别有用,这篇文章就来一探究竟。 阅读全文

如何使用数组实现滑动窗口

2021-11-29 07:30 by 萤火架构, 543 阅读, 收藏, 编辑
摘要: 学过操作系统的同学可能比较了解,在操作系统中很多地方使用了环形队列,而环形队列是用数组实现的;滑动窗口可以理解为环形队列的一个特例,每次窗口滑动时,队列弹出一个,然后再进入一个。 阅读全文

.NET6运行时动态更新限流阈值

2021-11-17 07:33 by 萤火架构, 1470 阅读, 收藏, 编辑
摘要: 昨天博客园撑不住流量又崩溃了,很巧我正在编写这篇文章,于是产生一个假想:如果博客园用上我这个限流组件会怎么样呢?前段时间有用户问怎么在程序执行过程中动态更改限流的阈值,比如原来限流100次/s,现在服务扩容了,要改成限流300次/s。FireflySoft.RateLimit是可以搞定这些问题的。 阅读全文