sách gpt4 ăn đã đi

Cách đặt thời gian chờ của Feign, tôi đã nghiên cứu 4 tình huống

In lại Tác giả: Tôi là chú chim nhỏ Thời gian cập nhật: 2023-08-15 14:31:16 25 4
mua khóa gpt4 giày nike

Xin chào mọi người, tôi là Sanyou~~.

Hôm nay, chúng ta hãy nói về một câu hỏi phỏng vấn mà tôi đã xem cách đây một thời gian, đây cũng là một vấn đề cần được xem xét trong các dự án thực tế. Làm thế nào để đặt thời gian chờ của Feign?

Phương pháp cài đặt thời gian chờ của Feign không cố định. Nó phụ thuộc vào cách sử dụng Feign trong dự án. Các phương pháp sử dụng khác nhau có các phương pháp cài đặt thời gian chờ khác nhau và thậm chí có thể có những cạm bẫy.

kiến thức tiên quyết

Vì bài viết sẽ đề cập đến những kiến ​​thức cơ bản về Feign nên nếu bạn không hiểu những khái niệm cơ bản về Feign thì bạn sẽ không thể đọc được.

Vì vậy, để giúp những bạn chưa biết về Feign dễ dàng đọc và hiểu bài viết hơn, mình sẽ giải thích ngắn gọn về nguyên tắc của Feign ở đây tuy không chuyên sâu nhưng cũng đủ đối phó với bài viết này.

Vai trò của Feign

Trong các dự án, chúng ta thường cần gọi giao diện Http do bên thứ ba cung cấp. Lúc này, chúng ta có thể sử dụng một số framework Http để triển khai nó, chẳng hạn như HttpClient.

                          
                          
                          
                             công cộng 
                             
                              lớp học     HttpClientDemo    
                            {
                            

     công cộng   tĩnh   vô hiệu   chủ yếu (Chuỗi[] đối số)   ném  Ngoại lệ  {
         //Tạo một httpClient
        HttpClient httpClient = HttpClientBuilder.create().build();

         //Xây dựng yêu cầu nhận
        HttpGet httpGet =  mới  HttpGet( "http://192.168.100.1:8080/order/1" );

         //Gửi yêu cầu và nhận phản hồi
        HttpResponse httpResponse = httpClient.execute(httpGet);
        HttpEntity httpEntity = httpResponse.getEntity();

         //Đọc giá trị phản hồi
        Phản hồi chuỗi = EntityUtils.toString(httpEntity);

        Hệ thống.out.println( "Phản ứng: "  + phản hồi);
    }

}

Nếu dự án chỉ có một hoặc hai giao diện bên thứ ba như vậy thì viết như thế này cũng không sao, nhưng một khi có quá nhiều giao diện bên thứ ba như vậy thì rõ ràng sẽ rất rắc rối khi tập hợp các tham số, gửi yêu cầu, và viết một loạt mã giống nhau mỗi lần.

Vì vậy, để đơn giản hóa việc phát triển gửi yêu cầu Http và giảm mã trùng lặp, Feign đã xuất hiện.

Giả vờ là một khung HTTP khai báo.

Khi cần gọi giao diện Http, bạn cần khai báo giao diện và thêm một số chú thích.

Các tác vụ lặp đi lặp lại như tập hợp các tham số và gửi yêu cầu HTTP đều do Feign thực hiện.

Nguyên tắc giả vờ

Tuy có giao diện nhưng có giao diện thôi chưa đủ, vì giao diện không thể tạo ra đối tượng, chúng ta cần đối tượng.

Để tạo điều kiện thuận lợi cho chúng ta tạo các đối tượng cho giao diện, Feign cung cấp lớp nội bộ Feign.Builder.

Chức năng của lớp này là phân tích các chú thích trên giao diện và tạo một đối tượng proxy động cho giao diện. Sau đó, các yêu cầu có thể được gửi qua đối tượng proxy này.

Lớp bên trong này có nhiều thuộc tính, là thành phần cốt lõi của Feign.

Trong số các thành phần cốt lõi này có một thành phần được gọi là Máy khách mà tôi đã khoanh tròn trong hình trên.

Lớp Client này rất quan trọng. Những điều được thảo luận trong bài viết này có liên quan chặt chẽ với nó.

Nó chỉ có một phương thức, Thực thi phản hồi (Yêu cầu yêu cầu, tùy chọn Tùy chọn).

Tham số đầu tiên của phương thức, Yêu cầu, đóng gói url, phương thức yêu cầu, tiêu đề yêu cầu, nội dung yêu cầu và các tham số khác của yêu cầu http.

Tham số thứ hai Tùy chọn là chủ đề của bài viết này và gói gọn thời gian chờ.

Giá trị trả về Phản hồi gói gọn một số trạng thái mã phản hồi, tiêu đề phản hồi, v.v.

Như vậy các bạn có thể đoán từ các tham số và giá trị trả về của phương thức mà Client sử dụng để tập hợp các tham số Http request và gửi Http request.

Và thời gian chờ của yêu cầu http được xác định dựa trên tham số Tùy chọn được truyền cho Máy khách.

Nếu bạn muốn tìm hiểu thêm về nguyên tắc Feign, bạn có thể xem nó trong danh mục springcloud trên thanh menu của tài khoản công khai.

Cài đặt thời gian chờ khi Feign được sử dụng một mình

Bản thân Feign là một ứng dụng khách http có thể được sử dụng độc lập. Feign cung cấp hai phương pháp cài đặt thời gian chờ.

1. Đặt qua Feign.Builder

Như đã đề cập trước đó, Feign.Builder hoạt động như một đối tượng proxy động cho giao diện.

Có nhiều thuộc tính trong Feign.Builder, bao gồm cả thuộc tính Tùy chọn liên quan đến thời gian chờ.

Nếu bạn không đặt nó, thời gian chờ là mặc định.

Mặc định là 10 giây cho thời gian chờ kết nối và 60 giây cho thời gian chờ đọc.

Vì vậy, bạn có thể đặt thời gian chờ bằng cách đặt các tùy chọn trong Feign.Builder.

Hãy có một bản demo.

Chuẩn bị môi trường là một dự án SpringBoot đơn giản giới thiệu sự phụ thuộc Feign.

                          
                          
                          
                             <  sự phụ thuộc  > 
                            
     < sự phụ thuộc >
         < nhómId > org.springframework.cloud nhómId >
         < hiện vậtId > spring-cloud-starter-openfeign hiện vậtId >
         < phiên bản > 2.2.5.PHÁT HÀNH phiên bản >
     sự phụ thuộc >
sự phụ thuộc >

Khai báo giao diện + chú thích.

                          
                          
                          
                             công cộng 
                             
                              giao diện     API người dùng    
                            {
                            

     @Yêu cầuDòng ( "LẤY /user/{userId}" )
     Người sử dụng  truy vấnNgười dùng (@Param( "ID người dùng" )  Số nguyên userId) ;

}

Điều được thể hiện ở đây là cách sử dụng nguyên gốc của Feign, tách biệt khỏi môi trường Spring Cloud, do đó @GetMappring của Spring không được hỗ trợ và các chú thích do chính Feign cung cấp sẽ được sử dụng thay thế.

Kiểm tra mã.

                          
                          
                          
                             công cộng 
                             
                              lớp học     giả vờDemo    
                            {
                            

     công cộng   tĩnh   vô hiệu   chủ yếu (Chuỗi[] đối số)   {
        Máy khách UserApi = Feign.builder()
                 // Đặt kết nối và thời gian chờ đọc thành cả 5 giây
                .tùy chọn( mới  Yêu cầu.Tùy chọn( 5 , Đơn vị thời gian.GIÂY,  5 , Đơn vị thời gian.GIÂY,  ĐÚNG VẬY ))
                .target(UserApi . lớp học , " http :// máy chủ cục bộ :8088") ;

        Người dùng người dùng = client.queryUser( 123 );
    }

}

Các đường dẫn yêu cầu ở đây không tồn tại, vì chúng ta chỉ quan tâm đến giá trị tham số Options được truyền cho Client.

Máy khách sử dụng cách triển khai mặc định của Client.Default khi chúng tôi không đặt nó.

Nhấn điểm dừng để triển khai phương thức thực thi, chạy nó và bắt đầu.

Kết quả là 5s chúng ta đặt ra.

2. Cài đặt tham số trong phương thức giao diện

Ngoài việc cài đặt khi truyền Feign.Builder, Feign còn hỗ trợ cài đặt các tham số phương thức của giao diện.

Lúc này, bạn chỉ cần thêm tham số loại Tùy chọn vào phương thức giao diện.

                          
                          
                          
                             @Yêu cầuDòng 
                            (
                             "LẤY /user/{userId}" 
                            )
                            
Người sử dụng  truy vấnNgười dùng (@Param( "ID người dùng" )  Số nguyên userId, tùy chọn Request.Options) ;

Bằng cách này, thời gian chờ có thể được đặt khi truyền tham số.

                          
                          
                          
                            Người dùng người dùng = client.queryUser(
                             123  mới 
                             Yêu cầu.Tùy chọn(
                             3 
                            , Đơn vị thời gian.GIÂY, 
                             3 
                            , Đơn vị thời gian.GIÂY, 
                             ĐÚNG VẬY 
                            ));
                            

Tương tự, gỡ lỗi có thể thấy 3 giây chúng tôi đặt.

Sự khác biệt chính giữa hai cài đặt thời gian chờ này là mức độ ưu tiên của thời gian chờ được đặt theo tham số phương thức cao hơn thời gian chờ do Feign.Builder đặt.

Dùng hình ảnh để tóm tắt mối quan hệ trên.

Do đó, nếu chỉ sử dụng Feign, bạn có thể đặt thời gian chờ theo hai phương pháp trên.

Giả sử chỉ sử dụng cài đặt thời gian chờ trong SpringCloud

Trong môi trường Spring Cloud, Feign chỉ là một lớp bao bì nên Feign có thể được sử dụng một mình ngay cả khi không có Ribbon và trung tâm đăng ký, nhưng cách sử dụng đã thay đổi một chút.

  • Chú thích được thay thế bằng chú thích SpringMVC
  • Giao diện cần được chú thích bằng @FeignClient
  • Quét các giao diện này bằng @EnableFeignClients

Tuy nhiên, Feign vẫn cần được sử dụng kết hợp với Ribbon theo mặc định.

Nếu bạn chỉ muốn sử dụng Feign một mình, hãy đặt thuộc tính url của chú thích @FeignClient và chỉ định địa chỉ và cổng được yêu cầu.

Do đó, vì nó chỉ là đóng gói nên tất nhiên hai phương pháp nêu trên để đặt thời gian chờ có thể tiếp tục được sử dụng:

  • bởi Feign.Builder
  • Tham số phương thức qua giao diện

Biểu mẫu thiết lập tham số phương thức hoàn toàn giống như đã đề cập ở trên, nhưng việc thiết lập nó thông qua Feign.Builder thì khác.

Vì SpringCloud sẽ tự tạo Feign.Builder nên chúng ta không cần tạo nên khi thiết lập Options, Spring cung cấp 2 phím tắt để thiết lập.

Nhưng cuối cùng nó được đặt thành Feign.Builder.

1. Khai báo một Options Bean

Khi Spring xây dựng Feign.Builder, nó sẽ tìm thấy Bean Tùy chọn từ vùng chứa và sau đó đặt nó thành Feign.Builder.

                          
                          
                          
                             @Cấu hình 
                            
công cộng   lớp học   Cấu hình giả vờ   {

     @Đậu
     công cộng  Lời yêu cầu. Tùy chọn  tùy chọn ()   {
         trở lại   mới  Yêu cầu.Tùy chọn( 8 , Đơn vị thời gian.GIÂY,  8 , Đơn vị thời gian.GIÂY,  ĐÚNG VẬY );
    }

}

Tại thời điểm này, gỡ lỗi có thể thấy mã được đặt thành Feign.Builder.

Mã này nằm trong phương thức configureUsingConfiguration trong FeignClientFactoryBean.

2. Đặt trong file cấu hình

Ngoài việc khai báo các Bean, Spring còn cung cấp cấu hình thông qua các file cấu hình, như sau:

                          
                          
                          
                             giả vờ: 
                            
   khách hàng:
     cấu hình:
       mặc định:
         kết nốiThời gian chờ:   10000
         thời gian chờ đọc:   10000

Tương tự, gỡ lỗi có thể nhìn thấy nó.

Mã này nằm trong phương thức configureUsingConfiguration trong FeignClientFactoryBean.

Cả hai tệp cấu hình và đậu được khai báo đều có thể được đặt, vậy cái nào có mức độ ưu tiên cao hơn khi được đặt cùng một lúc?

Nếu không có cấu hình đặc biệt thì hãy làm theo quy định cấu hình của chính SpringBoot.

Quy ước > Cấu hình > Mã hóa.

Do đó, dựa trên quy tắc này, mức độ ưu tiên cấu hình của tệp cấu hình lớn hơn mức độ ưu tiên của việc khai báo các Bean theo cách thủ công.

Đến đây, chúng ta đã tìm hiểu thêm hai phương thức cấu hình do Spring cung cấp để thuận tiện cho chúng ta thiết lập Feign.Builder:

  • Khai báo các tùy chọn Bean
  • Tệp cấu hình

Thêm cả hai vào bức tranh được vẽ trước đó.

Vì vậy, nếu bạn sử dụng Feign theo cách mà Spring Cloud cung cấp thì bạn có thể thiết lập thời gian chờ thuận tiện hơn bằng cách khai báo Options Bean và file cấu hình.

Cuối cùng, nó thực sự được thiết lập thông qua Feign.Builder.

Thiết lập thông qua Ribbon dưới Spring Cloud

Khi Feign được sử dụng với Ribbon, ngoài 2 phương pháp trên, thời gian chờ cũng có thể được thiết lập thông qua Ribbon.

Nhưng ở đây tôi không biết bạn có tò mò không.

Ribbon không phải là thành phần cân bằng tải, làm cách nào tôi có thể đặt thời gian chờ?

Trên thực tế, điều này có liên quan đến vị trí của Ribbon ngoài thành phần cân bằng tải, Ribbon còn gửi các yêu cầu HTTP, tức là nó vẫn có thể gửi các yêu cầu HTTP mà không cần hợp tác với Feign.

Hãy làm một bản demo đơn giản.

Giải thích ý nghĩa của đoạn mã trên.

  • Bước đầu tiên là đặt hai địa chỉ phiên bản dịch vụ của dịch vụ người dùng.
  • Bước thứ hai là lấy RestClient tương ứng với dịch vụ người dùng. RestClient này có thể được sử dụng để gửi yêu cầu http.
  • Bước thứ ba là xây dựng một yêu cầu http
  • Bước thứ tư là gửi yêu cầu http theo cách cân bằng tải

Bằng cách này, một địa chỉ dịch vụ sẽ được chọn từ hai phiên bản dịch vụ dựa trên cân bằng tải để gửi yêu cầu http.

Vì Ribbon có thể gửi các yêu cầu HTTP nên việc đặt thời gian chờ là điều đương nhiên.

Khi Feign tích hợp Ribbon, để thống nhất cấu hình, nó đã mặc định quản lý thời gian chờ của riêng mình bằng Ribbon.

Do đó, theo mặc định, thời gian chờ của Feign có thể được cấu hình bằng Ribbon.

Thời gian chờ kết nối và đọc mặc định của Ribbon chỉ là 1 giây nên theo mặc định, thời gian chờ của Feign chỉ là 1 giây.

IClientConfig là lớp cấu hình của Ribbon. Tất cả các cấu hình của Ribbon có thể được lấy từ IClientConfig.

Do đó, theo mặc định, thời gian chờ xảy ra dễ dàng nhưng chúng ta có thể sửa đổi nó thông qua tệp cấu hình.

                          
                          
                          
                             ruy-băng: 
                            
   Kết nối thời gian chờ:   5000
   Thời gian chờ đọc:   5000

Bạn có biết nếu bạn để ý rằng cài đặt thời gian chờ của Feign thông qua Ribbon được đề cập ở trên, từ này đã được nhắc đến liên tục.

mặc định.

Trong trường hợp nào nó được gọi là mặc định?

Cái gọi là mặc định có nghĩa là khi bạn không chủ động đặt thời gian chờ của Feign thì đó là mặc định.

Nói cách khác, một khi bạn đặt thời gian chờ của Feign thông qua các phương pháp cấu hình được đề cập ở trên, nó sẽ không còn là mặc định nữa.

Lúc này, thời gian chờ thiết lập qua Ribbon sẽ không có hiệu lực.

Fign chuyển giao quản lý thời gian chờ cho Ribbon theo mặc định như thế nào?

Để trả lời câu hỏi này, trước tiên chúng ta phải loại bỏ giao diện Client được đề cập nhiều lần trước đó.

Trong môi trường SpringCloud, có một triển khai Client được gọi là LoadBalancerFeignClient.

Như bạn có thể thấy từ tên, để triển khai Máy khách với cân bằng tải, việc triển khai cân bằng tải phải được Ribbon thực hiện.

Vì vậy việc triển khai Client này được sử dụng khi Feign hợp tác với Ribbon.

Bây giờ giao diện Máy khách đã được triển khai, chúng ta hãy xem logic triển khai của phương thức thực thi.

Phương thức getClientConfig trong hình là logic cốt lõi để xác định nên sử dụng cấu hình Feign hay Ribbon.

Logic phán đoán cốt lõi là dòng này.

tùy chọn == TÙY CHỌN_MẶC_ĐỊNH 。

DEFAULT_OPTIONS là hằng số hết thời gian chờ.

Khi đáp ứng các điều kiện phán đoán ở trên, cấu hình Ribbon sẽ được lấy thông qua this.clientFactory.getClientConfig(clientName).

Vì đây là logic của Ribbon nên tôi sẽ không đi sâu vào chi tiết ở đây mà chỉ biết ý nghĩa của nó.

Khi điều kiện không được đáp ứng, hãy sử dụng Tùy chọn để tạo FeignOptionsClientConfig.

FeignOptionsClientConfig chỉ cần đọc cấu hình Tùy chọn và đặt nó thành cấu hình thời gian chờ của lớp cha DefaultClientConfigImpl.

DefaultClientConfigImpl Ngay cả khi bạn không biết nó là gì, một điều bạn có thể biết là thời gian chờ dựa trên tham số Tùy chọn được truyền cho Máy khách.

Vì vậy, tóm lại, câu hỏi của chúng ta trở nên rất dễ dàng, đó là khi nào.

tùy chọn == TÙY CHỌN_MẶC_ĐỊNH 。

Chỉ khi điều kiện này được đáp ứng thì cấu hình Ribbon mới được sử dụng.

Ở đây trước tiên chúng ta hãy xem những điều được đề cập trước đó.

Như chúng tôi đã đề cập nhiều lần trước đây, Tùy chọn của Khách hàng cuối cùng chỉ đến từ hai cấu hình.

  • Giả vờ. Người xây dựng
  • tham số phương pháp

Do đó, Tùy chọn DEFAULT_OPTIONS phải được đặt thông qua một trong hai phương pháp trên.

Không thể đặt tham số phương thức thành DEFAULT_OPTIONS.

Bởi vì điều này nằm trong tầm kiểm soát của chúng tôi, miễn là các tham số của chúng tôi không vượt qua DEFAULT_OPTIONS thì nó sẽ không bao giờ là DEFAULT_OPTIONS.

Chỉ còn một tình huống duy nhất vào lúc này, đó là khi Spring được build trong Feign.Builder, nó được đặt thành DEFAULT_OPTIONS.

Bằng cách tìm kiếm việc sử dụng DEFAULT_OPTIONS, chúng ta có thể theo dõi đoạn mã này.

Đây không phải là cách đặt thời gian chờ bằng cách khai báo Bean như đã đề cập trước đó sao?

Điểm khác biệt là nó thêm @ConditionalOnMissingBean Chú thích này có nghĩa là một khi chúng ta không tự khai báo Tùy chọn, chúng ta sẽ sử dụng Tùy chọn của anh ấy.

Bây giờ cuối cùng mọi chuyện có vẻ rõ ràng.

Nếu chúng ta không đặt thời gian chờ, Spring sẽ thêm Tùy chọn DEFAULT_OPTIONS vào Feign.Builder.

Trong quá trình thực thi nhận thấy là DEFAULT_OPTIONS tức là chúng ta chưa chủ động thiết lập thời gian chờ và thời gian chờ của Ribbon sẽ được sử dụng.

Để làm rõ logic trên dễ dàng hơn, đây là một bức tranh.

Mặc dù Feign có thể sử dụng thời gian chờ của Ribbon nhưng cấu hình của Ribbon có mức ưu tiên thấp nhất.

Tham số phương thức > Tệp cấu hình giả > Tùy chọn khai báo > Cấu hình dải băng.

Cái nào tốt hơn cho cấu hình Feign hay Ribbon?

Trên thực tế, cá nhân tôi thích sử dụng phương pháp cấu hình Ribbon hơn.

Ngoài việc thiết lập thời gian chờ, Ribbon còn có thể cấu hình các cấu hình khác như cơ chế thử lại và cân bằng tải.

Để đơn giản hóa và thống nhất cấu hình quản lý, hãy sử dụng Ribbon để định cấu hình khoảng thời gian chờ.

Có thể bạn có thắc mắc, Feign cũng hỗ trợ cơ chế thử lại, tại sao không chọn Feign nhỉ?

Điều này là do cơ chế thử lại của Feign không tốt bằng Ribbon.

Khi Ribbon thử lại, nó sẽ thử lại với một phiên bản dịch vụ khác vì lỗi ban đầu có thể không có.

Giả vờ sẽ không thử lại với một phiên bản dịch vụ khác. Anh ta không biết phiên bản dịch vụ nào đã được sử dụng lần trước. Điều này có thể dẫn đến việc thử lại nhiều lần trên một phiên bản dịch vụ không khả dụng.

Cài đặt thời gian chờ khi giới thiệu Hystrix

Nếu trước đây bạn chưa nghiên cứu mối quan hệ cấu hình của Feign timeout thì chắc hẳn bạn đã đạt được điều gì đó vào lúc này.

Nhưng đây có phải là kết thúc?

Không, nó không đơn giản như vậy.

Nếu bạn sử dụng Hystrix trong dự án của mình, bạn phải cẩn thận với các cấu hình được đề cập ở trên.

Vì Hystrix và Feign dù sao cũng là cùng một gia đình nên khi Hystrix được giới thiệu, Feign đã khác so với trước đây.

Hystrix sẽ làm một việc, đó là bảo vệ giao diện http của mỗi Feign. Suy cho cùng, Hystrix chỉ là một vệ sĩ mà thôi.

Nhưng không sao cả nếu không có sự bảo vệ. Một khi được bảo vệ, các vấn đề sẽ nảy sinh một cách vô thức.

Khi Hystrix đang bảo vệ, khi nhận thấy thời gian thực thi của giao diện được bảo vệ vượt quá thời gian tối đa do Hystrix đặt ra, nó sẽ trực tiếp thực hiện thao tác hạ cấp.

Chúng tôi không quan tâm đến việc nó bị hạ cấp như thế nào. Điều chúng tôi quan tâm là giá trị tối đa của thời gian chờ Hystrix.

Bởi vì một khi thời gian này nhỏ hơn thời gian chờ của Feign, sẽ xuất hiện giao diện Http đang được thực thi và không có ngoại lệ nào bị hạ cấp chỉ vì thời gian thực thi quá lâu.

Giá trị thời gian chờ tối đa mặc định của Hystrix chỉ là 1s.

Vì vậy cho dù thời gian chờ Feign của bạn có lớn đến đâu đi chăng nữa, nếu vượt quá 1 giây thì sẽ bị coi là hết thời gian chờ và bị hạ cấp, điều này quá bực bội. .

Vì vậy chúng ta cần sửa đổi giá trị tối đa mặc định của thời gian chờ. Các mục cấu hình cụ thể như sau.

                          
                          
                          
                             hystrix: 
                            
   yêu cầu:
     mặc định:
       thực hiện:
         sự cách ly:
           chủ đề:
             thời gian chờ tính bằng mili giây:   30000

Và thời gian nói chung phải tuân thủ các nguyên tắc sau.

Thời gian chờ Hystrix >= (thời gian chờ kết nối + thời gian chờ đọc) * số lần thử lại.

Chúng tôi cũng đã đề cập đến số lần thử lại trước đây. Mặc dù chúng tôi thường không đặt nó nhưng chúng tôi vẫn phải thêm nó vì mục đích nghiêm ngặt, vì thời gian thực hiện của giao diện HTTP chắc chắn liên quan đến số lần thử lại. thì càng mất nhiều thời gian.

Phương pháp cài đặt thời gian chờ kết nối + thời gian chờ đọc đã được đề cập nhiều lần trước đây, cho dù được đặt thông qua chính Feign hay thông qua Ribbon thì tất cả đều có thể thực hiện được.

Tóm tắt

Hôm nay tôi sẽ giới thiệu cho các bạn cài đặt thời gian chờ của Feign trong các điều kiện sử dụng khác nhau. Tóm tắt như sau:

  • Khi sử dụng Feign một mình: Đạt Giả vờ. Người xây dựng và các tham số phương thức
  • Chỉ sử dụng Feign trong môi trường SpringCloud: tham số phương thức, tệp cấu hình, khai báo Tùy chọn Đậu
  • Dùng với Ribbon: Thiết lập thông số thời gian chờ của Ribbon
  • Sử dụng với Hystrix: Sửa đổi thời gian chờ mặc định và cố gắng khớp thời gian chờ Hystrix >= (thời gian chờ kết nối + thời gian chờ đọc) * số lần thử lại

Nếu bài viết này hữu ích cho bạn, vui lòng chuyển tiếp, thích, sưu tầm và đọc. Cảm ơn bạn rất nhiều.

Các bài viết phổ biến được đề xuất từ ​​các số trước

Cách đọc mã nguồn, tôi đã tổng hợp 18 mẹo.

Cách viết code đẹp, tôi đã tổng hợp được 45 mẹo.

15.000 từ + 30 hình ảnh để chỉ ra 11 điểm kiến ​​thức phổ biến.

Ba mươi nghìn từ để nắm bắt các điểm mở rộng chung của Spring/Boot.

Bài đánh giá dài 30.000 từ về 9 chức năng cơ bản cốt lõi của Spring.

Một bài đánh giá dài 20.000 từ về các mẫu thiết kế đã bị chơi xấu.

Quét mã QR hoặc tìm kiếm và theo dõi nhật ký java của tài khoản chính thức Sanyou để có được thông tin kịp thời. Tài khoản chính thức cam kết giải thích công nghệ thông qua hình vẽ và ngôn ngữ dễ hiểu, giúp bạn dễ dàng tìm hiểu công nghệ hơn. câu hỏi phỏng vấn thực tế bằng cách trả lời cuộc phỏng vấn.

Cuối cùng, bài viết này về cách đặt thời gian chờ của Feign, tôi đã nghiên cứu 4 tình huống, kết thúc tại đây. Nếu bạn muốn biết thêm về cách đặt thời gian chờ của Feign, tôi đã nghiên cứu 4 tình huống, vui lòng tìm kiếm các bài viết của CFSDN hoặc tiếp tục duyệt các bài viết liên quan. bạn sẽ ủng hộ blog của tôi trong tương lai! .

25 4 0
tôi là một con chim nhỏ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress