真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Http客戶端Feign的使用(黑馬springcloud筆記)-創(chuàng)新互聯(lián)

Feign基本使用

創(chuàng)新互聯(lián)網(wǎng)站建設(shè)由有經(jīng)驗(yàn)的網(wǎng)站設(shè)計(jì)師、開(kāi)發(fā)人員和項(xiàng)目經(jīng)理組成的專業(yè)建站團(tuán)隊(duì),負(fù)責(zé)網(wǎng)站視覺(jué)設(shè)計(jì)、用戶體驗(yàn)優(yōu)化、交互設(shè)計(jì)和前端開(kāi)發(fā)等方面的工作,以確保網(wǎng)站外觀精美、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作易于使用并且具有良好的響應(yīng)性。目錄
  • Feign基本使用
    • 一、Feign代替RestTemplate
    • 二、自定義配置
    • 三、Feign使用優(yōu)化
      • 1. 底層優(yōu)化
      • 2. 日志優(yōu)化
    • 四、最佳實(shí)踐
      • 方式一:繼承
      • 方式二:抽取

一、Feign代替RestTemplate

步驟:

  1. 引入依賴

    org.springframework.cloudspring-cloud-starter-openfeign
  2. 啟動(dòng)類上添加注解@EnableFeignClients

  3. 編寫Feign客戶端

    @FeignClient("userService")
    public interface UserApi {@GetMapping("/user/{id}")
        User findById(@PathVariable Long id);
    }
  4. 使用

    這是RestTemplate的代碼

    @Service
    public class OrderService {@Autowired
        private OrderMapper orderMapper;
        @Autowired
        RestTemplate restTemplate;
    
        public Order queryOrderById(Long orderId) {// 1.查詢訂單
            Order order = orderMapper.findById(orderId);
            // 2.調(diào)用REST接口查詢數(shù)據(jù)
            User user = restTemplate.getForObject("http://userService/user/" + order.getUserId(), User.class);
            // 3.封裝數(shù)據(jù)
            order.setUser(user);
            // 4.返回
            return order;
        }
    }

    這是Feign的代碼:

    @Service
    public class OrderService {@Autowired
        private OrderMapper orderMapper;
        
        @Autowired
        UserApi userApi;
        
        public Order queryOrderById(Long orderId) {// 1.查詢訂單
            Order order = orderMapper.findById(orderId);
            // 2.調(diào)用REST接口查詢數(shù)據(jù)
            User user = userApi.findById(order.getUserId());
            // 3.封裝數(shù)據(jù)
            order.setUser(user);
            // 4.返回
            return order;
        }
    }

    代碼可讀性更高了,并且自帶負(fù)載均衡。

二、自定義配置

feign可以自定義配置一些東西:

在這里插入圖片描述

springboot中配置一般都是兩種方式,代碼或者application.yml

  1. 代碼

    @Bean
    public Logger.Level feignLogLevel() {return Logger.Level.FULL;
    }

    若是全局生效,需要在啟動(dòng)類的注解中加上該配置類:

    @EnableFeignClients(defaultConfiguration = CustomConfiguration.class)

    若是局部,只需要在對(duì)應(yīng)的客戶端中聲明:

    @FeignClient(value = "userService", configuration = CustomConfiguration.class)
  2. application.yml

    配置文件同樣也可以配置全局或者局部

    全局:

    feign:
      client:
        config:
          default: # 這個(gè)就是區(qū)分全局或者局部的 若是default則是全局
            logger-level: full

    局部:

    feign:
      client:
        config:
          userService: # 這個(gè)就是區(qū)分全局或者局部的 若是default則是全局
            logger-level: full
三、Feign使用優(yōu)化 1. 底層優(yōu)化

Feign底層實(shí)現(xiàn)默認(rèn)是URLConnection,不支持連接池,效率低。

我們可以選擇Apache HttpClient或是OKHttp(倆都支持連接池)來(lái)優(yōu)化Feign的性能。

以HttpClient為例:

  • 引入依賴

    io.github.openfeignfeign-httpclient
  • 配置連接池

    feign:
      httpclient:
        enabled: true # 開(kāi)啟feign對(duì)httpclient的支持
        max-connections: 200 # 大連接數(shù)
        max-connections-per-route: 50 # 每個(gè)路徑大連接數(shù)
2. 日志優(yōu)化

簡(jiǎn)單說(shuō)就是使用NONE級(jí)別或是BASIC級(jí)別,級(jí)別高了消耗性能。

四、最佳實(shí)踐 方式一:繼承

給消費(fèi)者的FeignClient和提供者的Controller定義一個(gè)統(tǒng)一的父接口作為標(biāo)準(zhǔn)。

在這里插入圖片描述

缺點(diǎn):緊耦合

方式二:抽取

就是搞一個(gè)公共的模塊,把多個(gè)微服務(wù)都需要的接口寫在里面,需要使用時(shí)引入即可。

在這里插入圖片描述

缺點(diǎn)就是會(huì)引入很多不用的東西。

實(shí)現(xiàn):

  1. 創(chuàng)建新的公共模塊,導(dǎo)入feign的依賴,創(chuàng)建普通maven項(xiàng)目即可,不然打包時(shí)有坑。

  2. 將order-service中的Feign客戶端、實(shí)體類、Feign的配置等移入該公共模塊

  3. 在order-service中引入該公共模塊

    如:

    com.examplefeign-api0.0.1-SNAPSHOT
  4. 指定客戶端

    兩種方式

    • 掃描包,全部導(dǎo)入

      @EnableFeignClients(basePackages = "com.example.feignapi.apis")

      該包下的所有feign客戶端都會(huì)被掃描

    • 指定客戶端導(dǎo)入

      @EnableFeignClients(clients = {UserAPI.class})

      指定客戶端,可以是一個(gè)數(shù)組

    建議使用第二種。

  5. 測(cè)試在這里插入圖片描述

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


當(dāng)前文章:Http客戶端Feign的使用(黑馬springcloud筆記)-創(chuàng)新互聯(lián)
URL分享:http://weahome.cn/article/djoicd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部