2

我现在正在开发一个网络应用程序,客户端会经常(每隔几秒钟)发送对某些数据的读/写请求。截至目前,我的服务器在用户更改某些内容时立即写入数据库,并在他们想要查看某些内容时立即从数据库中读取。这对我来说很好,但我猜如果有成千上万的用户在线,它会很慢。

将写入请求保存在服务器端的对象中,然后在某个时间间隔进行批量更新会更有效吗?这在多次编辑相同数据的情况下会有所帮助,因为它现在只需要一个数据库插入。这也意味着我将从对象中读取任何尚未同步的数据,这可能意味着通过避免读取数据库来提高效率。但与此同时,我觉得这将是一种责任,原因有两个: 1. 服务器崩溃会清除所有尚未同步的数据。2. 由于大量数据库调用,批量插入可能会造成突然的延迟峰值。

我应该如何处理这个?我目前的方法可以吗,还是应该稍后将插入排队?

4

1 回答 1

3

如果用户对数据进行了更改并采取了他希望保存数据的操作,那么您应该尽一切可能确保实际保存数据。示例:假设您将写入延迟了一段时间。用户很着急,进行更改然后关闭浏览器。如果您在他们采取他们期望保存数据的操作时没有正确保存,则会丢失数据。

Web 堆栈通常水平扩展。除非有证据表明您确实必须这样做,否则不要开始优化这种事情。

于 2013-02-11T00:59:42.277 回答