【问题标题】:Scalable Server using Cocoa [closed]使用 Cocoa 的可扩展服务器 [关闭]
【发布时间】:2026-01-04 07:30:01
【问题描述】:

所以我想用 Cocoa 构建一个可以处理大量客户端的可扩展服务器。

我想这在单个服务器上是不可能的,因为他们的网络连接有限制,或者有可能吗?然后我想到了一个在(几乎)实时的多个进程(在同一或不同服务器上)之间共享的数据库,因此当进程 A 发生更改时,进程 B、C、D 同步,因此所有进程都有相同的数据。 这是正确的方法吗?这可以用 CoreData 制作还是有更好的选择?我实际上从未听说过 Cocoa 被用于服务器系统,那么在其中编写服务器是不是一个坏主意?

谢谢。

【问题讨论】:

    标签: objective-c macos cocoa core-data


    【解决方案1】:

    我投票赞成不在服务器端使用 CoreData,因为 sqlite 不符合我对服务器端数据库的标准,不确定这是否适合并发访问和多连接。

    【讨论】:

    • CoreData 的并发性相当困难,或者至少根据我读过的 SO-questions 看起来如此。什么是 CoreData 的好替代品?
    • 我认为和你选择的db backend有关,你应该自己写数据访问层
    • 你能推荐任何适用于大量数据集的数据库后端吗?到目前为止,我一直使用 MySQL,但我希望将 db 集成到应用程序中,而不是作为独立进程。
    • 很难说,因为我不知道你从 db 的请求/目标。如果您对 mysql 有很好的经验,为什么不使用它?如果不深入研究您的问题,没有人可以向您推荐有价值的东西。干杯
    【解决方案2】:

    我建议使用已经建立了经过验证的可运行和可扩展的基础架构的众多(许多)即用型服务中的一种。这不是一项微不足道的任务。

    FWIW 我们使用的是quickblox

    【讨论】:

    • 看起来很棒!但它似乎更像是最终用户的软件,而不是用于保持多个服务器实例同步。
    • 这是一个框架/API,您可以使用它来构建可扩展的应用程序,即它们已经为您实现了所有服务器服务。它非常酷,并且有免费的入门级。
    • 我已经阅读了更多内容,它看起来确实是一个很酷的工具,我一定会把它列入我未来项目的清单!但在这种情况下,我需要将数据安全地存储在我的服务器上。虽然我想这可能与小型/中型/大型计划有关,但它主要关注与我需要不同的事情,这是一个自己的可管理数据库。