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

做网站跟桌面程序差别大吗广告设计专业分析

做网站跟桌面程序差别大吗,广告设计专业分析,夏邑县百城建设提质网站,辽宁建设工程信息网联合体投标目录一、概述1.OpenFeign是什么2.能干嘛二、OpenFeign使用步骤1.接口注解2.新建Module3.POM4.YML5.主启动类6.业务类7.测试8.小总结三、OpenFeign超时控制1.超时设置#xff0c;故意设置超时演示出错情况2.是什么3.YML中需要开启OpenFeign客户端超时控制四、OpenFeign日志打印… 目录一、概述1.OpenFeign是什么2.能干嘛二、OpenFeign使用步骤1.接口注解2.新建Module3.POM4.YML5.主启动类6.业务类7.测试8.小总结三、OpenFeign超时控制1.超时设置故意设置超时演示出错情况2.是什么3.YML中需要开启OpenFeign客户端超时控制四、OpenFeign日志打印功能1.是什么2.日志级别3.配置日志bean4.YML文件里需要开启日志的Feign客户端5.后台日志查看代码链接 https://github.com/lidonglin-bit/cloud 一、概述 1.OpenFeign是什么 Feign是一个声明式的web服务客户端让编写web服务客户端变得非常容易只需创建一个接口并在接口上添加注解即可SpringCloud对Feign进行了封装使其支持了SpringMVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡。 https://cloud.spring.io/spring-cloud-static/Hoxton.SR1/reference/htmlsingle/#spring-cloud-openfeign https://github.com/spring-cloud/spring-cloud-openfeign 2.能干嘛 Feign能干什么 Feign旨在使用编写Java Http客户端变得更容易。 前面在使用RibbonRestTemplate时利用RestTemplate对Http请求的封装处理形成了一套模板化的调用方法。 但是在实际开发中由于对服务依赖的调用可能不止一处往往一个接口会被多处调用所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务端额调用。所以Feign在此基础上做了进一步封装由他来帮助我们定义和实现依赖服务接口的定义。 在Feign的实现下我们只需创建一个接口并使用注解的方式来配置它以前是DAO接口上面标注Mapper注解现在是一个微服务接口上面标注一个Feign注解即可即可完成对服务提供方的接口绑定简化了使用Spring Cloud Ribbon时自动封装服务调用客户端的开发量。 Feign集成了 Ribbon 利用Ribbon维护了Payment的服务列表信息并且通过轮询实现了客户端的负载均衡。而与Ribbon不同的是通过Feign只需要定义服务绑定接口且以声明式的方法优雅而简单的实现了服务调用。 Feign和OpenFeign两者区别 二、OpenFeign使用步骤 1.接口注解 微服务调用接口FeignClient 2.新建Module cloud-consumer-feign-order80 3.POM 注意openFeign也是自带bibbon ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdcloud/artifactIdgroupIdcom.donglin/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdcloud-consumer-feign-order80/artifactIdpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.target/propertiesdependencies!--openfeign--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependencydependencygroupIdcom.donglin.springcloud/groupIdartifactIdcloud-api-commons/artifactIdversion${project.version}/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdscoperuntime/scopeoptionaltrue/optional/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependencies/project4.YML server:port: 80 spring:application:name: cloud-consumer-feign-order80 eureka:client:register-with-eureka: truefetch-registry: trueservice-url:defaultZone: http://localhost:7001/eureka5.主启动类 package com.donglin.springcloud;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.openfeign.EnableFeignClients;SpringBootApplication EnableEurekaClient EnableFeignClients public class OrderFeignMain80 {public static void main(String[] args) {SpringApplication.run(OrderFeignMain80.class,args);} }6.业务类 1.业务逻辑接口FeignClient配置调用provider服务 2.新建PaymentFeignService接口并新增注解FeignClient package com.donglin.springcloud.service;import com.donglin.springcloud.entities.CommonResult; import com.donglin.springcloud.entities.Payment; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable;Component FeignClient(value CLOUD-PAYMENT-SERVICE) public interface PaymentFeignService {GetMapping(value /payment/get/{id})public CommonResultPayment getPaymentById(PathVariable(id) Long id); }3.控制层Controller package com.donglin.springcloud.controller;import com.donglin.springcloud.entities.CommonResult; import com.donglin.springcloud.entities.Payment; import com.donglin.springcloud.service.PaymentFeignService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController;RestController public class OrderFeignController {Autowiredprivate PaymentFeignService paymentFeignService; //调用远程的微服接口GetMapping(value /consumer/payment/get/{id})public CommonResultPayment getPaymentById(PathVariable(id) Long id){return paymentFeignService.getPaymentById(id);} }7.测试 1.先启动Eureka7001 2.再启动2个微服务8001/8002 3.启动OpenFeign微服务cloud-consumer-feign-order80 4.http://localhost/consumer/payment/get/31 5.Feign自带负载均衡配置项 8.小总结 三、OpenFeign超时控制 1.超时设置故意设置超时演示出错情况 1.服务提供方8001故意写暂停程序 GetMapping(value /payment/feign/timeout)public String paymentFeignTimeout(){try { TimeUnit.SECONDS.sleep(3); }catch (Exception e) {e.printStackTrace();} //单位秒return port;}2.服务消费方80添加超时方法PaymentFeignService GetMapping(value /payment/feign/timeout)public String paymentFeignTimeout();3.服务消费方80添加超时方法OrderFeignController GetMapping(value /consumer/payment/feign/timeout)public String paymentFeignTimeout(){return paymentFeignService.paymentFeignTimeout();}4.测试 http://localhost/consumer/payment/feign/timeout 错误页面OpenFeign默认等待一秒钟超过后报错 2.是什么 默认Feign客户端只等待一秒钟但是服务端处理需要超过1秒钟导致Feign客户端不想等待了直接报错。 为了避免这样的情况有时候我们需要设置Feign客户端的超时控制也即Ribbon的超时时间因为Feign集成了Ribbon进行负载均衡。 3.YML中需要开启OpenFeign客户端超时控制 Feign设置超时时间 使用Feign调用接口分两层ribbon的调用和hystrix的调用所以ribbon的超时时间和Hystrix的超时时间的结合就是Feign的超时时间 #设置Feign客户端超时时间openfeign默认支持ribbon ribbon:ReadTimeout: 6000ConnectTimeout: 6000MaxAutoRetries: 1 #同一台实例最大重试次数,不包括首次调用MaxAutoRetriesNextServer: 1 #重试负载均衡其他的实例最大重试次数,不包括首次调用OkToRetryOnAllOperations: false #是否所有操作都重试 #hystrix的超时时间 hystrix:command:default:execution:timeout:enabled: trueisolation:thread:timeoutInMilliseconds: 9000一般情况下 都是 ribbon 的超时时间hystrix的超时时间因为涉及到ribbon的重试机制 因为ribbon的重试机制和Feign的重试机制有冲突所以源码中默认关闭Feign的重试机制源码如下 要开启Feign的重试机制如下Feign默认重试五次 源码中有 Bean Retryer feignRetryer() {return new Retryer.Default(); }根据上面的参数计算重试的次数MaxAutoRetriesMaxAutoRetriesNextServer(MaxAutoRetries *MaxAutoRetriesNextServer) 即重试3次 则一共产生4次调用 如果在重试期间时间超过了hystrix的超时时间便会立即执行熔断fallback。所以要根据上面配置的参数计算hystrix的超时时间使得在重试期间不能达到hystrix的超时时间不然重试机制就会没有意义 hystrix超时时间的计算 (1 MaxAutoRetries MaxAutoRetriesNextServer) * ReadTimeout 即按照以上的配置 hystrix的超时时间应该配置为 111*39秒 当ribbon超时后且hystrix没有超时便会采取重试机制。当OkToRetryOnAllOperations设置为false时只会对get请求进行重试。如果设置为true便会对所有的请求进行重试如果是put或post等写操作如果服务器接口没做幂等性会产生不好的结果所以OkToRetryOnAllOperations慎用。 如果不配置ribbon的重试次数默认会重试一次 注意 默认情况下,GET方式请求无论是连接异常还是读取异常,都会进行重试 非GET方式请求,只有连接异常时,才会进行重试 四、OpenFeign日志打印功能 1.是什么 Feign提供了日志打印功能我们可以通过配置来调整日志级别从而了解Feign中Http请求的细节。说白了就是对Feign接口的调用情况进行监控和输出。 2.日志级别 NONE默认的不显示任何日志 BASIC仅记录请求方法、RUL、响应状态码及执行时间 HEADERS除了BASIC中定义的信息之外还有请求和响应的头信息 FULL除了HEADERS中定义的信息之外还有请求和响应的正文及元数据 3.配置日志bean package com.donglin.springcloud.config;import feign.Logger; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class FeignConfig {Beanpublic Logger.Level feignLoggerLevel(){return Logger.Level.FULL;} }4.YML文件里需要开启日志的Feign客户端 logging:level:com.donglin.springcloud.service.PaymentFeignService: debug5.后台日志查看 http://localhost/consumer/payment/get/31
http://www.w-s-a.com/news/569912/

相关文章:

  • wordpress 素材站模板怎么制作网站程序
  • 做ps合成的网站wordpress付费查看下载主题
  • 个人网站建设完整教程wordpress服务器搬迁
  • wordpress.主题广州 网站优化
  • 手机版网站怎样做推广如何用asp做视频网站
  • dede 网站打开慢七牛云 微信 打开 wordpress
  • 哪里网站建设公司比较好教育培训类网站模板
  • 中国建设银行官网首页网站wordpress小工具不能完全显示
  • 企业网站的开发流程是什么网站开发怎么销售
  • 现在网站还用asp做男科医院哪家好一些
  • 服装设计网站素材郑州汉狮做网站网络公司
  • 宜州做网站做仿制网站
  • 中山营销型网站厦门工程建设招聘信息网站
  • 网站开发 外包空心找回微信
  • 长沙市网站推广多少钱网站开发流程图和介绍
  • 网站后缀net施工企业自建自用的工程可以不进行招标是否正确
  • 鄂尔多斯市住房和城乡建设厅网站帮别人做网站赚钱6
  • 宜选科技就是帮人做网站动漫制作专业主修课程
  • 怎么做网站免费的教程温州捷创网站建设
  • 做免费推广的网站有哪些深圳华强北最新消息
  • 电子商务网站建设规划开题报告桂林漓江景区游玩攻略
  • 程序员参与洗钱网站建设做视频网站需要多少钱
  • 网站建设背景是什么企业邮箱怎么写
  • 山东省建设资格中心网站iis wordpress安装教程
  • 做的网站 显示乱码怎么做微信小程序平台
  • 怎样建设打字网站怎样增加网站浏览量
  • 网站建设方案的征求意见网站主机免备案
  • 共享农业网站建设郑州市建网站
  • 成都网站建设四川冠辰网站建设带会员系统的网站模板
  • 水果网站建设方案书wordpress get_the_category