如何部署可扩展的 Parse LiveQuery Server?

How to deploy a scalable Parse LiveQuery Server?

最近,我们开始为我们的应用程序开发聊天功能,因为我们已经在使用 Parse SDK/Server,我们决定使用 Parse LiveQuery...

问题是,没有关于如何在单独的服务器上部署 Parse LiveQuery 服务器的足够的文档!我们看到了这个:http://docs.parseplatform.org/parse-server/guide/#scalability 但我们并没有真正想出如何继续...

所以我们有几个问题:

为了创建可扩展的 Parse LiveQuery Server,我们需要做什么? (最好在 Digital Ocean / Heroku 上)

它如何与存储我们 MongoDB 的原始 Parse Server 通信?

在你的 Parse Server B 中给出你的数据库 A 的 databaseUri: var api = new ParseServer({ databaseURI: 'mongodb://myMogoURL',

这是我们在 Heroku 上设置可扩展的 Parse LiveQuery 服务器的方法 因为 Heroku 上只有一个 'web' 进程,所以 它将分为两个 Heroku 应用程序:Main 和 LiveQuery。

A:主应用程序 - 除了 LiveQuery 服务器之外的所有功能

步骤 A1. 在 Heroku 上设置一个 Parse 应用程序

步骤A2.添加一个Heroku Redis(免费套餐足够测试)

步骤A3.配置Parse应用,为liveQuery添加redisURL

var api = new ParseServer({
  ...
  liveQuery: {
    classNames: [...],
    redisURL: REDIS_URL_ON_MAIN
  },
  ...
});

B: LiveQuery 应用程序 - 主应用程序的可扩展 LiveQuery 服务器

步骤 B1。 在 Heroku 上安装另一个 Parse 应用程序

步骤 B2. 配置 Parse 应用,不要设置 liveQuery

var api = new ParseServer({
  appId: APP_ID_ON_LIVEQUERY,
  masterKey: MASTER_KEY_ON_LIVEQUERY,
  serverURL: SERVER_URL_ON_LIVEQUERY,
  databaseURI: // (Optional) Only warning even if leave it default
});

步骤 B3. 创建 LiveQuery 服务器

var app = express();
app.use(PARSE_MOUNT_ON_LIVEQUERY, api);

var httpServer = require('http').createServer(app);
httpServer.listen(PORT_ON_LIVEQUERY, function() {
  /* Create HTTP server successfully */
});

ParseServer.createLiveQueryServer(httpServer, {
  redisURL: REDIS_URL_ON_MAIN // Redis URL from Mani app
});

C: 客户端 - 例如Swift

步骤 C1. 使用

初始化客户端实例
Client(server:applicationId:clientKey:)

let client = Client(server: SERVER_URL_ON_LIVEQUERY, 
                    applicationId: APP_ID_ON_LIVEQUERY, 
                    clientKey: nil)

步骤 C2。 订阅 LiveQuery

let subscription = client.subscribe(query)
subscription.handle(Event.created, { query, object in
  /* Handle CREATE event */
})

最后,我们可以在Heroku 上的LiveQuery 应用程序中扩展web 进程了^_^

欢迎对我的任何评论 glist