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

网站建设的活动方案域名注册局

网站建设的活动方案,域名注册局,7一12岁手工简单又漂亮,浙江建设厅网站怎么进不去在之前我们两服务之间调用的时候用的是restTemplate,但是这个方式调用存在很多的问题 String url "http://userservice/user/" order.getUserId(); 代码可读性差,编码体验不统一参数复杂的url难以维护 所以我们大力推出我们今天的主角--Fegin Feign是…

在之前我们两服务之间调用的时候用的是restTemplate,但是这个方式调用存在很多的问题

  String url = "http://userservice/user/" + order.getUserId();
  • 代码可读性差,编码体验不统一
  • 参数复杂的url难以维护

所以我们大力推出我们今天的主角--Fegin

       Feign是一个声明式的http客户端,其作用就是帮助我们优雅的实现http请求的发送,解决上面的问题

定义和使用Fegin客户端

1.引入依赖

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

2.在A服务的启动类中添加注解开启Figin的功能

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

3.编写Feign客户端:

@FeignClient(value = "userservice")
public interface UserClient {@GetMapping("/user/{id}")User findById(@PathVariable("id") Long id);
}/*
基于SpringMVC的注解来声明远程调用的信息
服务名称:userservice
请求方式:GET
请求路径:/user/{id}
请求参数:Long id
返回值类型:User
*/

4.使用Fegin客户端代替RestTemplate

@Autowiredprivate UserClient userClient;public Order queryOrderById(Long orderId) {// 1.查询订单Order order = orderMapper.findById(orderId);// 2.用Feign远程调用User user = userClient.findById(order.getUserId());// 3.封装user到Orderorder.setUser(user);// 4.返回return order;}

Fegin的使用步骤

  • 引入依赖
  • 添加@EnableFeginClient注解
  • 编写FeginClient接口
  • 使用FeginClient中定义的方法代替RestTemplate

自定义配置来覆盖默认配置,可修改为:

类型作用说明
fegin.Logger.Decoder修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL

feign.codec.Decoder

响应结果的解析器

http远程调用的结果做解析,例如解析json字符串为java对象

feign.codec.Encoder

请求参数编码

将请求参数编码,便于通过http请求发送

feign. Contract

支持的注解格式

默认是SpringMVC的注解

feign. Retryer

失败重试机制

请求失败的重试机制,默认是没有,不过会使用Ribbon的重试

自定义Fegin的配置

一般配置Fegin日志一般有两种方式:

方法一:

1.全局生效:

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

2.局部生效

feign:client:config: userservice: #这里userseervice就是局部变量loggerLevel: FULL #日志级别

方法二(java代码方式):

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

1.如果是全局配置,则将它放到@EnableFeginClients这个注解中:

@EnableFeignClients(clients = UserClient.class,defaultConfiguration = DefaultFeign

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

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

Fegin性能优化

Fegin的底层的客户端实现:

  • URLConnection:默认实现,不支持连接池
  • Apache HttpClient:支持连接池
  • OKHttp:支持连接池

优化Fegin的性能主要包括:

  • 使用连接池代替默认的URLConnection
  • 日志级别,最好用basic或者none

Fegin添加FttpClient的支持:

引入依赖:

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

配置连接池:

feign:client:config:default: #这里default就是全局变量,如果是写服务名称,则是针对某个微服务的配置loggerLevel: FULL #日志级别httpclient:enabled: true # 支持HttpClient的开关max-connections: 200 # 最大连接数max-connections-per-route: 50 # 单个路径的最大连接数

Fegin的最佳实践

 

@EnableFeignClients(clients ="com.ffyc.fegin.clients")

       如果按照第二种方法将Fegin客户端独立出去,在启动SpringBootAppliaction的扫描包范围时,这些Fegin客户端无法使用,所以我们需要去解决这个问题

方式一(指定FeginClient所在包):

@EnableFeignClients(clients ="ffyc.com.fegin.clients")

方式二(指定FeginClient字节码):

@EnableFeignClients(clients ={ UserClient.class})

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

相关文章:

  • 推荐一些外国做产品网站昆山市建设局网站
  • 网站开发哪家公司电话在线培训平台哪家好
  • 专注与开发网站的北京网络公司wordpress做一个html登陆页
  • 做外贸哪些网站可以发免费信息有网站代码怎么建设
  • node.js做的网站个人网站建设教程视频
  • 网站开发技术方案实验报告wordpress国产插件
  • 做外贸的在哪些网站找工作短链接生成器官方
  • 鲜花类网站建设策划书范文塑料模板厂 塑料模板生产厂家
  • 计算机大二建设网站114分类信息网信息发布
  • 赣州火车站找服务网络推广平台有哪些公司
  • 网站建设 后端开发软件wordpress 标签云 插件
  • 做网站的毕设用什么软件天猫网站做链接怎么做
  • 珠海汽车网站建设域名买卖交易平台
  • 做网站设计赚不赚钱合肥快速做网站
  • html5企业网站案例协和医院网站建设目标
  • html5做的篮球网站建设单位企业锁登陆网站
  • 广州外贸营销型网站建设公司wordpress插件禁用
  • 网站建设用细节取胜棋牌小程序制作开发
  • 自己做的网站项目面试百度seo营销网站
  • 国家电网建设部网站官网做网站站长一年能赚多少钱
  • 网站开发技术课程设计说明书福州网站建设方案服务
  • 学做粤菜的网站苏州网站建设哪家效果好
  • 建筑设计自学网东莞网站优化方法有哪些
  • 深圳微信分销网站设计帮别人备案网站吗
  • 公司网站建设申请书大型网站开发 优帮云
  • 模板网站怎么建设优化西安学校网站建设多少钱
  • 阳泉住房和城乡建设厅网站做网站需要哪些框架
  • 某网站seo诊断分析丽水品牌网站建设
  • 手机网站样式代码个人企业信息查询
  • 网页设计后怎么上传到网站wordpress怎么放验证文件