代码之家  ›  专栏  ›  技术社区  ›  dvlcis

点火信号灯不支持高流量?

  •  0
  • dvlcis  · 技术社区  · 7 年前

    我有一个Ignite 5客户机+1服务器集群,客户机从网络接收请求并将请求发送到Ignite服务器进行进一步处理,在我的例子中,我想为传入请求添加并发限制,我使用如下代码:

    public boolean handleEntrustRequest(TestEntrustInfo TestEntrustInfo) {
    
        if(!concurrencySemaphore.tryAcquire()){
    
            return false;
        }
    
        try {
            return handleEntrustRequestReal(TestEntrustInfo);
        }finally {
    
            concurrencySemaphore.release();
        }
    
    }
    

    我尝试将限制数设置为100000,即对传入请求没有限制。

    在低并发流量下,如50~100左右,代码运行平稳。 但是随着流量的增加,我可以看到请求不能正常发送到客户机,请求似乎挂起然后超时,但是如果我删除上面的代码 具有1000个并发流量的传入请求可以快速处理。

    在此链接中: https://cwiki.apache.org/confluence/display/OPENWHISK/2018-02-14+OW+Tech+Interchange+-+Meeting+Notes 我看到这句话:

    新的LB,状态是一致的,甚至在本地,槽到调用程序的impl。使用信号量(低并发级别);

    同时粘贴jstack: 请在这里检查一下 https://textsave.de/text/E5yRP0iEqSxkzwqw

    1 回复  |  直到 7 年前
        1
  •  0
  •   dvlcis    7 年前

    推荐文章