通过负载均衡器访问Play实例



我已经创建了一个Play!运行良好的应用程序。例如:我修改了一个登录页面,当提交时,它将进入首页模块的logiCheck方法,该方法验证并重定向到内部页面。

我在机器上运行了6个游戏实例。

我在另一台机器上创建了负载均衡器播放应用程序。它将一次指向任何一个实例。我也想使用负载均衡器处理DB请求和Web请求。

DB请求-它只是更新DB并在那里结束。

Web请求-它(LoadBalancer)必须将请求发送到它将具有响应的实例,我将通过LoadBalancers在网页中显示该响应。

例如:对于第一个web请求,将呈现登录页面。所以我以web的形式发送请求。它将发送到实例,并返回响应(登录页面)。我能够呈现。

我的问题是登录页面表单提交将采用不在LoadBalancer应用程序中的frontpage模块的logincheck方法。我想通过LoadBalancer将带有这些post值的页面发送回实例,我该怎么做呢。

(Key -> Server = play )                 
         Request                                        Request                                                   Request    
-------------------------->     |      LB      |------------------------------------> |   Play LB        |----------------------------> | Play Instance
<------------------------       |                |<-------------------------------------------------------------------------------------------------|
         Response                                                                                                   Response

LB - Load Balancer

根据我们的意见。。

请注意,我正在把这个写进一个答案中,因为我无法将这些链接放入评论中,因为这并不是你最初问题的真正答案!

然后,快速问一个问题:您只是出于兴趣而尝试编写负载均衡器,还是确定您的应用程序需要一个?一台配置良好的机器可以在没有太多问题的情况下处理数百万个请求。

不管怎样,现在谈谈你的问题。。

这些是一些精确的链接(正如你所看到的,非常广泛,因为它实际上取决于你的部署环境,什么需要负载平衡)

  • JavaWorld的一个很好的介绍-它分为两部分,第二部分更有趣
  • HAProxy
  • AWS弹性负载平衡
  • Oracle

在堆栈溢出时,负载平衡标记相当活跃;您可以将它与Java或更具体的主题结合起来,例如:Java上的负载平衡。

但我承认这是非常宽泛的。

现在,我为您指出了他们/类别/中的一些顶级LB。这意味着,根据你的真实需求,你选择的解决方案(自制或现有产品)会有所不同。

首先,负载平衡是体系结构的问题。。例如,当你想编写应用程序时,使用AWS或类似的解决方案通常是一个好主意,但当你的负载增加时,可以启动额外的实例。

但是,如果您的应用程序的读取次数非常多,而写入次数很少,那么您可能需要专注于分发数据库,并配置主从式应用程序和应用程序以优化读取和写入。

等等。

我们使用netty创建了一个LoadBalancer,netty是一个开放库。工作良好。

最新更新