Database node.js实时数据群集

Database node.js实时数据群集,database,node.js,cluster-computing,Database,Node.js,Cluster Computing,我正在使用一个数据库,可以从数据库中加载每个请求的数据,但可能会太慢。所以我的想法是在服务器上实时保存数据(就像服务器通常做的那样)。这个想法只使用一台服务器就非常有效。现在,当第二台服务器进入太空时,这种情况的处理变得更加复杂。请记住,服务器可能在物理上是分开的 在不使用数据库的情况下,确保两个或多个node.js服务器上的所有数据相同的最佳做法是什么 我的第一个想法是每个服务器实例都有一个超级对象管理器。该对象管理器将为我创建/加载的每个对象(例如,数据库外的用户)接收一个唯一的id(用于所

我正在使用一个数据库,可以从数据库中加载每个请求的数据,但可能会太慢。所以我的想法是在服务器上实时保存数据(就像服务器通常做的那样)。这个想法只使用一台服务器就非常有效。现在,当第二台服务器进入太空时,这种情况的处理变得更加复杂。请记住,服务器可能在物理上是分开的

在不使用数据库的情况下,确保两个或多个node.js服务器上的所有数据相同的最佳做法是什么

我的第一个想法是每个服务器实例都有一个超级对象管理器。该对象管理器将为我创建/加载的每个对象(例如,数据库外的用户)接收一个唯一的id(用于所有服务器,存储在数据库中)。假设用户的对象具有id 3h34ds。现在,当我更新我的用户对象时,对象管理器处理更改并向所有其他服务器广播消息,包括对象id(全局唯一)和元数据(例如JSON)

这可靠吗?这是可以实现的吗?我不这么认为,因为每次我更改某些内容时都会通知对象管理器。事实上,这会破坏代码流,例如。g

user.name = "Test";
objectManager.notify(user); // this is unlovely

有更好的方法吗?

meh,使用像redis这样的键值/存储来实现这类功能。你真的认为通知所有服务器比数据库调用便宜吗?我不这么认为。它可能比较便宜,因为它是一个基于事件的系统。只有在有新数据时才需要更新。即使没有更改,也会进行数据库调用。那又怎样?redis做pub sub,是一个数据存储。