波斯码BOSSMA Information Technology

DOTNET 下的日志

ASP.NET Core中使用令牌桶限流

发布时间:2021年4月14日 / 分类:ASP.NET, DOTNET / 抢沙发

在限流时一般会限制每秒或每分钟的请求数,简单点一般会采用计数器算法,这种算法实现相对简单,也很高效,但是无法应对瞬时的突发流量。 比如限流每秒100次请求,绝大多数的时间里都不会超过这个数,但是偶尔某一秒钟会达到120次请求,接着很快又会恢复正常,假设这种突发...

Lazy(Func)的异常缓存问题

发布时间:2021年4月12日 / 分类:DOTNET / 抢沙发

Lazy可以提供多线程环境下的安全保障,但是用不好也是会跳到坑里。 我这里使用Lazy<t>(Func<T>)来创建一个Lazy实例,然后在需要的地方访问它的Value属性,它可以保证在多线程环境下Func<T>仅执行一次,这看起来十分的美好:需要的时候执行,并且仅执行一次,再翻...

ASP.NET Core中如何对不同类型的用户进行区别限流

发布时间:2021年2月19日 / 分类:DOTNET / 抢沙发

老板提出了一个新需求,从某某天起,免费用户每天只能查询100次,收费用户100W次。 这是一个限流问题,聪明的你也一定想到了如何去做:记录用户每一天的查询次数,然后根据当前用户的类型使用不同的数字做比较,超过指定的数字就返回错误。 嗯,原理就是这么简单。不过...

FireflySoft.RateLimit使用与原理

发布时间:2021年1月24日 / 分类:DOTNET / 抢沙发

限流一般是为了解决因拥挤导致服务无法正常提供的问题。比如常见的地铁限流,如果很多人在很短的时间内快速涌入,超出站台内的空间或列车的可运载人数,就会容易引发安全事故。 在github上使用C#编写的限流程序有很多,翻看了一些,大部分都有很多的场景限制,比如只能用在...

一个基于Consul的.NET Leader选举类库

发布时间:2020年6月10日 / 分类:Consul, DOTNET / 抢沙发

前段时间有传言说Consul将不能在我国继续使用,后被查明是因法律问题Vault企业版产品不能在国内销售。Valut和Consul都是HashiCorp公司的产品,并且都推出了开源版本,继续使用开源版本都是没有问题的,虚惊一场。Consul是一款优秀的服务发现和配置管理产品,基于其提供的Sessi...

Swift:一个基于.NET Core的分布式批处理框架

发布时间:2019年3月30日 / 分类:DOTNET / 抢沙发

Swift Swift是一个基于.NET Core的分布式批处理框架,支持将作业分割后分发到多台服务器并行处理,可成倍提升大量数据的处理速度。 GitHub地址:https://github.com/bosima/Swift 原理 Swift作业处理分为3步:分割作业、执行任务、合并结果。 Swift由多个成员...

.Net Core在树莓派3B+上的Hello World

发布时间:2018年7月4日 / 分类:DOTNET, 树莓派 / 抢沙发

新入手一个树莓派3B+(已经装盒了,所以看到的不是板子),体积比预想的要小,.NET Core是支持ARM处理器的,所以想试试看。 此文的前半部分是安装Linux系统,网上介绍的很多,我这里只是简单说下。 我这里没有显示器,没有鼠标,没有键盘,后续对树莓派的操作准备通过SSH进行...

ASP.NET Core的坑之“Form key or value length limit 4194304 exceeded”

发布时间:2018年6月7日 / 分类:DOTNET / 抢沙发

作为一个优秀和完整的Web服务端框架,各种验证和安全机制是必须要考虑的,ASP.NET Core正是如此。 在提交表单的时候,报了这样一个错误: Form key or value length limit 4194304 exceeded 仅从字面理解也大概能看出来是怎么回事,表单中的key或者value的长度超过限制了。 经...

使用启动命令参数设置Kestrel的监听端口

发布时间:2018年2月25日 / 分类:ASP.NET, DOTNET / 抢沙发

Kestrel的默认端口是5000,如果要启动多个站点,就得区分端口了,指定端口有多种方式:编写代码、appsettings.json配置、启动命令参数等。这里将介绍使用启动命令参数的方式。 还是以guid.fireflysoft.net为例,语法为: /usr/bin/dotnet /home/wwwroot/guid.fireflysoft.net/G...

在CentOS7中部署ASP.NET Core Web应用

发布时间:2018年2月25日 / 分类:ASP.NET, DOTNET / 抢沙发

.NET Core发展速度很快,特别是2.0发布后,越来越多的项目开始使用。网上关于ASP.NET Core的文章也已经很多了,但是因为版本升级较快,有些已经过时。这篇文章将基于当前最新的.NET Core 2.0.5运行时,说明在CentOS中部署的详细过程。 要部署的是一个Web应用,提供生成Guid的服...