前言:

继上篇: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. 万字长文教你实现华为云IoT+OpenHarmony智能家居开发

    本文分享自华为云社区<华为云IoT+OpenHarmony的智能家居开发>,作者:袁睿. 一.选题说明 1. 选题为基于OpenHarmony的智能家居,应用场景为户用,受益人群为住户. ...

  2. MySQL 日志管理、备份与恢复

    MySQL 日志管理.备份与恢复 ---MySQL 日志管理--- MySQL 的日志默认保存位置为 /usr/local/mysql/data vim /etc/my.cnf [mysqld] ## ...

  3. DB2复制表结构及数据

    在DB2数据库中,复制已经存在的表的结构及其数据.我们采用两步走方式:第一步先复制表结构,第二部拷贝数据. 第一步:复制表结构 方法一: Create table test_Rate as (sele ...

  4. Go结构体深度探索:从基础到应用

    在Go语言中,结构体是核心的数据组织工具,提供了灵活的手段来处理复杂数据.本文深入探讨了结构体的定义.类型.字面量表示和使用方法,旨在为读者呈现Go结构体的全面视角.通过结构体,开发者可以实现更加模块 ...

  5. Docker系列——介绍、安装、镜像、容器、docker容器与镜像、数据卷、Dockerfile、docker 配置pycharm连接

    目录 1 Docker 介绍 1.1 简介 1.2 Docker平台介绍 1.3 为什么使用Docker 2 Docker 整体结构(了解) 2.1 Docker引擎介绍 (Docker Engine ...

  6. OPPO主题组件开发 - 组件内容自适应

    OPPO桌面有 3*5.3*6.4*5.4*6.5*5.5*6 等布局,随着布局不同,组件大小也会发生改变:不同型号手机分辨率不同,组件大小也不一致.这就要求组件内容做到自适应. 说明 OPPO主题组 ...

  7. 我们又组织了一次欧洲最大开源社区活动,Hugging Face 博客欢迎社区成员发帖、Hugging Chat 功能更新!

    每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...

  8. AI图形算法的应用之一:仪表识别

    目前AI智能算法如火如荼,各大型厂商对此趋之若鹜般加大开发力度,比如大华.海康这些视频处理类,以及百度.腾讯这些IT软件厂商,因为业务开展需要,我也把研发方向转向于此,小有成绩,在此展示一下. 最近研 ...

  9. 2D物理引擎 Box2D for javascript Games 第六章 关节和马达

    2D物理引擎 Box2D for javascript Games 第六章 关节和马达 关节和马达 到现在你所见到的所有类型的刚体有着一些共同点:它们都是自由的并且在除碰撞的请款之外,彼此没有依赖. ...

  10. 全面掌握胶囊网络:从基础理论到PyTorch实战

    本文全面深入地探讨了胶囊网络(Capsule Networks)的原理.构建块.数学模型以及在PyTorch中的实现.通过本文,读者不仅能够理解胶囊网络的基础概念和高级数学原理,还能掌握其在实际问题中 ...