对于高并发调用TOP的回答

一个开发者的疑问:
应用程序会调用TOP的API去执行任务,首先根据单个任务执行时间很长,其次在用户量增加的时候线程并发量很大,出现连接重置等网络问题。


回答:
1.合理切割任务,将任务粒度放小,减小事务时间,提高事务执行成功率,降低回滚代价。
2.合并任务中重复的内容,在时间间隔容许的范围内,减少可能重复的操作。
3.看是否有批量操作接口,减少单个循环调用次数。
4.控制工作线程池线程个数,根据实际性能和对方服务器处理能力设置并行任务个数。

第四点在说明一下:
线程并发开的越多未必成功率越高:
首先本地资源有限(开的越多线程,本地GC回收频率越高,影响执行速度,效率反而降低)
其次,对方可能会由于你的ip连接数过多主动拒绝连接。(DOS保护)
再次,信道无法复用。(当前1.6JDK版本已经能够较好的复用TCP信道,并发瞬间开大量的TCP信道本身就是一种损耗,有时候部分串行化,某种程度上会减少产生TCP信道的数目合理利用信道,提高效率和成功率,客户端做好流控也很重要。)

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值