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

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


public boolean handleEntrustRequest(TestEntrustInfo TestEntrustInfo) {


    if(!concurrencySemaphore.tryAcquire()){


        return false;

    }


    try {

        return handleEntrustRequestReal(TestEntrustInfo);

    }finally {


        concurrencySemaphore.release();

    }


}

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


在较低的并发流量中(例如大约50〜100),代码运行平稳,但是在较高的流量下,我可以看到Request无法正常发送到Client,该请求似乎挂起,然后超时,但是如果我删除上面的代码,则传入的Request与可以快速处理1000个并发流量。


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


新的LB,即使在本地也保持状态一致,调用方impl的插槽。带有信号灯(并发程度低);


还要粘贴jstack:请在这里检查它 https://textsave.de/text/E5yRP0iEqSxkzwqw



德玛西亚99
浏览 113回答 1
1回答

慕田峪4524236

正如罗曼所说,使用客户特定的信号量足以解决此问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java