Ağ hizmetleri oluşturmaya yönelik bir çerçeve olan Pingora 0.4'ün yayımlanması

Cloudflare, Rust dilinde güvenli, yüksek performanslı ağ hizmetleri geliştirmek için tasarlanan Pingora 0.4 çerçevesinin sürümünü yayınladı. Pingora kullanılarak oluşturulan proxy, iki yılı aşkın süredir Cloudflare içerik dağıtım ağında Nginx yerine kullanılıyor ve saniyede 40 milyondan fazla isteği işliyor. Kod Rust'ta yazılmıştır ve Apache 2.0 lisansı altında yayınlanmıştır.

Pingora'nın temel özellikleri:

  • HTTP/1 ve HTTP/2 (planlarda HTTP/3) desteğinin yanı sıra kendi protokollerini veya UDP/TCP'yi kullanarak hizmetler oluşturma yeteneği.
  • İsteklerin eşzamansız modda çok iş parçacıklı işlenmesi desteği.
  • İstek işlemenin çeşitli aşamalarını yönetmenize, ayrıca istekleri ve yanıtları değiştirmenize, yönlendirmenize, engellemenize ve günlüğe kaydetmenize olanak tanıyan geri arama işleyicileri ve filtreleri ekleme yeteneği.
  • GRPC ve WebSocket'in proxylenmesi.
  • Bağlanabilir yük dengeleyiciler.
  • Yeniden başlatmaya gerek kalmadan yapılandırmayı değiştirme yeteneği.
  • Bağlantıları kesmeden uygulama kodunu güncelleme desteği.
  • Arıza durumunda (yük devretme) yük değiştirme araçları.
  • Çeşitli izleme ve kayıt sistemleriyle entegrasyon (Syslog, Prometheus, Sentry, OpenTelemetry).
  • TLS şifreleme desteği (OpenSSL, BoringSSL veya Rustls kullanılarak).
  • HTTP proxy'leri oluşturmak, ağ protokolleriyle çalışmak, HTTP başlıklarını ayrıştırmak, trafiği hesaplamak ve sınırlamak, yük dengeleme, Ketama dağıtılmış karma tablosuyla çalışmak, RAM'de bir önbellek tutmak ve zaman aşımlarının eşzamansız işlenmesi için hazır Rust paketleri.

Yeni sürümdeki değişiklikler arasında:

  • Aws-lc-rs tabanlı kripto sağlayıcıları ve BoringSSL tabanlı ring kitaplıklarını kullanan Rustls şifreleme kitaplığı için ilk destek.
  • Windows platformu için deneysel destek.
  • Gerçek bir TLS uygulamasının kullanılmasının mümkün olmadığı durumlarda kullanılabilen sahte TLS modu.
  • gRPC-web istemci isteklerini, gRPC-web modülüne çevirmek için gRPC-web modülüne destek eklendi. sunucu gRPC.
  • Aynı ağ bağlantı noktasında H2C (çıplak TCP üzerinden HTTP/2, şifreleme yok) ve HTTP/1 bağlantılarını yönetme yeteneği sağlar.
  • Örneğin, soket için ek seçenekler ayarlamak veya test sırasında hataları simüle etmek gibi bir ağ bağlantısı kurarken davranışı değiştirmek için connect() işlevinin kendi uygulamalarınızı bağlama yeteneği eklendi.
  • "Expect: 100-devam" başlığına sahip yanıtlar gibi, proxy oluşturma sırasında bilgi yanıtlarını göz ardı etme yeteneği sağlandı.
  • Gzip ile sıkıştırılmış yanıtların paketini açmak için destek eklendi.
  • İzleme amacıyla arka uç durumunun muhasebeleştirilmesi uygulandı.
  • Bir dizi yerel bağlantı noktasına bağlanma yeteneği eklendi.

Kaynak: opennet.ru

Yorum ekle