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

网站开发图书管理系统报告摘要萧山建设局网站首页

网站开发图书管理系统报告摘要,萧山建设局网站首页,wordpress怎么添加描述,wordpress后台修改icp连接OpenFeign使用 Feign和OpenFeign Feign是Netflix开发的⼀个轻量级RESTful的HTTP服务客户端#xff0c;可以使用⽤它来发起请求#xff0c;进行远程调用。Fegin是以Java接口注解的⽅式调⽤Http请求#xff0c;而不是像RestTemplate那样#xff0c;在Java中通过封装HTTP请求…OpenFeign使用 Feign和OpenFeign Feign是Netflix开发的⼀个轻量级RESTful的HTTP服务客户端可以使用⽤它来发起请求进行远程调用。Fegin是以Java接口注解的⽅式调⽤Http请求而不是像RestTemplate那样在Java中通过封装HTTP请求报⽂的⽅式直接调用。 Feign可帮助我们更加便捷优雅的调⽤HTTP API不需要我们去拼接url然后调⽤restTemplate的api但是Fegin的缺点缺点它不支持SpringMVC的注解。 Spring Cloud在Feign的基础上进行了封装从而有了OpenFeign。 Feign githup主页 OpenFeign的使用 OpenFeign的使用非常简单只需要在服务调用方创建远程调用接口然后创建和被调用方方法一样的方法最后在需要使用的地方导入远程调用接口调用接口的方法即可发起请求了。 在pom文件中添加OpenFeign的依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency在调用方服务的启动类上添加EnableFeignClients注解 SpringBootApplication EnableFeignClients //开启Feign的功能 public class Conuserservice01Application {public static void main(String[] args) {try {SpringApplication.run(Conuserservice01Application.class, args);} catch (Exception e) {System.out.println(e.getMessage() e.getMessage());}}}创建远程调用接口 FeignClient(providerservice) //指定要调用的服务需要和被调用的服务的application.name保持一致 public interface ProviderServiceClient {//要调用的服务中的请求需要被调用的服务中的请求方法保持一致GetMapping(/user/{userId})public String getUserById(PathVariable(userId) String userId);}在Controller中使用远程调用接口 RestController RequestMapping(/consumer) public class ConsumerController {Autowiredprivate ProviderServiceClient client;RequestMapping(/{userId})public String getUserById(PathVariable String userId) {LOGGER.info(userId: userId);String user client.getUserById(userId);return user;} }访问/consumer/1的请求会远程调用providerservice服务实例中请求路径为/user/{userId}的请求。 providerservice服务中被访问的请求这个请求的方法要和远程调用接口中的方法保持一致。 RestController RequestMapping(/user) public class UserController {private static final Logger LOGGER LoggerFactory.getLogger(UserController.class);GetMapping(/{userId})public String getUserById(PathVariable String userId) {LOGGER.info(userId: userId);return user1;} }Feign的相关配置 Feign运行自定义配置来覆盖默认配置可以修改的配置如下 一般我们只需要修改日志级别即可。 日志级别 Feign的日志级别有如下几种 NONE默认的不显示任何⽇志性能最好BASIC仅记录请求⽅法、URL、响应状态码以及执⾏时间----⽣产问题追踪HEADERS在BASIC级别的基础上记录请求和响应的headerFULL记录请求和响应的header、body和元数据适⽤于开发及测试环境定位问题 覆盖Feign默认的配置有两个维度一个是为每个FeignClient单独配置局部配置另一个是全局配置下面先来看局部配置。不过要先在yml中设置SpringBoot的日志输出级别 logging:level:# Feign⽇志只会对⽇志级别为debug的做出响应这里需要设置SpingBoot的日志级别为debug否则不会输出feign的日志因为springBoot日志级别默认为info这里把ProviderServiceClient接口的日志级别设置为了debug也可以设置指定目录的日志级别com.example.conuserservice01.client.ProviderServiceClient: debug局部配置日志级别 在application.yml文件中配置日志级别 logging:level:# ProviderServiceClient接口的方法的日志级别为debug其它接口的不会生效com.example.conuserservice01.client.ProviderServiceClient: debug通过FeignClient注解的configuration属性指定日志配置 FeignClient(value providerservice, contextId providerservice, configuration FeignConfig.class) //指定要调用的服务 public interface ProviderServiceClient {//要调用的服务中的请求需要被调用的服务中的请求方法保持一致GetMapping(/user/{userId})public String getUserById(PathVariable(userId) String userId);}日志配置类 public class FeignConfig {BeanLogger.Level feignLevel() {return Logger.Level.FULL;}}全局配置日志级别 全局配置日志级别可以使用yml文件配置也可以使用配置文件进行配置。 这里如果使用服务名称则是全局配置如果使用contextId则是针对指定的FeignClient接口的单独配置 spring:cloud:openfeign:client:config:providerservice: # 如果FeignClient注解设置了contextId这里就使用contextId如果没有设置contextId就使用服务名称loggerLevel: full使用配置类 Configuration public class FeignConfig {BeanLogger.Level feignLevel() {return Logger.Level.FULL;}} 负载均衡 Cloud 2020.0.X版本开始OpenFeign底层不再使用Ribbon了。所以在配置负载均衡的时候使用之前的方式是不行的。 这里使用的注册中心是Nacos最后走的是NacosLoadBalancer。choose方法就是根据负载均衡算法选择一个服务实例进行访问。 我们在浏览器输入地址访问然后调用远程接口访问会执行到SynchronousMethodHandler的invoke方法。这里面executeAndDecode方法会选择服务实例发起请求。continueOrPropagate方法则是请求出现问题后的重试。 选择服务实例并发送请求的执行流程如下 这里会通过choose方法拿到服务实例最后执行的是NacosLoadBalancer中的choose方法。 到这里就完成了获取服务实例的过程。 发送请求的代码在获取到服务实例的步骤后面。 然后会执行到LoadBalancerUtils的executeWithLoadBalancerLifecycleProcessing方法通过feignRequest的url可以看到这个时候已经将服务名转成了根据负载均衡算法选择到的服务实例的ip和端口号 最后可以看到是通过HttpURLConnection发送的请求。 请求压缩和响应压缩 OpenFeign⽀持对请求和响应进行GZIP压缩以减少通信过程中的性能损耗。可以在yml文件中配置请求压缩和响应压缩 spring:cloud:openfeign:compression:request:enabled: true #开启请求压缩min-request-size: 2048 #设置触发压缩的大小下限此处也是默认值mime-types: text/html,application/xml,application/json #设置压缩的数据类型此处也是默认值response:enabled: true #开启响应压缩对熔断器的支持 性能优化 通过前面前面的分析可以看到OpenFeign底层使用的是HttpURLConnection发送的请求但是它不支持连接池。因此主要是针对这一点进行优化。 OpenFeign使用Apache HttpClient客户端 加入htppClient和feign-httpclient的依赖feign-httpclient的version要和openfeign-core的version保持一致。 !-- 使用Apache HttpClient替换Feign原生httpURLConnection --dependencygroupIdorg.apache.httpcomponents/groupIdartifactIdhttpclient/artifactId/dependencydependencygroupIdio.github.openfeign/groupIdartifactIdfeign-httpclient/artifactIdversion12.1/version/dependency开启httpClient的支持默认是开启的。 spring:cloud:openfeign:httpclient:enabled: true注入Apache HttpClient Beanpublic ApacheHttpClient getApacheHttpClient() {return new ApacheHttpClient();} 到这里使用Apache HttpClient的配置就完成了。 使用Apache HttpClient的原理如下 参考 Spring Cloud OpenFeignSpring Cloud OpenFeign - - - 日志级别配置SpringCloud OpenFeign 全功能配置详解Cloud 2020.0.X版本开始OpenFeign底层不再使用Ribbon源码分析及实践测试OpenFeign负载均衡springcloud-Feign-HttpClient连接池(提升 Feign 的并发吞吐量)Nacos负载均衡策略怎样配置Feign使用HttpClient
http://www.w-s-a.com/news/693870/

相关文章:

  • 什么是网站国内高速空间国外做3d模型的网站
  • 效果建网站的公凡科网登陆
  • 网站域名续费多少钱在线制作图片软件
  • 济南城乡住房建设厅网站中国会议营销网站
  • 展示类网站cms网站seo方法
  • 莒县做网站的公司设计师网站模版
  • 顺德顺的网站建设备份的网站建设方案书
  • 如何做网站广告山东电商网站建设
  • 新手建什么网站赚钱吗WordPress搜狗不收录
  • 石家庄招聘哪个网站做的好网站设计建设公司服务商
  • 建设公司网站大概需要多少钱建站平台和网站开发的区别
  • 淄川区住房和城乡建设局网站门户网站模板源码下载
  • 室内设计公司 网站建设建站塔山双喜
  • 网站建设属于什么经营范围销售网站开发业务
  • 企业建站系统平台优秀网站作品截图
  • 杭州品牌网站制作wordpress多域名移动主题
  • 北京网站网站建设icp备案 网站备案
  • 长春网站公司哪家好电子商务网站建设作文
  • 网站开发php程序员网上店铺怎么运营
  • mip网站怎么做匹配h5婚纱摄影网站模板
  • 怎么注册建设公司网站域名历史价格查询
  • 爱站网seo工具包互联网软件开发工程师
  • 百度站长工具平台登录郑州seo规则
  • 财税公司做网站精品建站教程
  • 建设区块链网站区块链开发平台有哪些
  • 青年人爱看的网站ie显示wordpress网页不完整
  • 优惠券推广网站怎么做青岛正规网站建设哪家便宜
  • 怎么搞一个服务器建设网站wordpress页眉编辑
  • 计算机企业网站建设论文流量平台是什么意思
  • 成都建设网站公司哪家好上海有名的广告公司