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

龙华响应式网站建设搜狗seo快速排名公司

龙华响应式网站建设,搜狗seo快速排名公司,国内最好的设计公司,辽源做网站公司远程调用RestTemplate远程调用RestTemplate方式调用存在的问题Http客户端Feign实现步骤自定义配置Feign优化Feign性能优化——连接池配置最佳实践RestTemplate远程调用 Bean // LoadBalancedpublic RestTemplate restTemplate(){return new RestTemplate();}Autowiredprivat…

远程调用

  • RestTemplate远程调用
    • RestTemplate方式调用存在的问题
  • Http客户端Feign
    • 实现步骤
    • 自定义配置
    • Feign优化
      • Feign性能优化——连接池配置
    • 最佳实践

RestTemplate远程调用

    @Bean
//    @LoadBalancedpublic RestTemplate restTemplate(){return new RestTemplate();}
 	@Autowiredprivate RestTemplate restTemplate;String url = "http://userservice/user/"+order.getUserId();User user = restTemplate.getForObject(url, User.class);

RestTemplate方式调用存在的问题

  1. 代码可读性差,编程体验不统一
  2. 参数复杂,url难以维护

Http客户端Feign

概念: Feign是一个声明式的Http客户端
作用: 优雅的实现Http请求的发送,避免RestTemplate存在的问题

实现步骤

  • 引入依赖
<!--            Feign客户端--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>
  • 在order-service的启动类添加注解开启Feign的功能
@EnableFeignClients
@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
public class OrderApplication {public static void main(String[] args) {SpringApplication.run(OrderApplication.class, args);}
}
  1. 编写Feign客户端
@FeignClient("userservice")
public interface UserClient {@GetMapping("/user/{id}")User findById(@PathVariable("id") Long id);
}

主要是基于SpringMVC的注解来声明远程调用的信息
- 服务名称:userservice
- 请求方式:GET
- 请求路径:/user/{id}
- 请求参数:Long id
- 返回值类型:User

  1. 使用
    @Autowiredprivate UserClient userClient;User user = userClient.findById(order.getUserId());

自定义配置

在这里插入图片描述1. 方式一:
在这里插入图片描述2. 方式二:在这里插入图片描述

Feign优化

Feign底层客户端原理:

  1. URLConnection:默认实现,不支持连接池
  2. Apache HttpClient:支持连接池
  3. OKHttp:支持连接池

Feign性能优化——连接池配置

  1. 方式一:Feign添加HttpClient的支持:

    • 引入依赖
    <!--        HttpClient--><dependency><groupId>io.github.openfeign</groupId><artifactId>feign-httpclient</artifactId></dependency>
    
    • 配置连接池
    feign:client:config:default: #default 全局配置loggerLevel: BASIC # 日志级别,BASIC就是最基本的请求和响应信息httpclient:enabled: true # 开启feign对HttpClient的支持max-connections: 200 #最大连接数max-connections-per-route: 50 #每个路径的最大连接数
    

注意事项:

  1. 日志级别尽量用BASIC

  2. 使用HttpClient或者OKHttp代替URLConnection

    • 引入feign-httpClient依赖
    • 配置文件开启httpClient功能,设置连接池参数

最佳实践

  1. 方式一(继承):给消费者的FeignClient和提供者的Controller定义统一的父接口作为标准
    • 服务紧耦合
    • 父接口参数列表中的映射不会被继承9aa621aee0.png)

在这里插入图片描述

  1. 方式二(抽取):将FeignClient抽取为独立模块,并把接口有关的POJO、默认的Feign配置都放到这个模块中,提供给所有消费者使用

在这里插入图片描述
实现方式二:

  1. 创建一个mould,命名为feign-api,然后引入feign的starter依赖
        <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>
  1. 将order-service中编写到UserClient、User、DefaultFeignConfiguration都复制到feign-api项目中
  2. 在order-service中引入feign-api的依赖\
<!--        引入feign的统一api--><dependency><groupId>cn.itcast.demo</groupId><artifactId>feign-api</artifactId><version>1.0</version></dependency></dependencies>
  1. 修改order-service中的所有与上述三个组件有关的import部分,改成导入feign-api中的包
  2. 重启测试

报错: 当定义的FeignClient不在SpringBootApplication的扫描包范围时,这些FeignClient无法使用

解决方式:

  1. 方式一:指定FeignClient所在包
@EnableFeignClients(basePackages = "cn.xxx.xxx.client")
  1. 方式二:指定FeignClient字节码
@EnableFeignClients(clients= {UserClient.class})
http://www.dinnco.com/news/4902.html

相关文章:

  • 建设银行香港招聘网站互联网广告是做什么的
  • 网站建设定制开发价格磁力bt种子搜索神器
  • 网站权重批量查询附近有学电脑培训班吗
  • 丽水市建设局网站朝阳区seo搜索引擎优化介绍
  • 商务网站建设实训报告总结外贸建站服务推广公司
  • 西安疫情风险地区淘宝标题优化工具推荐
  • 费用网站建设网络营销方案3000字
  • 做网站你们用什么浏览器网站seo外链平台
  • html旅游网站制作代码安徽网站优化
  • 全网推广开户磐石网站seo
  • 网站产品图怎么做的百度应用下载
  • 中职校园网站建设建议网站app免费生成软件
  • 扶贫网站建设河北高端网站建设
  • 通州做网站公司申请域名
  • 淄博乐达网站建设吧怎么找一手app推广代理
  • 怎么为一个网站做外链百度竞价多少钱一个点击
  • 个人网站建设模板下载nba今日数据
  • 城乡住房和城乡建设部网站首页网络营销外包收费
  • 做自媒体可利用的国外网站百度竞价推广方案范文
  • 中企动力免费做网站短期培训班学什么好
  • 泉州网站建设设计seo快照推广
  • WordPress臃肿主题seo系统源码出售
  • wordpress提取广州seo优化排名公司
  • 博达网站建设教程国际新闻最新消息美国
  • 二度云自助建站系统外链群发软件
  • seo网站布局百度关键词优化点击 教程
  • 做网站公司北京制作网站
  • 设计网站名称seo专业优化公司
  • python适合大型网站开发吗百度浏览器在线打开
  • 做投票网站网站建设营销推广