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

做网盘网站的成本购买wordpress模板

做网盘网站的成本,购买wordpress模板,成都的网站,上海有哪些比较好的室内设计公司#x1f3c6; 作者简介#xff0c;愚公搬代码 #x1f3c6;《头衔》#xff1a;华为云特约编辑#xff0c;华为云云享专家#xff0c;华为开发者专家#xff0c;华为产品云测专家#xff0c;CSDN博客专家#xff0c;阿里云专家博主#xff0c;阿里云签约作者#xf… 作者简介愚公搬代码 《头衔》华为云特约编辑华为云云享专家华为开发者专家华为产品云测专家CSDN博客专家阿里云专家博主阿里云签约作者腾讯云优秀博主腾讯云内容共创官掘金优秀博主51CTO博客专家等。 《近期荣誉》2022年CSDN博客之星TOP22022年华为云十佳博主等。 《博客内容》.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。 欢迎 点赞✍评论⭐收藏 文章目录 前言一、Feign远程调用1.Feign替代RestTemplate1.1 引入依赖1.2 添加注解1.3 编写Feign的客户端1.4 测试 2.自定义配置2.1 配置文件方式2.2 Java代码方式 3.Feign使用优化4.最佳实践4.1 继承方式4.2 抽取方式4.3 实现基于抽取的最佳实践☀️4.3.1 抽取☀️4.3.2 在order-service中使用feign-api☀️4.3.3 重启测试 感谢给读者的一封信 前言 微服务架构中不同的服务之间需要相互通信来完成任务。其中一种常见的通信方式是远程调用。远程调用是指在不同的服务之间进行函数调用而这些服务运行在不同的计算机、进程或容器中。 常见的微服务远程调用方式有 REST API基于 HTTP 协议实现通过发送 HTTP 请求来调用服务并通过 JSON 或 XML 等格式传递数据。 gRPC基于 Google 的开源 RPC 框架实现支持多种语言并使用 Protocol Buffers 作为数据格式提供了更高效的数据传输和更简单的接口定义。 AMQP基于消息队列实现使用消息进行服务之间的通信可保证消息的可靠性和可恢复性。 Apache Thrift开源的跨语言 RPC 框架可生成多种语言的代码库并支持多种数据传输协议如 TCP、HTTP、ZLIB、FRAMED 等。 Socket原始的方式通过套接字进行通信在性能上有一定优势但需要自行处理数据格式和协议。 一、Feign远程调用 用RestTemplate发起远程调用的代码 存在下面的问题 代码可读性差编程体验不统一参数复杂URL难以维护 Feign是一个声明式的http客户端官方地址https://github.com/OpenFeign/feign 其作用就是帮助我们优雅的实现http请求的发送解决上面提到的问题。 1.Feign替代RestTemplate 1.1 引入依赖 我们在order-service服务的pom文件中引入feign的依赖 !--feign依赖-- dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId /dependency1.2 添加注解 在order-service的启动类添加注解开启Feign的功能 1.3 编写Feign的客户端 在order-service中新建一个接口内容如下 package cn.itcast.order.client;import cn.itcast.order.pojo.User; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable;FeignClient(userservice) public interface UserClient {GetMapping(/user/{id})User findById(PathVariable(id) Long id); }这个客户端主要是基于SpringMVC的注解来声明远程调用的信息比如 服务名称userservice请求方式GET请求路径/user/{id}请求参数Long id返回值类型User 这样Feign就可以帮助我们发送http请求无需自己使用RestTemplate来发送了。 1.4 测试 修改order-service中的OrderService类中的queryOrderById方法使用Feign客户端代替RestTemplate 运行 2.自定义配置 Feign可以支持很多的自定义配置如下表所示 类型作用说明feign.Logger.Level修改日志级别包含四种不同的级别NONE、BASIC、HEADERS、FULLfeign.codec.Decoder响应结果的解析器http远程调用的结果做解析例如解析json字符串为java对象feign.codec.Encoder请求参数编码将请求参数编码便于通过http请求发送feign. Contract支持的注解格式默认是SpringMVC的注解feign. Retryer失败重试机制请求失败的重试机制默认是没有不过会使用Ribbon的重试 一般情况下默认值就能满足我们使用如果要自定义时只需要创建自定义的Bean覆盖默认Bean即可。 下面以日志为例来演示如何自定义配置。 2.1 配置文件方式 基于配置文件修改feign的日志级别可以针对单个服务可以在order-service中添加 feign: client:config: userservice: # 针对某个微服务的配置loggerLevel: FULL # 日志级别 也可以针对所有服务 feign: client:config: default: # 这里用default就是全局配置如果是写服务名称则是针对某个微服务的配置loggerLevel: FULL # 日志级别 如下图所示 而日志的级别分为四种 NONE不记录任何日志信息这是默认值。BASIC仅记录请求的方法URL以及响应状态码和执行时间HEADERS在BASIC的基础上额外记录了请求和响应的头信息FULL记录所有请求和响应的明细包括头信息、请求体、元数据。 2.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) 优先级配置文件要高于代码声明式如果想验证新的需先注释配置文件中的配置项 3.Feign使用优化 Feign底层发起http请求依赖于其它的框架。其底层客户端实现包括 URLConnection默认实现不支持连接池 Apache HttpClient 支持连接池 OKHttp支持连接池 因此提高Feign的性能主要手段就是使用连接池代替默认的URLConnection。 这里我们用Apache的HttpClient来演示。 1引入依赖 在order-service的pom文件中引入Apache的HttpClient依赖 !--httpClient的依赖 -- dependencygroupIdio.github.openfeign/groupIdartifactIdfeign-httpclient/artifactId /dependency2配置连接池 在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 # 每个路径的最大连接数运行测试 4.最佳实践 4.1 继承方式 一样的代码可以通过继承来共享 1定义一个API接口利用定义方法并基于SpringMVC注解做声明。 2Feign客户端和Controller都集成改接口 优点 简单实现了代码共享 缺点 服务提供方、服务消费方紧耦合 参数列表中的注解映射并不会继承因此Controller中必须再次声明方法、参数列表、注解 4.2 抽取方式 将Feign的Client抽取为独立模块并且把接口有关的POJO、默认的Feign配置都放到这个模块中提供给所有消费者使用。 例如将UserClient、User、Feign的默认配置都抽取到一个feign-api包中所有微服务引用该依赖包即可直接使用。 4.3 实现基于抽取的最佳实践 ☀️4.3.1 抽取 首先创建一个module命名为feign-api 在feign-api中然后引入feign的starter依赖 ?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-demo/artifactIdgroupIdcn.itcast.demo/groupIdversion1.0/version/parentmodelVersion4.0.0/modelVersionartifactIdfeign-api/artifactIdpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.target/propertiesdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency/dependencies /project然后order-service中编写的UserClient、User、DefaultFeignConfiguration都复制到feign-api项目中 ☀️4.3.2 在order-service中使用feign-api 首先删除order-service中的UserClient、User、DefaultFeignConfiguration等类或接口。 在order-service的pom文件中中引入feign-api的依赖 !--feign-api的依赖 -- dependencygroupIdcn.itcast.demo/groupIdartifactIdfeign-api/artifactIdversion1.0/version /dependency修改order-service中的所有与上述三个组件有关的导包部分改成导入feign-api中的包 删除order-service中的User类更新依赖cn.itcast.order.pojo.Order更新依赖cn.itcast.order.client.UserClient更新依赖cn.itcast.order.service.OrderService 以下调整均在启动类中增加 方式一 指定Feign应该扫描的包 EnableFeignClients(basePackages cn.itcast.feign.clients)方式二 指定需要加载的Client接口注意引包是feign-api下的别引错了 EnableFeignClients(clients {UserClient.class})☀️4.3.3 重启测试 感谢给读者的一封信 亲爱的读者 我在这篇文章中投入了大量的心血和时间希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验我相信这些信息对您非常有帮助。 如果您觉得这篇文章对您有所帮助我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担但它会对我继续创作高质量的内容产生积极的影响。 我之所以写这篇文章是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命也鼓励我花更多的时间和精力创作更多有价值的内容。 如果您愿意支持我的创作请扫描下面二维码您的支持将不胜感激。同时如果您有任何反馈或建议也欢迎与我分享。 再次感谢您的阅读和支持 最诚挚的问候 “愚公搬代码”
http://www.sadfv.cn/news/45446/

相关文章:

  • 国内界面优秀的网站wordpress怎么使用阿里图标
  • 河南省省建设厅网站百度推广话术全流程
  • 某公司网站源码制作一个网站
  • 网站建设需申请注册域名自己怎么做网站卖车
  • 网站空间如何续费凡客精选带货达人
  • 主营网站开发医疗器械监督管理条例
  • 青岛做网站皆赴青岛博采网络网站开发研究综述
  • 深圳网站设计联系电话微信小程序开发大赛
  • 建网站与建网页的区别电子商务网站建设与管理期末答案
  • 品牌网站方案西南交通建设集团股份有限公司网站
  • 长沙市制作网站网站设计需求文档
  • 浙江网站建设制作wordpress如何qq登录界面
  • 网站网站开发不存储数据犯法吗合肥建设工程网
  • wordpress修改地址后网站打不开php做网站 价格
  • 做安利能开个人网站如何建响应式网站
  • 站长工具大全集威海市住房和城乡建设局网站
  • 营销型网站建设要求ie8打不开建设银行网站
  • 苏州市郭巷建设局网站微商城网站建设咨询
  • 做网站 帮别人卖服务器wordpress发不文章不按顺序怎么办
  • 内蒙古住房与建设官方网站wordpress 商城 app
  • 营销网站的设计与实现顺德品牌网站建设优惠
  • 自己做的网站标题wordpress旅游主题
  • 承德网站建设专家那家网站建设好
  • wordpress电影网站建设项目从哪个网站可以查
  • 企业网站建设的目的是什么互联网站建设维护有关岗位
  • 营销型网站推广方案廊坊建设局网站
  • 东莞人才网官方网站网站建设培训班多少钱
  • 企业网站建设管理视频衡水网站建设03181688
  • wordpress修改网站名称wordpress 4.5 汉化主题
  • 什么软件可以做网站公司网站设计案例