前言:

继上篇:Taurus .Net Core 微服务开源框架:Admin 插件【4-7】 - 配置管理-Mvc【Plugin-Metric 接口调用次数统计】

本篇继续介绍下一个内容:

1、系统配置节点:Mvc - Plugin - Limit 接口访问限制、IP限制、Ack限制:

配置界面如下:

限制目前提供以下三个类别的限制:

1、Rate 访问频率限制
2、IP IP黑名单限制
3、Ack 请求头验证

1、Limit.IsIgnoreLAN:是否忽略对内网IP的限制

对三种类别限制都有效。

2、Limit.IsIgnoreAdmin:是否忽略对后台管理【插件】界面的限制

对三种类别限制都有效。

3、Limit.IsIgnoreDoc:是否忽略对自动化接口测试及文档管理【插件】界面的限制

对三种类别限制都有效。

4、Limit.IsIgnoreMicroService:是否忽略对微服务【插件】通讯的限制

对三种类别限制都有效。

5、Limit.IsUseXRealIP:是否先尝试获取请求头的【X-Real-IP】为IP

先取 request.Headers["X-Real-IP"],为空再取:request.UserHostAddress

以上为三者通用配置,下面看各自的配置项。

2、 Rate 配置【请求频率限制】

配置界面如下:

配置说明如下:

1、Limit.Rate.IsEnable:是否启用访问频率限制功能

通过开关启用即可,默认关闭。

2、Limit.Rate.MaxConcurrentConnections:应用最大并发链接数

为整个应用设置并发打开的最大 TCP 连接数,默认情况下,最大连接数不受限制。

Kestrel 应用的该属性无法动态调整,因此追加实现,实现动态整体限速。

3、Limit.Rate.Period:对访问Url的间隔时间(单位秒)

配置时间段,如 Limit.Rate.Period :5(s), (单位秒)

4、Limit.Rate.Limit:间隔时间内允许的访问次数

配置时间段内允许的最大请求数,如 Limit.Rate.Limit :500

5、Limit.Rate.Key:用于以key为单位的限制频率的关键参数

如默认配置为:IP,则以用户的访问IP为单位进行限制。

如果配置为其它参数:则以配置Request[参数]或Request.Header[参数]的获取值为访问单位进行限制。

比如以token为用户单位,则可以配置:token

3、IP 黑名单配置项

配置界面如下:

配置说明如下:

Limit.IP.IsEnable:是否启用IP黑名单限制

配置启用后,对应的IP名单,在Sync - Setting 同步设置里设置:

如果IP黑名单没有开启,则填写框是灰色的,不可写状态,并有提示该配置项目前为false。

如果配置项打开了,则填写框可用。

按提示框,一行填写1个IP即可,可以用*号代表IP段。

微服务的提示:

Add ip blackname list :if current is register center of master , it will be synchronize to all servers.
如果当前为注册中心应用,则本IP地址列表的限制,会同步到所有客户端应用,包括网关。
而作为微服务客户端或网关,也可以通过在微服务配置列表里,找到是否允许被同步的配置开启。

4、Ack 限制

配置界面如下:

配置说明如下:

1、Limit.Ack.IsEnable:是否启用Ack验证

用途:加强网络请求的安全性,避免请求链接被拦截或重复使用。

1、对于客户端,比如前端、IOS、Android,可以在每次请求时,都带上ack请求头。

ack 的算法,参考:Limt.Ack CreateAck() 的使用调用方式或说明。

2、后端默认会验证该ack是否合法。

2、Limit.Ack.Key:每个项目需要约定不同的key为加密项

可以随便取,长度6个以内即可。

3、Limit.Ack.IsVerifyDecode:是否需要验证解码

验证时,通过解码,得到key,并和配置的key比较是否一至。

4、Limit.Ack.IsVerifyUsed:是否验证仅使用1次

开启时,每个ack仅能使用1次,已使用过的会被限定1定时间内不可再使用,可以避免重复请求。

5、Limit.Ack CreateAck():这不是配置,这只是一个算法说明

该算法用于告诉前端调用者,如果要使用本功能,需要根据本约定算法,通过各自语言,来编写算法产生ack。

总结:

最近在写分布式事务插件,待完成后,配合之前已完成的分布式锁,整个微服务体系将完整了。

Taurus .Net Core 微服务开源框架:Admin 插件【4-8】 - 配置管理-Mvc【Plugin-Limit 接口访问限制、IP限制、Ack限制】的更多相关文章

  1. Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单。

    前方: 开源地址:https://github.com/cyq1162/Taurus.MVC 上篇文章介绍过:工业制造行业的低代码开发平台思维架构图 规划中涉及到了微服务,近些天经过努力和不断的代码与 ...

  2. .net core 自带分布式事务的微服务开源框架JMS

    事务的统一性是微服务的一个重点问题,简洁有效的控制事务,更是程序员所需要的.JMS的诞生,就是为了更简单.更有效的控制事务. 先看一段调用微服务的代码: using (var ms = new JMS ...

  3. 基于.NET CORE微服务框架 -surging的介绍和简单示例 (开源)

    一.前言 至今为止编程开发已经11个年头,从 VB6.0,ASP时代到ASP.NET再到MVC, 从中见证了.NET技术发展,从无畏无知的懵懂少年,到现在的中年大叔,从中的酸甜苦辣也只有本人自知.随着 ...

  4. ASP.NET Core微服务+Tabler前端框架搭建个人博客1--开始前想说的话

    写在前面 本人为在读研究生,特别喜欢.NET,觉得.NET的编程方式.语法都特别友好,学习.NET Core已经差不多有一年半了,从一开始不知道如何入门到现在终于可以编写一些小的应用程序,想一想还是非 ...

  5. (7)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- 利用Polly+AOP+依赖注入封装的降级框架

    创建简单的熔断降级框架 要达到的目标是: 参与降级的方法参数要一样,当HelloAsync执行出错的时候执行HelloFallBackAsync方法. public class Person { [H ...

  6. 携程框架Apollo实现.NET Core微服务统一配置(测试环境-单机)

    Apollo实现.NET Core微服务统一配置(测试环境-单机) https://www.cnblogs.com/guolianyu/p/10065999.html 一.前言 注:此篇只是为测试环境 ...

  7. net core 微服务框架 Viper 调用链路追踪

    1.Viper是什么? Viper 是.NET平台下的Anno微服务框架的一个示例项目.入门简单.安全.稳定.高可用.全平台可监控.底层通讯可以随意切换thrift grpc. 自带服务发现.调用链追 ...

  8. hello world .net core 微服务框架 Viper

    1.Viper是什么? Viper 是.NET平台下的Anno微服务框架的一个示例项目.入门简单.安全.稳定.高可用.全平台可监控.底层通讯可以随意切换thrift grpc. 自带服务发现.调用链追 ...

  9. .NET Core微服务之开源项目CAP的初步使用

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.CAP简介 下面的文字来自CAP的Wiki文档:https://github.com/dotnetcore/CAP/wiki CAP ...

  10. (6)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- AOP框架

    AOP 框架基础 要求懂的知识:AOP.Filter.反射(Attribute). 如果直接使用 Polly,那么就会造成业务代码中混杂大量的业务无关代码.我们使用 AOP (如果不了解 AOP,请自 ...

随机推荐

  1. mac安装nvm

    系统:macos catalina版本:10.15.7 一.安装nvm 打开终端执行这个命令 安装的版本是 v0.39.1 curl -o- [https://raw.githubuserconten ...

  2. IDEA 22.2.3 创建web项目及Tomcat部署与服务器初始界面修改(保姆版)

    开始前请确认自己的Tomcat.JDK已经安装配置完毕 不同版本的IDEA创建配置流程可能不同,演示中的IDEA版本号为22.2.3 本教程创作时间为2023/09/14 1.创建项目 通过下图路径进 ...

  3. 在 Android Studio Java 项目里混合 Kotlin 编程

    首先,先搞明白一个概念,这里的 Java 混合 Kotlin 是指文件层级的混合,即 Java 代码还是写在 .java 文件中,Kotlin 代码还是写在 .kt 文件中,只不过是可以在 Java ...

  4. 基于 Wiki.js 搭建知识库系统

    前言 本文介绍如何使用 Wiki.js 搭建知识库系统. Wiki.js 官网 安装 前提准备 Wiki.js 几乎可以在任何支持 Node.js 的系统上运行.它可以运行在 Linux .Windo ...

  5. JS深入学习笔记 - 第三章.变量作用域与内存

    1.原始值和引用值 ECMScript变量包含两种不同类型是数据:原始值和引用值. 原始值:最简单的数据.有6中原始值:Undefined.Null.Boolean.Number.String和Sym ...

  6. js递归查询之根据id查询当前对象

    需求:递归查询数组中id对应的数据 Json数据格式: 1 let cityArr = [ 2 { 3 id: 1000, 4 name: '四川省', 5 children: [ 6 { 7 id: ...

  7. pta2023年9月7日 第五期

    5月23日   11月14日   有效期3年: 更新方式待定:  双方认证合作CCF编程培训师资认证(PTA)中国计算机学会https://pta.ccf.org.cn/中国科教工作者协会(原:中国青 ...

  8. 10月TIOBE榜Java跌出前三!要不我转回C#吧

    前言 Java又要完了,又要没了,你没看错,10月编程语言榜单出炉,Java跌出前三,并且即将被C#超越,很多资深人士预测只需两个月,Java就会跌出前五. 看到这样的文章,作为一名Java工程师我感 ...

  9. Java并发编程和多线程的区别

    并发编程: 并发编程是一种编程范式,它关注的是编写能够正确和高效处理多个并发任务的程序.并发编程不仅包括多线程,还包括了处理多个独立任务的各种技术和模式,如进程.协程.分布式编程等.并发编程的目标是实 ...

  10. 从零开始学习web前端技术路线图

    最近我侄子快实习了,学校跟培训机构合作,交两万多可以参与一个培训,培训四个月,可以包就业.侄子问我,是否要去培训,培训出来可以找到工作吗? 现在很多大学生,上学的时候谈恋爱,玩游戏,快要毕业就焦虑了. ...