C# - 保持端点调用的实时计数

问题描述 投票:0回答:1

我的代码中有一个像这样的端点:

[HttpPost]
public ActionResult<Result> myEndpoint() 
{
   ...
}

代码将托管在多个服务器上,我需要实时统计所有服务器上调用它的次数。

最初我认为使用 Redis 的分布式缓存可能很有用,但如果多个服务器从缓存中获取相同的数字并同时对其进行操作,我可能会遇到问题。如果发生这种情况,数字就会消失。

有没有一种好方法来保持任何给定端点的实时计数?

c# count real-time endpoint
1个回答
0
投票

.NET 7 中有更好的方法。您可以使用 RateLimmiting 中间件来为您做到这一点。

文档:https://learn.microsoft.com/en-us/aspnet/core/performance/rate-limit?view=aspnetcore-7.0

它将允许您控制每个端点的速率限制。您可以为不同的端点指定多种限制类型和不同的限制/逻辑。

© www.soinside.com 2019 - 2024. All rights reserved.