负载均衡器安装在数据库服务器虚拟机

我有一个简单的我的站点布局,一个负载均衡器坐在3个应用程序服务器的前面,请求数据库。 我有4个虚拟机可用,3个虚拟机用于3个应用程序服务器,以及一个虚拟机用于数据库。 将负载平衡器安装在与数据库相同的VM上是否明智? 或者它应该在一个完全分离的虚拟机? 问题与成本有关。

将LB安装在与数据库相同的VM上是不明智的,原因如下:

  1. networkingpipe理 – LB是传统的应用代理,被devise成应用程序的公共接口。 这通常意味着某种forms的networking隔离。 数据库服务器传统上不应该接受公共stream量(使用公共的任何客户端stream量)。
  2. 性能 – LB虽然在较小的环境中不会受到很大影响,但繁忙的应用程序会导致客户端stream量路由和数据库调用之间的资源争用。 由于系统尝试处理客户端stream量决策和数据库访问,您将体验到潜在的缓慢。
  3. 安全性 – 如果应用程序devise为半安全,LB不仅可以充当代理,而且可以作为基本的安全前端,终止,甚至可以桥接SSLstream量。 您不希望终止与数据库服务器的公共连接。
  4. 故障排除。 尝试解决LB问题时,它是相同的接口或接口作为数据库服务器将混淆你的水域相当多的给你有奇怪的路由模式为客户端=> Web =>数据库。

请注意,如果这只是为了testing,LB应该是一个虚拟机,Web /数据库可以在一个盒子里。

如果这是用于分段或生产,则分开的虚拟机。 如果你有LB问题,重新启动你的整个数据库和应用程序是没有意义的。

根本不是个好主意。 你可以在之前的文章中find原因,我只是添加缩放和故障转移的问题。 我想你应该重新思考你的SPOF的架构,并设置它像这样:

Internet ----> Virtual IP ----> LB1 \_____/ APP1 \ /- DB1 \---> LB2 / |- APP2 >--< \ APP3 / \- DB2 

LB1和LB2是使用虚拟IP进行故障转移的负载均衡器(您可以使用Keepalived),所以当LB1死亡时,LB2会自动获取VIP,一切正常。 你也应该复制数据库设置,所以当一个数据库服务器死了,应用程序正在使用另一个。 LB也可以作为防火墙,只有“面向Internet的东西”,APP和DB服务器根本不需要公有IP。