asp.net - 引用广告印象进行大规模 SQL 插入的最佳实践是什么?

标签 asp.net sql-server scalability session-state impressions

我正在开发一个网站,需要能够跟踪广告展示次数。我的环境是带有 IIS 的 ASP.Net,使用 SQL Server DMBS 和可能的 Memcached,因此不会有太多的数据库访问。我还必须考虑可扩展性,因为我希望这个应用程序成为全局现象(祈祷并努力工作)!所以情况是这样的:

  • 我的客户将为 Y 次广告展示支付 X 金额
  • 这些广告展示次数(目前仅限文字广告)将显示在特定页面上。
  • 页面由 Memcached 提供,减少了数据库访问
  • 展示广告时,需要在数据库的展示次数中添加“+1”勾号

所以困境是这样的:我需要能够向每个广告展示计数器添加“+1”刻度线,但我无法在每次加载广告时运行该 SQL 语句。我需要以某种方式将“+1”印象数存储在 session 中(或其他地方),然后每 X 分钟、几小时或一天运行一批。

请记住,可扩展性是这里的一个重要因素。如果大家有任何建议,我们将不胜感激。

最佳答案

我见过一些项目通过在每个网络场服务器上部署 SQL Server Express 版本并依靠 Service Broker 将跟踪审核传送到中央服务器来处理此问题。由于场中的每台服务器都会更新本地 SQL 实例,因此它们可以扩展到天空。 Service Broker 确保近乎实时的可靠交付。我见过网络场在很长一段时间内 24x7 平均每秒处理 300-400 个请求,并且 Service Broker 的排队特性能够在数小时内吸收每秒 5000-7500 次点击的峰值并在合理的时间内恢复,不会造成审计损失,积压工作仍处于控制之中。

如果你真的希望扩大规模并成为下一个 MySpace,那么你应该向 how they do it 学习。 ,而基于队列的异步、解耦处理就是游戏的名称。

关于asp.net - 引用广告印象进行大规模 SQL 插入的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2303237/

相关文章:

c# - USB 闪存驱动器模拟(如 cd/dvd rom 虚拟驱动器)-是否可能

c# - 使用 C# 强制本地用户在下次登录时更改密码

java - 文档显示架构问题

c - 使用异步 I/O 的消息排序 (epoll)

c - 非常大的图像中的内存高效行拼接

c# - Web 表单脚手架而不是 MVC

c# - 使用不同的模型呈现强类型的部分 View

sql-server - sql server 有简单的前端吗?

sql-server - 复制数据库的最佳方法 (SQL Server 2008)

sql - 如何进行递归查询