报错大致信息如下:
nested exception is com.alibaba.dubbo.rpc.RpcException: Forbid consumer 192.168.136.1 access service com.taotao.content.service.ContentService from registry 192.168.25.128:2181 use dubbo version 2.5.3
现象:请求商品详情页,一开始正常请求和响应,多请求几个详情页开始转圈圈,详情页无法打开。
原因是 redis 连接池没有关闭,修改如下:
public TbItem getTbItemByid(Long itemid) {
//添加redis缓存
Jedis jedis = null;
try {
if(itemid != null){
jedis = jedisPool.getResource();
String jedisRes = jedis.get(ITEM_INFO_KEY+":"+itemid+":BASE");
if(StringUtils.isNotBlank(jedisRes)){
//取redis数据的时候,重新设置expire
jedis.expire(ITEM_INFO_KEY+":"+itemid+":BASE", ITEM_INFO_KEY_EXPIRE);
return JsonUtils.jsonToPojo(jedisRes, TbItem.class);
}
}
} catch (Exception e) {
e.printStackTrace();
}finally{
//关闭jedis,其实是还给连接池
jedis.close();
}
TbItem tbItem = itemMapper.selectByPrimaryKey(itemid);
try {
if(tbItem!=null){
jedis = jedisPool.getResource();
jedis.set(ITEM_INFO_KEY+":"+itemid+":BASE", JsonUtils.objectToJson(tbItem));
//存储redis数据的时候设置expire
jedis.expire(ITEM_INFO_KEY+":"+itemid+":BASE", ITEM_INFO_KEY_EXPIRE);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
//关闭jedis,其实是还给连接池
jedis.close();
}
return tbItem;
}