请参考地址:https://www.cnblogs.com/by-dream/p/5611555.html
另外如果接口请求的是json参数,请参考
http://blog.csdn.net/nyist327/article/details/44653965,
这里说优化方案:
当用压力测试软件测试接口在高并发的情况下出现内存溢出,数据库死锁等系统奔溃情况的时候,就要考虑优化代码,优化途径一般有二:
1)用redis缓存
public List<UserInfoVO> getUserInfoByCache(Integer userId) {
Gson gson = new Gson();
String indexRecommendListCache = "indexRecommend_" + userId;
List<UserInfoVO> userInfoVOList = new ArrayList<>();
String jsonStr = redisCacheManger.getRedisCacheInfo(indexRecommendListCache);
if (StringUtils.isNotBlank(jsonStr)) {
logger.info("从缓存取出为你推荐用户...");
userInfoVOList = gson.fromJson(jsonStr, new TypeToken<List<UserInfoVO>>() {
}.getType());
} else {
logger.info("从数据库取出为你推荐用户...");
userInfoVOList = indexRecommendUserList(userId);
redisCacheManger.setRedisCacheInfo(indexRecommendListCache, RedisCacheManger.REDIS_CACHE_DAY_EXPIRE_DEFAULT, gson.toJson(userInfoVOList));
}
return userInfoVOList;
}
2)开线程池分批执行调度任务
NoticeExecutor.getExecutor().execute(() -> pushUserMapper.updateByPrimaryKeySelective(pushUser));
经优化,压力测试通过!