2

我使用托管在 Atlas 上的 MongoDB 数据库构建了一个 Web 工具,通过Stitch连接。据我了解, Stitch 现在已经贬值并变成了MongoDB Realm。所以我尝试使用新的 Realm 应用程序而不是 Stitch 来更新我的网站。虽然它确实有效,但由于某种原因,匿名登录现在要慢得多。我使用 MongoDB 文档中建议的代码进行了一些快速测试:

let t0 = performance.now()
app.logIn(Realm.Credentials.anonymous()).then(() => {
         let t1 = performance.now()
         db.collection('test').find({
                category: "test"
            }, {limit: 10})
        console.log("Login took " + (t1 - t0) + " milliseconds.")
    })

登录让我难以置信1200 ms

let t0 = performance.now()
app.auth.loginWithCredential(new stitch.AnonymousCredential()).then(() => {
            let t1 = performance.now()
            db.collection('test').find({
                category: 'test'
            }, {limit: 10}).asArray()
            console.log("Login took " + (t1 - t0) + " milliseconds.")
        })

使用旧的 Stitch App,通常需要20 ms登录。

任何想法这里发生了什么或如何解决这个问题?我确实知道有可能按照他们的文档中的描述首先对用户进行身份验证,但是我尝试过,它同样很慢。

是否真的需要更新到新的 Realm 应用程序,例如旧的 Stitch 实现在不久的将来会停止工作吗?任何有关这方面的信息将不胜感激;)

更新:我做了更多调查,似乎 Realm 速度较慢的原因在于使用登录会logIn(Realm.Credentials.anonymous()).then(() => ...导致两个 Post 请求,但使用auth.loginWithCredential(new stitch.AnonymousCredential()).then(() => ...会在一个请求中完成身份验证和内容下载。使用 Realm,我两次获得 500-700 毫秒的 TTFB 等待时间,而 Stitch 只发生一次。

4

1 回答 1

0

我目前正在使用 MongoDB Realm 从头开始​​创建应用程序的后端。我正在使用他们的 Web SDK 使用电子邮件密码凭据进行身份验证。我的往返性能平均约为 600-800 毫秒。

Chrome DevTools 显示 Realm 用户身份验证的往返时间约为 600 毫秒

对于我的应用程序(使用 Vue 前端),这对我来说是可以接受的。我不知道您的要求是什么,但您可能想尝试使用新的 SDK。不幸的是,我在使用 Realm 提供的 GraphQL 端点服务时遇到了较差的查询性能。根据我在他们的论坛上发起的一个帖子,他们的工程师正在调查它。

于 2020-11-05T20:51:23.267 回答