在拍拍贷的网页上,经常能出现下图这样的现象:
千万别以为真的在加载中,等一会儿页面能出来——基本等几秒还是这样子,这辈子都没戏了。
在Chrome浏览器中,敲一下F12键,就能知道出了啥事情:
Failed to load resource: the server responded with a status of 500 ()
TypeError: Cannot create property 'result' on string '{"Message":"TargetUrl: http://invdebt.ppdapi.com/gateway/h5/debtBuy/getBuyList
Cause: [HystrixRuntimeException]{soa.debt could not acquire a semaphore for execution and no fallback available.} [RuntimeException]{could not acquire a semaphore for execution} "}'
at app.f1c11efbba4920460173.js:1
服务器内部错误500,在Hystrix中,semaphore用于控制并发数量(maxConcurrentRequests),于是从上面的错误我们可以看出:
1. 拍拍贷服务器能力不足,非常容易达到并发数量上限,但是,拍拍贷明显不肯增加服务器数量;
2. 拍拍贷在服务器端的代码并未对此种情况做出任何的处理(no fallback available),默认是不会到达并发上限,不知道是莫名过于自信,还是不知道如何处理;
3. 拍拍贷前端的程序员,默认所有请求都会正确回应,绝不会出现错误,所以完全没有try...catch代码,一旦服务器返回错误,网页就是等待状态死那里啦!