Xuất bản vào

Netflix thực sự sử dụng Java như thế nào?

Tác giả

"Netflix chủ yếu là một Java Shop.

Mọi ứng dụng phụ trợ (bao gồm ứng dụng nội bộ, ứng dụng phát trực tuyến và sản xuất phim) tại Netflix đều là một ứng dụng Java.

Tuy nhiên, Java stack không tĩnh và đã trải qua nhiều lần lặp lại trong nhiều năm.

Dưới đây là chi tiết về những lần lặp lại đó:

1 - Cổng API Netflix tuân theo kiến ​​trúc microservice. Mọi chức năng và dữ liệu đều thuộc sở hữu của một vi dịch vụ được xây dựng bằng Java (phiên bản đầu tiên là 8)

Điều này có nghĩa là việc hiển thị một màn hình (chẳng hạn như Danh sách phim hoặc LOLOMO) liên quan đến việc tìm nạp dữ liệu từ 10 giây vi dịch vụ. Nhưng việc thực hiện tất cả các cuộc gọi này từ máy khách đã tạo ra một vấn đề về hiệu suất.

Netflix ban đầu sử dụng mẫu Cổng API bằng Zuul để xử lý việc điều phối.

2 - BFF với Groovy & RxJava Việc sử dụng một cổng duy nhất cho nhiều máy khách là một vấn đề đối với Netflix vì mỗi máy khách (chẳng hạn như TV, ứng dụng di động hoặc trình duyệt web) đều có những khác biệt nhỏ.

Để xử lý vấn đề này, Netflix đã sử dụng mẫu Backend-for-Frontend (BFF). Zuul được chuyển sang làm proxy

Trong mẫu này, mọi giao diện người dùng hoặc giao diện người dùng đều có phần phụ trợ nhỏ riêng để thực hiện phân bổ yêu cầu và điều phối cho nhiều dịch vụ.

Các BFF được xây dựng bằng cách sử dụng các tập lệnh Groovy và việc phân phát dịch vụ được thực hiện bằng cách sử dụng RxJava để quản lý luồng.

3 - Liên đoàn GraphQL Cách tiếp cận Groovy và RxJava yêu cầu các nhà phát triển giao diện người dùng phải làm việc nhiều hơn trong việc tạo tập lệnh Groovy. Ngoài ra, lập trình phản ứng nói chung là khó.

Gần đây, Netflix đã chuyển sang Liên đoàn GraphQL. Với GraphQL, khách hàng có thể chỉ định chính xác tập hợp trường nào họ cần, từ đó giải quyết được vấn đề tìm nạp quá mức và tìm nạp thiếu bằng API REST.

Liên đoàn GraphQL đảm nhiệm việc gọi các dịch vụ vi mô cần thiết để tìm nạp dữ liệu.

Các vi dịch vụ này được gọi là Dịch vụ đồ thị miền (DGS) và được xây dựng bằng các gói Java 17, Spring Boot 3 và Spring Boot Netflix OSS. Việc chuyển từ Java 8 sang Java 17 giúp tăng 20% ​​CPU.

Gần đây hơn, Netflix đã bắt đầu chuyển sang Java 21 để tận dụng các tính năng như luồng ảo."

Netflix thực sự sử dụng Java như thế nào?

TÁC GIẢ

Về ABN Asia: Ai Base Network (ABN), ABN Asia được thành lập từ năm 2012, là một công ty xuất phát từ học thuật, do những giảng viên, cựu du học sinh Hungary, Hà Lan, Nga, Đức, và Nhật Bản sáng lập. Chúng tôi chia sẻ đam mê chung và tầm nhìn vững chắc về công nghệ, mang đến sự đổi mới và chất lượng đỉnh cao cho khách hàng. Phương châm của chúng tôi là: Tốt hơn. Nhanh hơn. An toàn hơn. Trong nhiều trường hợp: Rẻ hơn.

Hãy liên hệ với chúng tôi khi Quý doanh nghiệp có các nhu cầu về dịch vụ công nghệ thông tin, tư vấn chuyển đổi số, tìm kiếm các giải pháp phần mềm phù hợp, hoặc nếu Quý doanh nghiệp có đấu thầu CNTT (RFP) để chúng tôi tham dự. Quý doanh nghiệp có thể liên hệ với chúng tôi qua địa chỉ email [email protected]. Chúng tôi sẵn lòng hỗ trợ với mọi nhu cầu công nghệ của Quý doanh nghiệp.

ABNAsia.org

© ABN ASIA