gpt4 book ai didi

linux - 为什么不在一个 Amazon EC2 实例上运行 Node.js 和 Neo4j

转载 作者:搜寻专家 更新时间:2023-11-01 00:42:19 24 4
gpt4 key购买 nike

我将要在 Amazon 上设置服务器架构。我对最佳实践并不熟悉,而且几乎是边学边学。

我的老板告诉我启动一个 Amazon EC2 实例,在同一个实例上运行 Node.js 和 Neo4j(图形数据库)。两者都应该使用不同数量的可用 CPU。随着应用程序变得越来越大并且需要更多资源,我们将简单地克隆实例。我的老板也没有这方面的经验。

我必须说我对将 Node.js 和 Neo4j 放在一个实例/机器上有一种不好的感觉。我想我会使用 Amazon Linux HVM 发行版,因为他们已经将其设置为可以很好地与他们的服务配合使用。遗憾的是,Neo4j 官方不支持 yum,而是 apt(Amazon Linux 基于 Ubuntu,使用 yum 而不是 apt)。因此 Neo4j 推荐使用 Debian/Ubuntu 来运行他们的数据库。

为什么将 Node.js 和 Neo4j 放在一个实例上不是一个好主意?

我能想到的一个原因是,可伸缩性不再像运行每个服务的两个独立实例那样动态。

最佳答案

可扩展性可能是主要原因。我认为这里的“node.js”是指使用 node.js 编写的应用程序。将 node.js 包本身安装在运行 neo4j 的同一台机器上没有问题。

请注意,部署 neo4j 的一种好方法是作为服务器,让您的应用程序与该服务器通信。当然,它们可以在同一个虚拟机上,但这会带来一些并发症:

  • 该 VM 上的安全/防火墙设置必须更加复杂,以考虑到两者共存的所有方面。
  • 内存/磁盘配置需要对两者都足够。如果您的应用需要增长,当 neo4j 消耗了大量内存而没有为您的 Node 应用留出太多内存时会发生什么,反之亦然?

通过将它们分成两个独立的虚拟机,您可以分别对它们进行性能调整,以确保在那里运行的一个东西运行得非常好。稍后,如果您需要一个 HA 集群,您可以将单个 neo4j VM 变成 HA 集群的前端,node.js 应用程序可以继续使用服务器,就好像什么都没有改变一样。因此,可扩展性有好处。

在安全和网络配置方面,将它们分成两个虚拟机意味着您必须在第一时间考虑如何正确配置。您不希望任何人都能够连接到您的 neo4j 数据库,您只希望您的应用程序能够做到这一点。

关于linux - 为什么不在一个 Amazon EC2 实例上运行 Node.js 和 Neo4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30350940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com