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

怎样通过手机建网站网站开发 之cookie

怎样通过手机建网站,网站开发 之cookie,建设网站关键词怎么写,广州冼村改造文章目录 前言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/14315481/

相关文章:

  • 没有做网站经验可以学seo吗展示照片的网站模板
  • python做视频网站新建网站怎么做
  • 做搜狗pc网站排域名备案迁移
  • 江门市网站建设搜索关键词可以过得网站
  • 网站开发入门书籍发外链的论坛
  • 网站到期域名怎么解决办法德邦物流公司现代物流网站建设与开发
  • 扁平化色彩网站网站是如何建立的
  • 广州专业网站设计企业凡科企业邮箱
  • 河南做网站公司排名最简单的手机网站制作
  • 蘑菇街网站服务外贸网站建设模式
  • ai做的比较好的网站wordpress 攻击
  • 呼和浩特市网站公司网站建设兰州
  • 云南省网站开发公司wordpress添加底部友情链接
  • 有哪些做策划的用的网站网站建设前端工具
  • 浙江网站改版设计公司高端品牌鞋子排行榜前十名
  • 建设银行附近网站点oa办公系统网页版官网
  • 做网站都需要具备什么网站建设制作 南京公司哪家好
  • 婚礼设计方案网站国际新闻最新战争消息
  • 体育器材网站模板手机网站友情链接怎么做
  • 网站推广计划表易烊千玺网页设计模板
  • 游戏网站怎么赚钱建网站义乌
  • 雅安网站制作php代码删除网站
  • 南宁建站公司平面设计培训学校排名
  • cms网站后台管理系统国产oa系统有哪些
  • 固安县建设局网站网站建设与管理论文
  • 做头发个人网站制作素材商标设计在线
  • 网站开发的书籍什么软件做美食视频网站
  • 给城市建设提议献策的网站上传wordpress后
  • 具有品牌的上海网站建设重庆卓光网站建设
  • 做一网站困难吗毕业设计代做网站有哪些