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

2021年免费的网站有哪些建设 春风 摩托车官方网站

2021年免费的网站有哪些,建设 春风 摩托车官方网站,wordpress支持多少并发,wordpress评论增强文章目录 前言1. 问题分析2. 了解Feign3. 项目整合Feign3.1 引入依赖3.2 添加注解3.3 编写Feign客户端3.4 测试3.5 总结 4. 自定义配置4.1 配置文件方式4.2 Java代码方式 5. Feign使用优化5.1 引入依赖5.2 配置连接池 6. Feign最佳实践6.1 继承方式6.2 抽取方式 前言 微服务远… 文章目录 前言1. 问题分析2. 了解Feign3. 项目整合Feign3.1 引入依赖3.2 添加注解3.3 编写Feign客户端3.4 测试3.5 总结 4. 自定义配置4.1 配置文件方式4.2 Java代码方式 5. Feign使用优化5.1 引入依赖5.2 配置连接池 6. Feign最佳实践6.1 继承方式6.2 抽取方式 前言 微服务远程调用openFeign整合认识SpringCloud的一些核心组件openFeign。 1. 问题分析 先来看我们以前利用RestTemplate发起远程调用的代码 存在的问题 在服务消费者中我们把url地址硬编码到代码中不方便后期维护。在服务消费者中不清楚服务提供者的状态。服务消费者调用服务提供者时候如果出现故障能否及时发现不向用户抛出异常页面RestTemplate这种请求调用方式是否还有优化空间能不能类似于Dubbo那样玩 2. 了解Feign Feign是一个声明式的http客户端官方地址github.com/OpenFeign/f… 其作用就是帮助我们优雅的实现http请求的发送解决上面提到的问题。 3. 项目整合Feign Fegin的使用步骤如下 3.1 引入依赖 我们在order-service服务的pom文件中引入feign的依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId /dependency3.2 添加注解 在order-service的启动类添加注解开启Feign的功能 3.3 编写Feign客户端 package com.cisyam.order.client;import com.cisyam.pojo.User; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable;/*** author gaoziman*/ FeignClient(userservice) public interface UserClient {/*** 通过用户后编号去获取用户对象* param id* return*/GetMapping(/user/{id})User findById(PathVariable(id) Long id); }这个客户端主要是基于SpringMVC的注解来声明远程调用的信息比如 服务名称userservice请求方式GET请求路径/user/{id}请求参数Long id返回值类型User 这样Feign就可以帮助我们发送http请求无需自己使用RestTemplate来发送了。 3.4 测试 修改order-service中的OrderService类中的queryOrderById方法使用Feign客户端代替RestTemplate 3.5 总结 使用Feign的步骤 ① 引入依赖 ② 添加EnableFeignClients注解 ③ 编写FeignClient接口 ④ 使用FeignClient中定义的方法代替RestTemplate 4. 自定义配置 Feign可以支持很多的自定义配置如下表所示 类型作用说明feign.Logger.Level修改日志级别包含四种不同的级别NONE、BASIC、HEADERS、FULLfeign.codec.Decoder响应结果的解析器http远程调用的结果做解析例如解析json字符串为java对象feign.codec.Encoderfeign. Contract支持的注解格式默认是SpringMVC的注解feign. Retryer失败重试机制请求失败的重试机制默认是没有不过会使用Ribbon的重试 一般情况下默认值就能满足我们使用如果要自定义时只需要创建自定义的Bean覆盖默认Bean即可。 下面以日志为例来演示如何自定义配置。 4.1 配置文件方式 基于配置文件修改feign的日志级别可以针对单个服务 feign: client:config: userservice: # 针对某个微服务的配置loggerLevel: FULL # 日志级别 也可以针对所有服务 feign: client:config: default: # 这里用default就是全局配置如果是写服务名称则是针对某个微服务的配置loggerLevel: FULL # 日志级别 而日志的级别分为四种 NONE不记录任何日志信息这是默认值。BASIC仅记录请求的方法URL以及响应状态码和执行时间HEADERS在BASIC的基础上额外记录了请求和响应的头信息FULL记录所有请求和响应的明细包括头信息、请求体、元数据。 4.2 Java代码方式 也可以基于Java代码来修改日志级别先声明一个类然后声明一个Logger.Level的对象 public class DefaultFeignConfiguration {Beanpublic Logger.Level feignLogLevel(){return Logger.Level.BASIC; // 日志级别为BASIC} }如果要全局生效将其放到启动类的EnableFeignClients这个注解中 EnableFeignClients(defaultConfiguration DefaultFeignConfiguration .class) 如果是局部生效则把它放到对应的FeignClient这个注解中 FeignClient(value userservice, configuration DefaultFeignConfiguration .class) 5. Feign使用优化 Feign底层发起http请求依赖于其它的框架。其底层客户端实现包括 URLConnection默认实现不支持连接池Apache HttpClient 支持连接池OKHttp支持连接池 因此提高Feign的性能主要手段就是使用连接池代替默认的URLConnection。 这里我们用Apache的HttpClient来演示。 5.1 引入依赖 在order-service的pom文件中引入Apache的HttpClient依赖 !--httpClient的依赖 -- dependencygroupIdio.github.openfeign/groupIdartifactIdfeign-httpclient/artifactId /dependency5.2 配置连接池 在order-service的application.yml中添加配置 feign:client:config:default: # default全局的配置loggerLevel: BASIC # 日志级别BASIC就是基本的请求和响应信息httpclient:enabled: true # 开启feign对HttpClient的支持max-connections: 200 # 最大的连接数max-connections-per-route: 50 # 每个路径的最大连接数接下来在FeignClientFactoryBean中的loadBalance方法中打断点 Debug方式启动order-service服务可以看到这里的client底层就是Apache HttpClient 总结Feign的优化 日志级别尽量用basic 使用HttpClient或OKHttp代替URLConnection 引入feign-httpClient依赖配置文件开启httpClient功能设置连接池参数 6. Feign最佳实践 所谓 最佳时间就是使用过程中总结的经验最好的一种使用方式。 仔细的同学可以观察可以发现Feign的客户端与服务提供者的controller代码非常相似 feign客户端 UserController 有没有一种办法简化这种重复的代码编写呢 大家想到的结局方式是什么呢 这里提供两种解决方式看看你有没有想到呢 6.1 继承方式 一样的代码可以通过继承来共享 定义一个API接口利用定义方法并基于SpringMVC注解做声明。Feign客户端和Controller都集成改接口 优点 简单实现了代码共享 缺点 服务提供方、服务消费方紧耦合 参数列表中的注解映射并不会继承因此Controller中必须再次声明方法、参数列表、注解 6.2 抽取方式 将Feign的Client抽取为独立模块并且把接口有关的POJO、默认的Feign配置都放到这个模块中提供给所有消费者使用。 例如将UserClient、User、Feign的默认配置都抽取到一个feign-api包中所有微服务引用该依赖包即可直接使用。
http://www.hkea.cn/news/14518644/

相关文章:

  • 做网站一个人可以吗食品包装设计价格
  • 群晖wordpress 站点推销商务网站的途径有哪些
  • 沈阳快速网站建设网站开发微网页制作专业公司
  • 搜索网站不显示图片南京网站优化方案
  • 住房建设部官方网站办事大厅做网页价格
  • 自适应h5网站东莞金融网站建设
  • 宿州网站建设优化兰州网站建设索王道下拉
  • 网站建设如何记账淮安市建设厅网站
  • php企业网站开发简短的软文范例
  • 网站seo在线优化下载京东购物
  • 宝塔面板建站教程厦门市湖里区建设局网站
  • 南岸网站建设制作网站制作公司
  • 如何建立淘宝客网站素材网站下载
  • 家政月嫂网站源码手机建设中网站
  • 网站dns解析怎么改网站域名
  • 网站开发服务费属于哪种进项购物网站开发将商品导入数据库
  • 福州网站制作官网长沙专业公司网站建设源头
  • 做网站如何语音网站开发软件系统
  • 网站建设备案策划书空白网站怎么做
  • 网站建设公司价格差别舞蹈培训机构网站模板
  • 辽宁网站建站wordpress新用户默认
  • 网站开发后台数据怎么来网站服务器建设软件
  • 做网站傻瓜做古玩的网站
  • 网站设计公司要多少钱网站托管
  • 用腾讯云做购物网站视频厚街镇网站建设
  • 河南南阳油田网站建设wordpress后台慢js
  • 网站推广公司傻大白青岛网站排名提升
  • 作品集的个人网站怎么做用手机可以做网站吗
  • 保定网站制作案例中国机械加工最多的地方
  • 做h5动画网站wordpress超精简主题