如何在不加线程的情况下,提高系统容量??请教大神 10C

如题:
项目设定为300个线程,
1.假设项目的300个线程都被使用了,其他请求只能等待
2.又或者项目需要使用HttpClient 访问第三方接口,但是第三方接口不在自己项目内,是不可控的,会出现延时或其他问题
都会会让客户出现不好的体验,所以请教各位大神,你们遇到这种情况如何解决的

        我的思路是:使用HttpClient异步请求来实现300个线程接受3000个请求,这种方法来提高系统容量,但是具体实现还得研究~

3个回答

我的理解你的问题归根结底还是本身系统的性能问题,如果在不增加线程的情况下,还希望增加系统的处理容量,无非就是提高单个线程对事务的处理速度上面
提高处理速度,这样提高单位时间内的处理能力,一般从调整代码的部分着手。
另外一点就是你说的在线程中对HTTP接口的阻塞访问的问题,如果想避免这种情况的出现,最好的办法就是分模块,把事务分级分层次处理,你可以单独的
增加一个HTTP模块用来和远端的第三方接口进行通信,当在线程中需要使用HTTP接口的时候,使用消息机制通知HTTP模块,由该模块负责交互,这样也可以是
实现异步的处理,防止由于网络等问题出现的延迟的问题

weixin_38221608
buyax 大神你这种情况能实现300个线程处理3000吗? 我没具体没实现过这种情况没什么经验,
2 年多之前 回复

第一个问题使用消息队列或者用乐观锁,第二个问题,看你的框架、负载均衡等

主要就是异步来提升,在等待第三方接口结果返回的时候,让出CPU等来做一些别的事情,比如处理新的请求。

oyljerry
oyljerry 回复buyax: 异步方法会有提升,可以测试一下
2 年多之前 回复
weixin_38221608
buyax 我就是想用HttpClient异步来提升的,
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!