当前位置: 首页 > news >正文

湖北网站建设模板下载重庆建筑工程造价信息网

湖北网站建设模板下载,重庆建筑工程造价信息网,网站tdk建设,帮企商城源码目录 Feign的使用及配置 1、Feign替代RestTemplate 2、使用Fegin步骤 3、自定义配置 4、Feign使用优化 5、Feign的最佳实践方式 Feign的使用及配置 1、Feign替代RestTemplate RestTemplate方式远程调用的问题 问题: 1、代码可读性差,编程体验不同…

目录

Feign的使用及配置

1、Feign替代RestTemplate

2、使用Fegin步骤

3、自定义配置

4、Feign使用优化

5、Feign的最佳实践方式


Feign的使用及配置

1、Feign替代RestTemplate

RestTemplate方式远程调用的问题

 问题:

1、代码可读性差,编程体验不同统一

2、参数复杂,URL难以维护

Feign介绍

Feign是一个声明式的http客户端,官方地址:OpenFeign · GitHub

其作用就是帮助我们实现http请求的发送,解决上面提到的问题。

2、使用Fegin步骤

1、引入依赖

        <!--feign客户端依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>

2、在启动类添加注解开启Feign的功能

@EnableFeignClients
@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
@EnableFeignClients
public class OrderApplication {public static void main(String[] args) {SpringApplication.run(OrderApplication.class, args);}
}

 3、编写Feign客户端

@FeignClient("userservice")//服务名称
public interface UserClient {@GetMapping("/user/{id}")//访问路径User findById(@PathVariable("id") Long id);//对应远程调用controller接口
}

主要是基于SpringMVC的注解来声明远程调用的信息,比如:

服务名称: userservice        请求方式:GET·        请求路径:/user/{lid}·

请求参数:Long id·        返回值类型: User

3、自定义配置

Feign运行自定义配置来覆盖默认配置,可以修改的配置如下:
 

类型作用说明
feign.Logger.Level修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL
feign.codec.Decoder响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象
feign.codec.Encoder请求参数编码将请求参数编码,便于通过http请求发送
feign.Contract支持的注解格式默认是SpringMVC的注解
feign. Retryer失败重试机制请求失败的重试机制,默认是没有,不过会使用Ribbon的重试

Feign日志配置

1、yml文件配置

全局生效

feign:client:config:default:  #这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置loggerLevel: FULL #日志级别

局部生效

feign:client:config:userservice: #这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置loggerLevel: FULL #日志级别

2、 java代码配置

定义一个配置类

public class DefaultFeignConfig {@Beanpublic Logger.Level logLevel(){return Logger.Level.BASIC;}
}

如果是全局配置,则把它放到@EnableFeignClients这个注解中:

@EnableFeignClients(defaultConfiguration = DefaultFeignConfig.class)

如果是局部配置,则把它放到@FeignClient这个注解中:

@FeignClient(value = "userservice",configuration = FeignClientConfiguration.class)

4、Feign使用优化

Feign底层的客户端实现:

URLConnection:默认实现,不支持连接池.

Apache HttpClient:支持连接池

OKHttp:支持连接池

因此优化Feign的性能主要包括:

使用连接池代替默认的URLConnection

日志级别,最好用basic或none

1、引入依赖

        <!--引入HttpClient依赖--><dependency><groupId>io.github.openfeign</groupId><artifactId>feign-httpclient</artifactId></dependency>

 2、配置连接池

feign:httpclient:enabled: true # 支持HttpClient的开关max-connections: 200 # 最大连接数max-connections-per-route: 50 # 单个路径的最大连接数

总结:

Feign的优化:
1.日志级别尽量用basic
2.使用HttpClient或OKHttp代替URLConnection
        引入feign-httpClient依赖
        配置文件开启httpclient功能,设置连接池参数

5、Feign的最佳实践方式

方式一(继承):

给消费者的FeignClient和提供者的controller定义统一的父接口作为标准。
 

 弊端:

1、服务紧耦合
2、父接口参数列表中的映射不会被继承

方式二(抽取):

将FeignClient抽取为独立模块,并且把接口有关的POJO、默认的Feign配置都放到这个模块中,

提供给所有消费者使用

使用这种方式时,如果定义的FeignClient不在SpringBootApplication的扫描包范围时,这些

FeignClient无法使用。有两种方式解决:

1、指定FeignClient所在包

 2、指定FeignClient字节码

 总结:Feign的最佳实践

1、让controller和FeignClient继承同一接口

2、将Feignclient、POJO、Feign的默认配置都定义到一个项目中,供所有消费者使用
 

http://www.yayakq.cn/news/700446/

相关文章:

  • 静态企业网站源码陕西做网站公司有哪些
  • 哪个网站可以做汽车评估广州注销营业执照
  • 高端外贸网站建设江西省楚天建设集团有限公司网站
  • 安徽省省建设厅网站软件网站开发
  • 公司网站建设需要显示什么大方网站制作
  • 网址大全123官方网站一汽奔腾深圳怎么制作公司网页
  • 设计师找工作的网站网站联系方式修改织梦
  • 云图书馆平台网站建设河北省建设厅网站6
  • 遵义住房和城乡建设局网站室内装修设计要学多久
  • 济南网站建设凡科wordpress 页面加载特效
  • 英文网站建设哪家强刚做网站做多用户还是单用户
  • 学校网站制作html做网站维护的人叫啥
  • 国家基础设施建设网站西安公司排行榜
  • seo技术建站有什么办法可以在备案期间网站不影响seo
  • 网站搜索引擎优化报告wordpress必要的插件
  • 昆明市城建设档案馆网站建设网站要学什么
  • 网站制作 成都手机卡顿优化软件
  • 哈尔滨网站建设工作室母婴推广网站
  • 南京网站c建设云世家wordpress显示标题
  • 网站定制设计制作公司网站seo合同
  • 做58网站怎么赚钱吗钙网logo设计
  • 网站租服务器建设银行手机银行app类型
  • 做公司网站需要如何申请做网站编辑呢
  • 简述seo对各类网站的作用个人备案的公司网站
  • 手机商场网站制作网页设计图片排版模板
  • 上海网站建设的网站百度指数热度榜
  • php网站搭建环境搭建wordpress混乱
  • 企业网站备案拍照深圳向失业人员发放补贴
  • 自主网站制作三五互联网站
  • 2018年网站开发技术企业邮箱号码从哪里查