我想设置一个API来查询arabgodb,我正在争论是设置使用foxx微服务还是设置一个后端来使用pyarango来查询数据库,这两个选项的优缺点是什么?
ldioqlga1#
利弊在很大程度上取决于您和您的技能(Python与JavaScript),但看起来您确实在询问如何在专用服务器(Python)或ArangoDB平台(Foxx)中运行API中间件。对于单节点安装,将查询保持在服务器(Foxx)附近将为您提供非常低的延迟查询性能,但代价是与DB引擎共享CPU和内存。当使用集群时,动态会发生巨大变化-Foxx引擎必须位于与DB引擎不同的服务器上(参见cluster architecture docs)。这缓解了CPU/内存共享问题,也为API提供了某种高可用性,但也引入了其他更严重的查询性能问题,这些问题是集群所特有的。
***底线:***如果你不完全了解(或不准备处理)集群性能,那么坚持使用单个节点。如果你不愿意为你的Foxx引擎给予CPU/内存,那么使用单独的中间件服务器。还有很多其他细节需要考虑,但(对我来说)这是主要的决定。
另外,请注意只有两种模式:“群集”和“单个”,但有多种部署群集的方式(主/从、主动故障转移、一个分片、多分片等)。
1条答案
按热度按时间ldioqlga1#
利弊在很大程度上取决于您和您的技能(Python与JavaScript),但看起来您确实在询问如何在专用服务器(Python)或ArangoDB平台(Foxx)中运行API中间件。
对于单节点安装,将查询保持在服务器(Foxx)附近将为您提供非常低的延迟查询性能,但代价是与DB引擎共享CPU和内存。
当使用集群时,动态会发生巨大变化-Foxx引擎必须位于与DB引擎不同的服务器上(参见cluster architecture docs)。这缓解了CPU/内存共享问题,也为API提供了某种高可用性,但也引入了其他更严重的查询性能问题,这些问题是集群所特有的。
***底线:***如果你不完全了解(或不准备处理)集群性能,那么坚持使用单个节点。如果你不愿意为你的Foxx引擎给予CPU/内存,那么使用单独的中间件服务器。还有很多其他细节需要考虑,但(对我来说)这是主要的决定。
另外,请注意只有两种模式:“群集”和“单个”,但有多种部署群集的方式(主/从、主动故障转移、一个分片、多分片等)。