cuốn sách gpt4 ai đã làm

Sự khác biệt giữa netflix.feign và openfeign

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 03:30:53 26 4
mua khóa gpt4 Nike

Giới thiệu

Gần đây tôi đã sử dụng giả mạo và ruy-băng của Netflix và nó rất hữu ích.

Một ví dụ là:

@FeignClient(name = "ldap-proxy")
giao diện công cộng LdapProxyClient {
@RequestMapping(path = "/ldap-proxy/v1/users/{userNameOrEMail}", tạo = MediaType.APPLICATION_JSON_VALUE, phương thức =RequestMethod.GET)
Tìm kiếm LdapUser(@PathVariable("userNameOrEMail") Chuỗi userNameOrEMail);
}

Tuy nhiên, đến một lúc nào đó tôi nghĩ mình không cần phải viết tất cả các định nghĩa này một cách thủ công (đối với các dịch vụ web hiện có) mà nên xem liệu các công cụ có tồn tại hay không.

tôi tình cờ gặp nó https://github.com/swagger-api/swagger-codegen và thấy các ví dụ về việc tạo khách hàng nhưhttps://github.com/swagger-api/swagger-codegen/tree/master/samples/client/petstore/java/feign .

Tuy nhiên, khi tôi xem xét kỹ hơn việc nhập, tôi nhận thấy những điều sau:

nhập khẩu giả.Feign;

Mặt khác, giải pháp nguồn mở của Netflix có tên gói:org.springframework.cloud.netflix.feign.

Ngoài ra, tôi nhận thấy rằng cả hai đều sử dụng dải băng (nếu có), nhưng ký hiệu của Netflix rõ ràng hơn và có nhiều nội dung đang diễn ra ở chế độ nền. Ví dụ. @FeignClient Câu lệnh javadoc của lớp chú thích:

  • Chú thích cho các giao diện khai báo rằng cần * tạo một máy khách REST có giao diện đó (ví dụ: để tự động kết nối vào một thành phần khác). Nếu có dải băng, nó sẽ được * sử dụng để cân bằng tải cho các yêu cầu phụ trợ và có thể định cấu hình bộ cân bằng tải * bằng cách sử dụng một @RibbonClient có cùng tên (tức là giá trị) với khách hàng giả.

Nhưng trong giả vờ.giả vờ Tài liệu (nằm ở https://github.com/OpenFeign/feign )Tôi hiểu rồi:

RibbonClient ghi đè độ phân giải URL của ứng dụng khách của Feign, bổ sung khả năng định tuyến và khả năng phục hồi thông minh do Ribbon cung cấp.

Quá trình tích hợp yêu cầu bạn chuyển tên ứng dụng khách ribbon của mình làm phần máy chủ của url, ví dụ: myAppProd.

> API dịch vụ của tôi =
> Feign.builder().client(RibbonClient.create()).target(MyService.class,
> "https://myAppProd");

所以我的问题是:

  1. Lịch sử/mối quan hệ và sự khác biệt giữa hai người là gì?
  2. Ưu điểm và nhược điểm của mỗi loại là gì?

Chúng có phải là những dự án hoàn toàn khác nhau và không có mối quan hệ nào hay Netflix chỉ phân nhánh/tận dụng OpenFeign và sửa đổi nó thành một giải pháp đám mây tích hợp? Về bản chất, có phải Netflix chỉ lấy từ các dự án nguồn mở và tích hợp các công nghệ khác nhau như Discovery, Ribbon và Feign?

câu trả lời hay nhất

"Netflix giả vờ" làTên dự án. Phiên bản mới nhất (phụ thuộc bên dưới) được phát hành vào tháng 7 năm 2016.

nhóm biên dịch: 'com.netflix.feign', tên: 'feign-core', phiên bản:'8.18.0' // OLD

"Giả vờ mở" làTên dự án. Đây là cùng một dự án nhưng đã chuyển sang một kho lưu trữ git khác và được cấp id nhóm mới. Phiên bản của nó bắt đầu từ 9.0.0.

nhóm biên dịch: 'io.github.openfeign', tên: 'feign-core', phiên bản: '10.0.1' // MỚI

Nhìn thấy vấn đề github nàyNhận một lịch sử ngắn gọn về những gì đã xảy ra. Đáng chú ý nhất, bạn sẽ thấy rằng Feign không còn được sử dụng nội bộ tại Netflix nữa. :^o

Về java - sự khác biệt giữa netflix.feign và openfeign, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/49823158/

26 4 0
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