请求批处理以减少C#dotnet核心中数据库的负担

问题描述

正在进行测验。所有用户都将从不同的浏览器进行应答,而没有移动应用程序。每当有人问一个问题时,所有用户都会在头几秒钟内回答。因此,高峰请求将是10k-50k请求/秒。此峰值将每5分钟达到1小时。以下是我为确保我的应用程序可伸缩而实施的步骤。

  1. 将所有请求分批到内存缓冲区(队列Q1) 每100毫秒在代码下面运行一次
  2. 将队列交换到另一个队列(Q2)并清空Q1
  3. 数据库中的记录与第二季度的所有记录作为一个批次插入。

通过这种方式,数据库的插入和使用量将大大减少。

但是要实现这一点,我想到了使用ConcurrentQueue,BlockingCollection,QueueBackgroudWorkItem,IHostedService。

我的AWS c5.2xlarge系统是否能够处理这么多请求而不会被阻塞,并将所有记录插入同一区域的sql数据库中?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)