LastModified: 2019年6月14日10:37:39 主要是依靠 redis + lua 来实现限流器, 使用 lua 的原因是将多条命令合并在一起作为一个原子操作, 无需过多考虑并发. 计数器模式 原理 计…
标签:lua
【openresty】蓝绿发布(ip白名单)
• 什么是蓝绿发布? 1. 蓝绿部署原理上很简单,就是通过冗余来解决问题。通常生产环境需要两组配置(蓝绿配置),一组是active的生产环境的配置(绿配置),一组是inactive的配置(蓝配置)。 2. 当用户访问的时…
基于Redis和Lua的分布式限流
Java单机限流可以使用AtomicInteger,RateLimiter或Semaphore来实现,但是上述方案都不支持集群限流。集群限流的应用场景有两个,一个是网关,常用的方案有Nginx限流和Spring Clo…
Nginx 通过 Lua + Redis 实现动态封禁 IP
背景 为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单。对于黑名单之内的 IP ,拒绝提供服务。 架构 实现 IP 黑名单的功能有很多途径:1、在操作系统层面,配置 iptables,拒绝…
Redis 中 Lua 脚本的应用和实践
引言 前段时间组内有个投票的产品,上线前考虑欠缺,导致被刷票严重。后来,通过研究,发现可以通过 redis lua 脚本实现限流,这里将 redis lua 脚本相关的知识分享出来,讲的不到位的地方还望斧正。 redis…
限流算法的实现(redis + lua)
限流算法 常见的限流算法 计数器算法 漏桶算法 令牌桶算法 计数器算法 顾名思义,计数器算法是指在一定的时间窗口内允许的固定数量的请求.比如,2s内允许10个请求,30s内允许100个请求等等.如果设置的时间粒度越细…
Java并发:分布式应用限流 Redis + Lua 实践
任何限流都不是漫无目的的,也不是一个开关就可以解决的问题,常用的限流算法有:令牌桶,漏桶。在之前的文章中,也讲到过,但是那是基于单机场景来写。 之前文章:接口限流算法:漏桶算法&令牌桶算法 然而再牛逼的机器,再优…
高并发红包整体设计方案
公司前段时间根据业务方需求需要做一个抢红包的活动,网上也搜索了很多资料。记录下整体的设计思路以及运营过程中的各种问题。 产品需求: 1.红包支持配置开始时间、结束时间、类型(随机金额或固定金额)、单个最小红包金额、单个最…
Redis Lua 脚本
Lua 简介 Lua语言提供了如下几种数据类型:booleans(布尔)、numbers(数值)、strings(字符串)、tables(表格)。 下面是一些 Lua 的示例,里面注释部分会讲解相关的作用: -- -- …
Redis与Lua及Redis-py应用Lua
基本命令 Redis 脚本使用 Lua 解释器来执行脚本。 Reids 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL。 EVAL script numkeys key [key ...] arg…
Redis进阶应用:Redis+Lua脚本实现复合操作
一、引言 Redis是高性能的key-value数据库,在很大程度克服了memcached这类key/value存储的不足,在部分场景下,是对关系数据库的良好补充。得益于超高性能和丰富的数据结构,Redis已成为当前架构…
配置openresty使用lua并发请求API
背景 现在搞的系统前后端分离,采用 restful 风格设计 API.随着业务发展,出现了一个页面的数据需要请求多个接口,才能完整展示数据.导致页面加载耗时很长.因此决定采用openresty 来并发请求客户端发送来的接…