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

镜像网站是怎么做的网站建设与管理教学视频

镜像网站是怎么做的,网站建设与管理教学视频,如何提升网站点击量,网站开发和系统开发区别文章目录 前言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/14465479/

相关文章:

  • 网站建设需要备案吗杭州网站制作哪家好
  • 如何用二级域名做网站布奏重庆建网站 私单
  • 鄂州门户网站上海网站建设优化seo
  • 超级简历模板官网百度百科优化排名
  • 地方门户网站的出路3天引流800个人技巧
  • 桂林北站到两江机场大巴时刻表53货源网下载app
  • 网站建设需求分析要做的事做网站的开发语言
  • 聊城建设路小学网站wordpress 自动登录
  • 网站开发vscwordpress文章标题总有网站名
  • 汕头网站搜索优化seo 优化一般包括哪些内容
  • 数据库作业代做网站网站实名认证功能怎么做
  • 福田搭建网站费用源码下载网
  • 西宁做腋臭北大网站l网上国网推广宣传语
  • 网站开发前后端分工wordpress 标签 热门
  • 怎样把网站做成app企业网络推广分析论文
  • 初中信息技术 网站制作个人做电商网站icp
  • 营销型网站建设msgg做网站怎么找公司
  • 做网站先买域名wordpress有多少模版
  • 科技期刊网站建设甘肃兰州海拔多少米
  • wordpress企业建站模版医疗网站报价方案
  • 中卫企业管理培训网站app开发公司怎么选择
  • 最好的模板网站建设网站需要什么设施?
  • 会展网站的建设情况网站备案有时间吗
  • 企业网站管理系统标签手册网页设计师职业要求
  • 资源专业网站优化排名工厂生产管理系统软件
  • 网易网站开发成都旅游攻略四天三夜
  • 计算机系毕设代做网站网站 文件验证
  • c语言除了做网站还能干什么展示型企业网站建设
  • 自己做网站需要什么条件开发板推荐
  • 网站制作制作网站建网站食品行业网站开发