我正在尝试建立一个从数据库获取数据的小型站点(目前我使用的是Firebase的Cloud Firestore)。 我使用next.js构建了它,并考虑将其托管在vercel上。它看起来很不错,工作得很好。 然而,该站点需要处理大约1000个小文档-服务、搜索,并且很少更新。为了减少在每次请求时对数据库的调用,这在时间上和数据库定价上都很昂贵,我认为如果服务器在启动时(或在第一次请求时)获得完整的项目列表,然后将它们保存在内存中,并使数据请求从其内存中获取数据,会更好。 它在本地开发服务器上工作得很好,但是当我将它部署到vercel上时,它就不工作了。它看起来像是it forces me to
我有一个应用程序正在查询的只读SQL Server数据库。数据库托管在SQL Server Express上,SQL Server Express在Azure虚拟机中运行。所有执行的查询都非常相似。
现在我想在那里添加更多的虚拟机,并在它们之间进行负载平衡。目标是提高性能和高可用性(如果一台服务器宕机,我希望将查询返回到其余服务器)。
负载均衡的正确方式是什么?我的应用程序是一个.NET应用程序。
我可以将虚拟机配置为云服务。在这种情况下,Azure可以在TCP连接级别上在它们之间进行负载平衡。我能想到的另一种选择是在应用程序级别上执行此操作,以循环方式选择要连接的服务器。
我知道已经有一些类似这个问题的问题。但在我的例子中,这个问题只发生在GCP上。我们已经在AKS (Azure)中运行我们的服务将近一年了,没有发生过一次。在我们转移到GCP之后,我们的Python应用程序的一些请求就出现了错误:Unable to find the server at www.googleapis.com。在大多数情况下,请求是有效的,因此它似乎是随机的。我已经尝试增加TCP超时以及云Nat中每个VM实例的最小端口数。我们使用GKE运行服务,并为网络设置了云Nat网关。 GCP上是否存在可能导致此问题的排他性设置?