如题:
项目设定为300个线程,
1.假设项目的300个线程都被使用了,其他请求只能等待
2.又或者项目需要使用HttpClient 访问第三方接口,但是第三方接口不在自己项目内,是不可控的,会出现延时或其他问题
都会会让客户出现不好的体验,所以请教各位大神,你们遇到这种情况如何解决的
我的思路是:使用HttpClient异步请求来实现300个线程接受3000个请求,这种方法来提高系统容量,但是具体实现还得研究~
第一个问题使用消息队列或者用乐观锁,第二个问题,看你的框架、负载均衡等
我的理解你的问题归根结底还是本身系统的性能问题,如果在不增加线程的情况下,还希望增加系统的处理容量,无非就是提高单个线程对事务的处理速度上面
提高处理速度,这样提高单位时间内的处理能力,一般从调整代码的部分着手。
另外一点就是你说的在线程中对HTTP接口的阻塞访问的问题,如果想避免这种情况的出现,最好的办法就是分模块,把事务分级分层次处理,你可以单独的
增加一个HTTP模块用来和远端的第三方接口进行通信,当在线程中需要使用HTTP接口的时候,使用消息机制通知HTTP模块,由该模块负责交互,这样也可以是
实现异步的处理,防止由于网络等问题出现的延迟的问题
主要就是异步来提升,在等待第三方接口结果返回的时候,让出CPU等来做一些别的事情,比如处理新的请求。