如何使用 Node.js 制作多线程应用程序,访问 LevelDB?

Posted

技术标签:

【中文标题】如何使用 Node.js 制作多线程应用程序,访问 LevelDB?【英文标题】:How to make a multi-thread application with Node.js, accessing a LevelDB? 【发布时间】:2014-01-28 14:52:24 【问题描述】:

LevelUP 文档中有此内容 (https://github.com/rvagg/node-levelup#multi-process-access):

LevelDB 是线程安全的,但适合多进程访问。您应该只从单个 Node.js 进程打开 LevelDB 数据库。 Node.js 集群由多个进程组成,因此一个 LevelUP 实例也不能在它们之间共享。

所以我无法使用节点集群 (http://nodejs.org/api/cluster.html)

还有其他选项可以让多进程(或多线程)Node.js 应用程序访问 LevelDB 数据库吗?

【问题讨论】:

你试过multilevel吗? 【参考方案1】:

我会说level-party 就是您要找的东西。当然,每个子线程都有多个 leveldb,我不确定是否知道答案。

【讨论】:

level-party 完美无缺【参考方案2】:

我认为您唯一可行的选择是选择一个进程来拥有 leveldb 访问权限并执行所有操作并通过网络与该进程通信。或者您可以像我们其他人一样使用传统的数据库服务器,该服务器可以被多个客户端进程同时访问。

【讨论】:

以上是关于如何使用 Node.js 制作多线程应用程序,访问 LevelDB?的主要内容,如果未能解决你的问题,请参考以下文章

nodejs是单线程还是多线程

Node.js概述

Node.js 的进程与线程你真的了如指掌了吗

Node.js、多线程和 Socket.io

Node.js 多人游戏多线程和多核

Node.js 多进程