当前位置: 首页 > news >正文

Ip-Limit: 轻量级注解式IP限流组件(二)

author: van , ggfanwentao@gmail.com

Ip-Limit-Example: 轻量级注解式IP限流组件使用样例

项目简介

该项目为ip-limiter的使用示例项目。

ip-limiter地址: https://github.com/DDAaTao/ip-limiter

示例项目文件树

└─example├─handler│   └─BaseExceptionHandler - IpLimiter统一异常处理├─token - 令牌桶限流器相关示例/测试接口包│   ├─TokenDefaultLimiterTypeController - 默认限流样例│   └─TokenWhiteLimiterTypeController - 白名单模式限流样例├─window - 滑动窗口限流器相关示例/测试接口包│   ├─DefaultLimiterTypeController - 默认限流样例│   ├─BlackLimiterTypeController - 黑名单限流样例│   ├─WhiteLimiterTypeController - 白名单限流样例│   └─DynamicIpListController - 黑白名单动态配置样例└─IpLimiterExampleApplication -  启动类(@EnableIpLimit)

核心限流模式 - LimitType类

  • DEFAULT - 走默认限流策略,不考虑黑白名单参数
  • WHITE_LIST - 只考虑白名单策略,非白名单的请求全部回绝
  • BLACK_LIST - 只考虑黑名单策略,非黑名单请求不做限流措施
  • DEFAULT_WITH_WHITE_LIST - 在默认限流策略的基础上,白名单内的IP不做限流
  • DEFAULT_WITH_BLACK_LIST - 在默认限流策略的基础上,直接403黑名单
  • DEFAULT_WITH_WHITE_AND_BLACK_LIST - 在默认限流策略的基础上,直接403黑名单,再让白名单内的IP直接同行

快速开始

  1. 引入Ip-Limit依赖(已发布至Maven中央仓库)
  <!-- 建议使用最新版本{ip-limiter.version} --><dependency><groupId>io.github.DDAaTao</groupId><artifactId>ip-limiter</artifactId><version>1.0.3</version></dependency>
  1. 将 @EnableIpLimit 添加到 webApplication 类上,或其他可以被 Spring 扫描到的配置类上
  2. 将 @IpLimit 注解添加到想要做IP限流的方法(接口)上,根据需求动态调整参数
    在这里插入图片描述

在这里插入图片描述

  1. 可通过注入 IpLimitUtils 动态设置限流配置 - DynamicIpListController
    在这里插入图片描述

部分测试结果

性能上来讲,推荐使用滑动窗口限流

1.令牌桶限流

在这里插入图片描述

2.滑动窗口默认限流

在这里插入图片描述

相关文章:

Ip-Limit: 轻量级注解式IP限流组件(二)

author: van , ggfanwentaogmail.comIp-Limit-Example: 轻量级注解式IP限流组件使用样例 项目简介 该项目为ip-limiter的使用示例项目。 ip-limiter地址&#xff1a; https://github.com/DDAaTao/ip-limiter 示例项目文件树 └─example├─handler│ └─BaseException…...

【C++】开源:Redis数据库配置与使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Redis数据库配置与使用。 无专精则不能成&#xff0c;无涉猎则不能通。。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c…...

TCP/IP网络编程 第二十四章:制作HTTP服务器端

实现简单的Web服务器端 现在开始在HTTP协议的基础上编写Web服务器端。先给出Windows平台下的示例&#xff0c;再给出Linux下的示例。在这里我假设各位都有了有关HTTP的知识&#xff0c;如果不知道HTTP协议的具体内容可以参考的往期博客&#xff0c;有了这些基础就不难分析源代…...

React 前端应用中快速实践 OpenTelemetry 云原生可观测性(SigNoz/K8S)

OpenTelemetry 可用于跟踪 React 应用程序的性能问题和错误。您可以跟踪从前端 web 应用程序到下游服务的用户请求。OpenTelemetry 是云原生计算基金会(CNCF)下的一个开源项目&#xff0c;旨在标准化遥测数据的生成和收集。已成为下一代可观测平台的事实标准。 React(也称为 Re…...

Linux 多线程并发Socket服务端的实现( 11 ) -【Linux通信架构系列 】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 设计模式系列 期待你的关注哦&#xff01;&#xff01;&#xff01; 现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everythi…...

2.7. Java 泛型了解么?什么是类型擦除?介绍一下常用的通配符?

Java 泛型&#xff08;generics&#xff09;是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制&#xff0c;该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型&#xff0c;也就是说所操作的数据类型被指定为一个参数。 Java 的泛型是伪泛型&am…...

单例模式与构造器模式

单例模式 1、是什么 单例模式&#xff08;Singleton Pattern&#xff09;&#xff1a;创建型模式&#xff0c;提供了一种创建对象的最佳方式&#xff0c;这种模式涉及到一个单一的类&#xff0c;该类负责创建自己的对象&#xff0c;同时确保只有单个对象被创建 在应用程序运…...

SQL力扣练习(七)

1.行程和用户(262) 表&#xff1a;Trips ----------------------- | Column Name | Type | ----------------------- | id | int | | client_id | int | | driver_id | int | | city_id | int | | status | enum | | reques…...

C语言假期作业 DAY 05

题目 一、选择题 1、如下程序的功能是&#xff08; &#xff09; #include <stdio.h> int main() { char ch[80] "123abcdEFG*&"; int j; puts(ch); for(j 0; ch[j] ! \0; j) if(ch[j] > A && ch[j] < Z) ch[j] ch[j] e - E; puts(ch)…...

php-golang-rpc使用roadrunner-server/goridge/v3/pkg/rpc和php的spiral/goridge3.2实践

golang代码&#xff1a; go get github.com/roadrunner-server/goridge/v3 package main import ( "fmt" "net" "net/rpc" goridgeRpc "github.com/roadrunner-server/goridge/v3/pkg/rpc" ) type App struct{} func (s *App) Hi(na…...

API常用签名验证方法(PHP实现)

使用场景 现在越来越多的项目使用的前后端分离的模式进行开发&#xff0c;后端开发人员使用API接口传递数据给到前端开发进行处理展示&#xff0c;在一些比较重要的修改数据接口&#xff0c;涉及金钱&#xff0c;用户信息等修改的接口如果不做防护验证&#xff0c;经常容易被人…...

kotlin高阶函数

kotlin高阶函数 函数式API:一个函数的入参数为Lambda表达式的函数就是函数式api 例子: public inline fun <T> Iterable<T>.filter(predicate: (T) -> Boolean): List<T> {return filterTo(ArrayList<T>(), predicate) }上面这段函数: 首先这个函…...

kotlin list集合树

kotlin list集合树 记录一下 data class AreaSchemaManageDto(var id: Long? null,var pid: Long? null,var label: String? null,var children: MutableList<AreaSchemaManageDto>? null ) : Serializable { }逻辑 fun getAll(): List<AreaSchemaManageDto&g…...

基于Autoencoder自编码的64QAM星座图整形调制解调通信系统性能matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1星座图整形 4.2自编码器 4.3基于Autoencoder的星座图整形调制解调模型 4.4 实现过程 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 .…...

【Spring】Spring 总览

一、简单介绍一下 Spring Spring是一个全面的、企业应用开发的一站式解决方案&#xff0c;贯穿表现层、业务层、持久层&#xff0c;可以轻松和其他框架整合&#xff0c;具有轻量级、控制反转、面向切面、容器等特征。 轻量级 &#xff1a; 空间开销和时间开销都很轻量 控制反…...

微软、OpenAI用上“数据永动机” 合成数据是晨曦还是暮光?

微软、OpenAI、Cohere等公司已经开始测试使用合成数据来训练AI模型。Cohere首席执行官Aiden Gomez表示&#xff0c;合成数据可以适用于很多训练场景&#xff0c;只是目前尚未全面推广。 已有的&#xff08;通用&#xff09;数据资源似乎接近效能极限&#xff0c;开发人员认为&a…...

简单认识Redis 数据库的高可用

文章目录 一、Redis 高可用&#xff1a;1.简介&#xff1a;2、在Redis中实现高可用的技术 二、Redis持久化&#xff1a;1.持久化的功能&#xff1a;2.Redis 提供两种方式进行持久化&#xff1a; 三、RDB 持久化&#xff1a;1.简介&#xff1a;2.触发条件&#xff1a;4.启动时加…...

超级实用!,掌握这9个鲜为人知的CSS属性

微信搜索 【大迁世界】, 我会第一时间和你分享前端行业趋势&#xff0c;学习途径等等。 本文 GitHub https://github.com/qq449245884/xiaozhi 已收录&#xff0c;有一线大厂面试完整考点、资料以及我的系列文章。 快来免费体验ChatGpt plus版本的&#xff0c;我们出的钱 体验地…...

深圳国际新能源及智能网联汽车全产业博览会今年10月举办

7月25日&#xff0c;深圳市工业和信息化局与励展博览集团共同在深圳举办Automotive World China 2023深圳国际新能源及智能网联汽车全产业博览会&#xff08;简称“AWC 2023”&#xff09;全球推介启动大会&#xff0c;该博览会将于2023年10月11日-13日在深圳国际会展中心盛大举…...

【具有非线性反馈的LTI系统识别】针对反馈非线性的LTI系统,提供非线性辨识方案(SimulinkMatlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码、Simulink仿真实现 &#x1f4a5;1 概述 本文为具有反馈非线性的LTI系统提供了一种非线性识别方案&#xff0c;这取决于输入和LTI系统输出。对于MEMS来说尤其如此&#…...

Graphormer实战:预测药物溶解度与渗透性,助力ADMET性质评估

Graphormer实战&#xff1a;预测药物溶解度与渗透性&#xff0c;助力ADMET性质评估 1. 药物研发中的ADMET挑战 在药物研发领域&#xff0c;ADMET&#xff08;吸收、分布、代谢、排泄和毒性&#xff09;性质评估是决定候选药物成败的关键环节。传统实验方法耗时耗力&#xff0…...

IEEE会议论文避雷指南:如何用GSview+Photoshop搞定EPS图片压缩与特殊字符命名

IEEE会议论文图片处理全攻略&#xff1a;从格式转换到命名规范 第一次投稿IEEE会议的新手研究者们&#xff0c;往往会在图片处理环节栽跟头——明明内容扎实、实验充分&#xff0c;却因为技术细节问题被编辑退回修改。这不是学术能力的问题&#xff0c;而是对印刷出版标准的不熟…...

线激光手眼标定里,欧拉角和四元数到底怎么选?一个案例讲清机器人姿态的‘坑’

线激光手眼标定中欧拉角与四元数的抉择&#xff1a;从理论误区到工程实践 在机器人视觉系统中&#xff0c;手眼标定是连接感知与执行的关键桥梁。当激光传感器安装在机械臂末端时&#xff0c;如何准确描述传感器坐标系与机器人坐标系之间的姿态关系&#xff0c;直接决定了后续视…...

旧iOS设备维护全流程解决方案:Legacy iOS Kit实用指南

旧iOS设备维护全流程解决方案&#xff1a;Legacy iOS Kit实用指南 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to downgrade/restore, save SHSH blobs, and jailbreak legacy iOS devices 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit Legacy…...

S7通信避坑指南:当1200/1500 PLC遇上S7-200 SMART,这些数据类型和地址映射坑你别踩

S7通信实战避坑手册&#xff1a;跨越1200/1500与200 SMART的数据鸿沟 在工业自动化系统升级改造过程中&#xff0c;新旧设备混合组网已成为常态。当工程师面对S7-1200/1500与S7-200 SMART的异构通信需求时&#xff0c;往往会陷入数据类型转换、地址映射等"隐形陷阱"。…...

基于偏振无关的传输相位调控技术,实现可见光超透镜的优化设计

基于传输相位的可见光超透镜 偏振无关搞过光学设计的工程师都知道&#xff0c;传统透镜那个笨重的曲面有多让人头疼。现在有了一种黑科技——可见光波段的超透镜&#xff0c;厚度只有几百纳米&#xff0c;却能实现传统透镜的光学效果。关键是这玩意儿还搞定了偏振相关性这个老大…...

JPom结合Docker实现SpringBoot项目自动化构建与部署实战

1. 为什么你需要JPomDocker自动化部署方案 每次手动打包SpringBoot项目时&#xff0c;你是不是也经历过这样的痛苦&#xff1f;先在本地mvn clean package&#xff0c;然后scp上传到服务器&#xff0c;接着ssh连上去kill旧进程&#xff0c;最后nohup启动新jar包。更可怕的是半夜…...

软考:团队管理与绩效域50大实战难题破解清单,写进论文直接加分!

对于软考高项&#xff08;信息系统项目管理师&#xff09;的考生来说&#xff0c;论文是决定成败的关键。而一篇高分论文的核心&#xff0c;在于能否用真实、具体的项目实践&#xff0c;去论证你对项目管理知识体系的深刻理解。项目团队管理和项目绩效域是论文中最常考、也最容…...

CODESYS开发教程7-变量作用域与存储类型实战解析

1. 变量作用域&#xff1a;从菜市场到保险箱的生动比喻 刚接触CODESYS开发时&#xff0c;我总被各种变量作用域搞得晕头转向。直到有天去菜市场买菜&#xff0c;突然发现变量作用域和菜市场的摊位布局简直一模一样&#xff01;全局变量就像菜市场入口处的公共电子屏&#xff0c…...

League Akari:英雄联盟终极智能助手完整使用指南

League Akari&#xff1a;英雄联盟终极智能助手完整使用指南 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否厌倦了在英雄联…...