【问题标题】:Running multiple Parse server instance in one Node.js environment在一个 Node.js 环境中运行多个 Parse 服务器实例
【发布时间】:2016-12-21 14:57:07
【问题描述】:

有没有办法在一个 Node.js(一台机器)环境中运行多个 Parse 服务器实例?如果是,那将是什么配置。

我专门针对 Jelastic,但我认为通用解决方案无论如何都适用。

【问题讨论】:

  • 你能不能把解析服务器的每个实例暴露在不同的端口上?
  • 它们会连接到同一个 MongoDB 吗?当然,您可以对仪表板进行负载平衡,但服务器不仅仅是一个独立的东西

标签: node.js parse-platform jelastic


【解决方案1】:

我正在使用这种方式并且它工作得很好

// First app instance here

var api1 = new ParseServer({
  databaseURI: 'mongodb://localhost:27017/dev1',
  cloud: '/home/myApp/cloud/main1.js',
  appId: 'myAppId1',
  masterKey: 'myMasterKey1',
  fileKey: 'optionalFileKey1',
  serverURL: 'http://localhost:1337/parse'
});

// Second app instance here

var api2 = new ParseServer({
  databaseURI: 'mongodb://localhost:27017/dev2', // Connection string foryour MongoDB database
  cloud: '/home/myApp/cloud/main2.js', // Absolute path to your Cloud Code
  appId: 'myAppId2',
  masterKey: 'myMasterKey2', // Keep this key secret!
  fileKey: 'optionalFileKey',
 serverURL: 'http://localhost:1337/parse' // Don't forget to change to https if needed
});


// Serve the Parse API on the /parse URL prefix
var mountPath = process.env.PARSE_MOUNT || '/parse';

// Mount Apps here
app.use(mountPath, api1);
app.use(mountPath, api2);

希望这会有所帮助!告诉我

【讨论】:

  • 这是如何工作的?您将两个实例安装到同一个地方
  • 我安装在同一个 index.js 文件中,但他们将我单独工作 相同的 Server_url 但总有不同的应用程序,只是尝试理解代码很简单。
  • 不,我是说app.use(mountPath, api2);api1 位于同一路径,因此您不再有任何对api1 的引用
  • 是的,你会的。它会完美地工作。试试var api1 = new ParseServer({ });var api2 = new ParseServer({ });挂载api1和api2
  • 您的mountPath 不会改变。我不明白为什么它会起作用,并且您将两台服务器都设置为http://localhost:1337/parse,所以无论如何都会存在端口绑定冲突。
【解决方案2】:

您可以使用cluster module 运行同一服务器应用程序的多个实例。 请注意,Node.js 或您的程序中没有路由逻辑,并且工作人员之间没有共享状态。因此,重要的是设计您的程序,使其不会过于依赖内存中的数据对象来进行会话和登录等操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-24
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多