Pingora là gì?
Pingora là một framework được xây dựng dựa trên ngôn ngữ Rust để xây dựng các hệ thống nối mạng nhanh, đáng tin cậy và có thể lập trình được. Và là một framework đa luồng, không đồng bộ Rust hỗ trợ để xây dựng các dịch vụ proxy HTTP.
Điểm nổi bật của Pingora
- Được xây dựng với ngôn ngữ lập trình Rust bất đồng bộ, giúp tăng tốc và đảm bảo đáng tin cậy.
- Hỗ trợ proxy HTTP hiệu suất cao.
- TLS qua OpenSSL hoặc BoringSSL: Cho phép mã hóa an toàn.
- Proxy gRPC và websocket
- Graceful reload: Cho phép bạn khởi động lại máy chủ một cách dễ dàng mà không làm gián đoạn dịch vụ. Điều này đặc biệt hữu ích khi bạn cần cập nhật mã nguồn hoặc cấu hình mà không muốn ngắt kết nối đến máy chủ.
- Chiến lược cân bằng tải và khả năng phục hồi tùy chỉnh
- Hỗ trợ cho nhiều công cụ quan sát: Pingora tích hợp với các công cụ quan sát phổ biến như Prometheus, Grafana, và Jaeger. Điều này giúp bạn theo dõi hiệu suất và tìm hiểu về hành vi của hệ thống.
Lý do sử dụng Pingora
- Bảo mật là ưu tiên hàng đầu: Pingora là một lựa chọn an toàn hơn cho các dịch vụ được viết bằng C/C++.
- Dịch vụ của bạn đòi hỏi hiệu suất.
- Dịch vụ của bạn cần tùy chỉnh nhiều: Các API mà khung proxy Pingora cung cấp có khả năng lập trình cao.
Các crates đáng lưu ý trong không gian này
- Pingora: crate “public facing” để xây dựng các hệ thống và proxy mạng.
- Pingora-core: crate này định nghĩa các giao thức, chức năng và traits cơ bản.
- Pingora-proxy: logic và APIs để xây dựng các proxy HTTP.
- Pingora-error: loại lỗi chung được sử dụng trong toàn bộ các crates của Pingora.
- Pingora-http: định nghĩa tiêu đề và APIs của HTTP.
- Pingora-openssl & pingora-boringssl: các phần mở rộng và APIs liên quan đến SSL.
- Pingora-ketama: thuật toán chọn người dùng liên tục Ketama.
- Pingora-limits: thuật toán đếm hiệu quả.
- Pingora-load-balancing: các phần mở rộng thuật toán cân bằng tải cho pingora-proxy.
- Pingora-memory-cache: Bộ nhớ đệm không đồng bộ trong bộ nhớ với khóa đệm để ngăn chặn cache stampede.
- Pingora-timeout: Hệ thống hẹn giờ không đồng bộ hiệu quả hơn.
- TinyUfo: Thuật toán đệm đằng sau pingora-memory-cache.
*Trong ngôn ngữ Rust cung cấp 2 khái niệm là Crates và packages để đồng nhất quan niệm. Hiểu đơn giản Crates là một file hay một tệp mã nguồn duy nhất, trong khi packages lại là tập hợp của nhiều Crates.
Tài liệu tham khảo:
https://github.com/cloudflare/pingora
Cảm ơn bạn đã xem qua, bạn có thể xem thêm nhiều tài liệu, kiến thức chia sẽ tại đây
P.A Việt Nam cung cấp đa dạng các cấu hình Máy Chủ Ảo và Máy Chủ Riêng
Cloud Server
Cloud Server Pro
Máy Chủ Riêng
Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/