高负载应用的最佳节点 ORM 模块
Posted
技术标签:
【中文标题】高负载应用的最佳节点 ORM 模块【英文标题】:Best node ORM module for high load application 【发布时间】:2016-03-29 04:46:20 【问题描述】:我正在开发一个负载非常高的 node.js 应用程序(每秒有数千个请求),我希望有高负载 node.js 应用程序和 ORM 模块经验的人的建议。
我将node-orm2
用于较小的项目,但我不知道在这种情况下这是否是正确的选择。
该应用每秒需要数千次数据库读取/写入,我想使用一个 ORM 模块,该模块可在任何服务负载下提供最佳性能。
我将使用 PostgreSQL 作为数据库。
【问题讨论】:
我不知道性能,但sequelize 是 nodejs 环境中最常用的 ORM 之一。你可以做一个基准测试。 ORM-s 通常很慢。如果您想要最佳性能,请不要使用任何。您需要一个可以轻松优化以实现高性能且易于使用的框架,例如 pg-promise。 @vitaly-t 我可以看出你是 pg-promise 的创造者。优化是什么? @karuzo 对于初学者来说,这是:Performance Boost - 最重要的优化之一,你甚至无法使用 ORM-s, - 减少 IO 交互,因此必须处理非常高负载。 @vitaly-t 所以,如果我理解你的文章,我基本上需要尽可能加入查询,避免使用不必要的查询。对吗? 【参考方案1】:我不确定在高负载下使用 orm 是否是个好主意。
最近,我在高负载节点项目上尝试了几种不同的 orms 和数据库,并得出结论,最好的方法是使用像 Redis 和像 ioredis 这样的 npm modul。
作为一种选择,您可以使用不同的数据库进行常规和高负载操作。例如,带有 sequelize 的 PostgreSQL 用于常规操作,以及一些 NoSQL(如 Redis)用于高负载。
并且,如果可能的话,尽量缓存结果或避免数据基础请求。
如果您找到其他解决方案,请告诉我,因为这对我来说是一个非常重要的问题。
【讨论】:
以上是关于高负载应用的最佳节点 ORM 模块的主要内容,如果未能解决你的问题,请参考以下文章