1

我想知道在后端实例上允许同时处理多少个请求。
因此,我尝试运行以下代码。

服务器端代码

class BackendProcess(webapp2.RequestHandler):
    def post(self):
        id = uuid.uuid4().hex
        time.sleep(30)
        self.response.out.write(id)

后端.yaml

backends:
- name: backstream
  class: B1
  instances: 1
  options: public

客户端代码

$('#backendtest').on('click', function(){
                $.ajax({
                    type: 'POST',
                    dataType: 'text',
                    url: "{{backend_url}}" + '/test',
                    success: function(response){
                        console.log(response);
                    }
                   });
            });

我在 chrome 浏览器上打开了 8 个选项卡,然后单击了每个选项卡上的“#backendtest”按钮。
然后,前 6 个选项卡的响应几乎同时返回,但第 7 个和第 8 个选项卡的响应在第 1 个选项卡的响应后 30 秒后返回。
这意味着一个后端实例只能同时处理 6 个请求。
因此,我又添加了一个实例,如下所示。

backends:
- name: backstream
  class: B1
  instances: 2
  options: public

但是第 7 个和第 8 个选项卡的响应仍然在第 1 个选项卡的响应后 30 秒后返回。
怎么来的??????

这是日志。

2013-05-05 05:50:31.220 /test 200 30035ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
I 2013-05-05 05: 50:31.217 得救;键:appstats :001200,部分:27 字节,完整:1565 字节,开销:0.000 + 0.002;链接: http: //xxxxxxxxx.appspot.com/_ah/sta
2013-05-05 05:50:29.423 /test 200 30186ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome /26.0.1410.64 Safari/537.31
I 2013-05-05 05:50:29.420 已保存;关键:appstats:099400,部分:27 字节,完整:1565 字节,开销:0.000 + 0.003;链接: http: //xxxxxxxxx.appspot.com/_ah/sta
2013-05-05 05:50:08.984 /test 200 30034ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome /26.0.1410.64 Safari/537.31
I 2013-05-05 05:50:08.982 已保存;键:appstats :078900,部分:27 字节,完整:1565 字节,开销:0.000 + 0.003;链接: http: //xxxxxxxxx.appspot.com/_ah/sta
2013-05-05 05:50:07.217 /test 200 30189ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome /26.0.1410.64 Safari/537.31
I 2013-05-05 05:50:07.214 已保存;关键:appstats:077000,部分:27 字节,完整:1567 字节,开销:0.000 + 0.154;链接: http: //xxxxxxxxx.appspot.com/_ah/sta
2013-05-05 05:50:05.181 /test 200 30212ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome /26.0.1410.64 Safari/537.31
I 2013-05-05 05:50:05.179 已保存;键:appstats :075100,部分:27 字节,完整:1565 字节,开销:0.000 + 0.002;链接: http: //xxxxxxxxx.appspot.com/_ah/sta
2013-05-05 05:50:03.214 /test 200 30102ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome /26.0.1410.64 Safari/537.31
I 2013-05-05 05:50:03.211 已保存;关键:appstats:073200,部分:27 字节,完整:1565 字节,开销:0.000 + 0.002;链接: http: //xxxxxxxxx.appspot.com/_ah/sta
2013-05-05 05:50:00.965 /test 200 30036ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome /26.0.1410.64 Safari/537.31
I 2013-05-05 05:50:00.962 已保存;键:appstats :070900,部分:27 字节,完整:1565 字节,开销:0.000 + 0.002;链接: http: //xxxxxxxxx.appspot.com/_ah/sta
2013-05-05 05:49:59.014 /test 200 30035ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome /26.0.1410.64 Safari/537.31
I 2013-05-05 05:49:59.012 已保存;关键:appstats:069000,部分:27 字节,完整:1565 字节,开销:0.000 + 0.003;链接:http: //xxxxxxxxx.appspot.com/_ah/sta


我还在前端实例上尝试了这 8 个请求测试,结果是一样的。
所以,这不仅仅是一个后端现象。

4

1 回答 1

0

这是因为后端选项“公共”。
在我将其更改为“驻留”以删除选项语法后,实例之间的负载平衡工作正常。
我猜负载平衡在“公共”后端实例之间不起作用。

于 2013-05-06T11:07:10.683 回答