【Java】SpringCloud整合Feign超时时间配置
SpringCloud整合Feign超时时间配置
isWulongbo发布于 今天 06:49
前言
该项目基于 SpringCloud整合Feign调用重构 环境上演示。
模块构建
引入公共模块 springcloud-common
- BaseApiService
package com.baba.wlb.base;import lombok.Data;
import org.springframework.stereotype.Component;
@Data
@Component
public class BaseApiService<T> {
public BaseResponse<T> setResultError(Integer code, String msg) {
return setResult(code, msg, null);
}
// 返回错误,可以传msg
public BaseResponse<T> setResultError(String msg) {
return setResult(500, msg, null);
}
// 返回成功,可以传data值
public BaseResponse<T> setResultSuccess(T data) {
return setResult(200, "success", data);
}
// 返回成功,沒有data值
public BaseResponse<T> setResultSuccess() {
return setResult(200, "success", null);
}
// 返回成功,沒有data值
public BaseResponse<T> setResultSuccess(String msg) {
return setResult(200, msg, null);
}
// 通用封装
public BaseResponse<T> setResult(Integer code, String msg, T data) {
return new BaseResponse<T>(code, msg, data);
}
//调用数据库封装
public Boolean toDaoResult(int result){
return result>0?true:false;
}
}
- BaseResponse
package com.baba.wlb.base;import lombok.Data;
@Data
public class BaseResponse<T> {
/**
* 返回码
*/
private Integer code;
/**
* 消息(最好用简写,不占用宽带)
*/ private String msg;
/**
* 数据
*/
private T data;
public BaseResponse() {
}
public BaseResponse(Integer code, String msg, T data) {
super();
this.code = code;
this.msg = msg;
this.data = data;
}
}
同时在 springcloud-api-member-service
和 springcloud-api-order-service
中都引入 springcloud-common
模块maven依赖。
springcloud-api-member-service
新增测试接口 getUserInfo():
@RequestMapping("/getUserInfo")BaseResponse getUserInfo();
springcloud-api-member-service-impl
实现类中对接口延迟1.5s操作:
@Overridepublic BaseResponse getUserInfo() {
try {
// 产生1.5s 的延迟
Thread.sleep(1500);
} catch (Exception e) {
e.printStackTrace();
}
return setResultSuccess("订单服务接口调用会员服务接口成功!");
}
springcloud-api-order-service-impl
订单模块调用会员模块:
@Override@RequestMapping("/getUserInfoByMember")
public BaseResponse getUserInfoByMember() {
return memberServiceFeign.getUserInfo();
}
测试
启动 Eureka Server服务,以及订单和会员服务,并
浏览器访问 http://localhost:8200/getUserInfoByMember:
查看后台日志:发现报超时错误。
解决方案
在 springcloud-api-order-service-impl
模块中加上如下配置配置 开启超时时间配置:
ribbon:##指的是建立连接所用时间,适用于网络状态正常的情况下,两端连接所用的时间
ReadTimeout: 5000
##指的是建立连接后从服务器读取到可用资源时间
ConnectTimeout: 5000
重启order 服务再次访问
javaspringboot
阅读 44发布于 今天 06:49
本作品系原创,采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
isWulongbo
在人生的头三十年,你培养习惯,后三十年,习惯铸就你
178 声望
8 粉丝
isWulongbo
在人生的头三十年,你培养习惯,后三十年,习惯铸就你
178 声望
8 粉丝
宣传栏
前言
该项目基于 SpringCloud整合Feign调用重构 环境上演示。
模块构建
引入公共模块 springcloud-common
- BaseApiService
package com.baba.wlb.base;import lombok.Data;
import org.springframework.stereotype.Component;
@Data
@Component
public class BaseApiService<T> {
public BaseResponse<T> setResultError(Integer code, String msg) {
return setResult(code, msg, null);
}
// 返回错误,可以传msg
public BaseResponse<T> setResultError(String msg) {
return setResult(500, msg, null);
}
// 返回成功,可以传data值
public BaseResponse<T> setResultSuccess(T data) {
return setResult(200, "success", data);
}
// 返回成功,沒有data值
public BaseResponse<T> setResultSuccess() {
return setResult(200, "success", null);
}
// 返回成功,沒有data值
public BaseResponse<T> setResultSuccess(String msg) {
return setResult(200, msg, null);
}
// 通用封装
public BaseResponse<T> setResult(Integer code, String msg, T data) {
return new BaseResponse<T>(code, msg, data);
}
//调用数据库封装
public Boolean toDaoResult(int result){
return result>0?true:false;
}
}
- BaseResponse
package com.baba.wlb.base;import lombok.Data;
@Data
public class BaseResponse<T> {
/**
* 返回码
*/
private Integer code;
/**
* 消息(最好用简写,不占用宽带)
*/ private String msg;
/**
* 数据
*/
private T data;
public BaseResponse() {
}
public BaseResponse(Integer code, String msg, T data) {
super();
this.code = code;
this.msg = msg;
this.data = data;
}
}
同时在 springcloud-api-member-service
和 springcloud-api-order-service
中都引入 springcloud-common
模块maven依赖。
springcloud-api-member-service
新增测试接口 getUserInfo():
@RequestMapping("/getUserInfo")BaseResponse getUserInfo();
springcloud-api-member-service-impl
实现类中对接口延迟1.5s操作:
@Overridepublic BaseResponse getUserInfo() {
try {
// 产生1.5s 的延迟
Thread.sleep(1500);
} catch (Exception e) {
e.printStackTrace();
}
return setResultSuccess("订单服务接口调用会员服务接口成功!");
}
springcloud-api-order-service-impl
订单模块调用会员模块:
@Override@RequestMapping("/getUserInfoByMember")
public BaseResponse getUserInfoByMember() {
return memberServiceFeign.getUserInfo();
}
测试
启动 Eureka Server服务,以及订单和会员服务,并
浏览器访问 http://localhost:8200/getUserInfoByMember:
查看后台日志:发现报超时错误。
解决方案
在 springcloud-api-order-service-impl
模块中加上如下配置配置 开启超时时间配置:
ribbon:##指的是建立连接所用时间,适用于网络状态正常的情况下,两端连接所用的时间
ReadTimeout: 5000
##指的是建立连接后从服务器读取到可用资源时间
ConnectTimeout: 5000
重启order 服务再次访问
以上是 【Java】SpringCloud整合Feign超时时间配置 的全部内容, 来源链接: utcz.com/a/108471.html
得票时间