Asp.net 将聊天室数据保存在应用程序变量或数据库中,哪一个更好?

Asp.net 将聊天室数据保存在应用程序变量或数据库中,哪一个更好?,asp.net,asp.net-mvc,asp.net-mvc-2,asp.net-ajax,Asp.net,Asp.net Mvc,Asp.net Mvc 2,Asp.net Ajax,我的应用程序是Web App聊天室,它支持以下功能: 1.创建/加入/关闭房间 2.在房间内发送消息(只需实时消息,将来可能支持脱机消息) 我已经完成了应用程序的逻辑设计,但我正在考虑在哪里保存聊天室数据(消息、聊天室信息和聊天室中的用户)?我看到有两种选择: 一,。应用程序变量 2.使用文件或数据库 -如果我保存在应用程序变量: 如果有2000个房间和10000个在线用户,这意味着我必须持久化2000个房间的应用程序变量(实际上在RAM内存中)信息,超过10000条消息(文本),如果有更多的实

我的应用程序是Web App聊天室,它支持以下功能:

1.创建/加入/关闭房间
2.在房间内发送消息(只需实时消息,将来可能支持脱机消息)

我已经完成了应用程序的逻辑设计,但我正在考虑在哪里保存聊天室数据(消息、聊天室信息和聊天室中的用户)?我看到有两种选择:

一,。应用程序变量
2.使用文件或数据库

-如果我保存在应用程序变量:
如果有2000个房间和10000个在线用户,这意味着我必须持久化2000个房间的应用程序变量(实际上在RAM内存中)信息,超过10000条消息(文本),如果有更多的实时在线用户,这些数字可能会增加一秒。接下来呢?我不知道服务器会发生什么,崩溃?或者我的web应用将被终止?不管怎样,我不想要两个结果

-如果我保存在文件或数据库中(即:SQL Server DB)

由于web应用程序,客户端必须每1秒发送一次请求以获取数据(房间中的消息和用户列表)。因此,如果有2000个房间和10000个在线用户,这意味着他们将每1秒向DB发出10000个请求。我不知道DB会发生什么,有很多连接,在每1秒的时间里,DB还能活着为请求服务吗


我不知道现在储蓄在哪里是好的,因为这两种方法似乎都不是好的解决方案:(.你的意见是什么?请给我一些想法?非常感谢!

数据库就是为此而建立的,它可以发出大量的请求,写入和读取数据……它们有很好的优化功能,而不是把你知道的一切都写下来,它们使用缓存和内存来实现你所说的


我说使用数据库,只是要注意做好桌子的设计并随时从您的房间中删除旧的和未使用的数据。

数据库就是为此而建立的,它可以发出大量请求、写入和读取数据……它们有很好的优化功能,而不是将您知道的所有内容都写下来,它们使用缓存和内存来实现您所说的内容


我说使用数据库,只是要注意对您的表进行良好的设计。:)并不时从您的房间中删除旧的和未使用的数据。

“由于web应用程序,客户端必须每1秒发送一次请求”这是为什么?这是你的第一个问题。你应该用波什或彗星之类的东西。还有,你不使用现成的XMPP服务器有什么好的理由吗?我的web是Asp.net MVC应用程序,似乎它只在IIS服务器上运行。我以前从未听说过BOSH、Comet或XMPP服务器,它是与IIS一起运行还是可以取代IIS来主持我的asp网络聊天?你能告诉我更多关于它们的信息吗?当然,XMPP是一个用于实现聊天的开放协议(曾经被称为“Jabber”)。有许多XMPP服务器完成了实现协议的所有工作。BOSH和Comet是利用Ajax的Javascript技术,它们促进了双向HTTP流(HTTP是请求/响应,而普通的套接字编程是长寿命的,允许重复的来回通信——非常适合聊天)。对于Javascript端,我建议服务器端看看,这是非常有用的资源!您是否曾经使用XMPP服务器和Ajax客户端库为回调XMPP服务器开发过Asp.net MVC web应用程序?我没有太多的预算购买像lightstreamer服务器这样的服务器,而且我的asp.net web应用程序需要提供多达10000个连接,你有没有建议提供一个免费的XMPP服务器,它可以与asp.net mvc web应用程序集成,并且可以提供这些连接的数量?“由于web应用程序,客户端必须每1秒发送一次请求“为什么?这是你的第一个问题。你应该用波什或彗星之类的东西。还有,你不使用现成的XMPP服务器有什么好的理由吗?我的web是Asp.net MVC应用程序,似乎它只在IIS服务器上运行。我以前从未听说过BOSH、Comet或XMPP服务器,它是与IIS一起运行还是可以取代IIS来主持我的asp网络聊天?你能告诉我更多关于它们的信息吗?当然,XMPP是一个用于实现聊天的开放协议(曾经被称为“Jabber”)。有许多XMPP服务器完成了实现协议的所有工作。BOSH和Comet是利用Ajax的Javascript技术,它们促进了双向HTTP流(HTTP是请求/响应,而普通的套接字编程是长寿命的,允许重复的来回通信——非常适合聊天)。对于Javascript端,我建议服务器端看看,这是非常有用的资源!您是否曾经使用XMPP服务器和Ajax客户端库为回调XMPP服务器开发过Asp.net MVC web应用程序?我没有太多的预算购买像lightstreamer服务器这样的服务器,我的asp.net web应用程序需要提供多达10000多个连接,你有没有任何建议可以提供一个免费的XMPP服务器,它可以与asp.net mvc web应用程序集成,并可以提供这些连接的数量?谢谢你的建议,亚里士多德。谢谢你的建议,亚里士多德。