openfeign应用汇总
openfeign应用汇总(一)
1、springcloud接收JSON以及XML报文数据
import java.io.Serializable; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import lombok.Data; @Data @JacksonXmlRootElement(localName="root") #使用XML转化标签 @JsonInclude(JsonInclude.Include.NON_NULL) public class BaseRequest<T> implements Serializable { private static final long serialVersionUID = 1L; @JacksonXmlProperty(localName="head") private Head head; @JacksonXmlProperty(localName="body") private T body; }
import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Data; @Data @JsonInclude(JsonInclude.Include.NON_NULL) public class CouponsRequest { @JSONField(name="openId",ordinal=1) private String openId; //用户openId @JSONField(name="stock_id",ordinal=2) private String stock_id; //批次号 @JSONField(name="out_request_no",ordinal=3) private String out_request_no; //商户单据号,发放凭据号 @JSONField(name="appid",ordinal=4) private String appid; //公众账号ID @JSONField(name="stock_creator_mchid",ordinal=5) private String stock_creator_mchid; //创建批次的商户号 @JSONField(name="coupon_id",ordinal=6) private String coupon_id; //卡券Id @JSONField(name="coupon_value",ordinal=7) private String coupon_value; //指定面额发券,面额 @JSONField(name="coupon_minimum",ordinal=8) private String coupon_minimum; //指定面额发券,券门槛 }
注解说明
OJSONField(ordinal =0)序列化字段的顺序,默认是0
OJSONField(name =“)用于解决属性名和key不一致的情况,当前端传过来的字段名不一样的时候,我们可以在字段名上加上这个注解
@JSONField(format =“yyyy-MM-dd HH:mm:ss”) 用在Date属性上,自动格式化日期
@JSONField(serialize = false) 是否要把这个字段序列化成JSON字符串Q,默认是true
@JSONField(deserialize = false) 字段是否需要进行反序列化,默认是true
2、openfeign设置超时时间(开启hystrix熔断必须设置command超时时间,openfeign内部使用ribbon)
feign: client: config: default: # 这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置 connectTimeout: 60000 #feign访问超时时间,底层使用ribbon readTimeout: 60000 hystrix: enabled: true #开启hystrix熔断 #在30秒内,发生20次以上的请求时,假如错误率达到50%以上,则断路器将被打开。 hystrix: command: default: # 或者填写具体的服务名称 execution: isolation: #strategy: SEMAPHORE #开启隔离模式 thread: timeoutInMilliseconds: 60000 #请求超时时间 circuitBreaker: sleepWindowInMilliseconds: 30000 #窗口期 requestVolumeThreshold: 1000 #请求阈值 errorThresholdPercentage: 50 #错误百分比阈值 #设置核心线程数 threadpool: default: coreSize: 200 #并发执行的最大线程数,默认10 maxQueuesize: 200 #BlockingQueue的最大队列数 queuesizeRejectionThreshold: 180 #即使maxQueuesize没有达到,达到queuesizeRejectionThreshold该值后,请求也会被拒绝
3、openfeign处理请求流程
posted on 2023-08-07 19:46 VincentYew 阅读(33) 评论(0) 编辑 收藏 举报