Yandex parantos muka kodeu pikeun kerangka pangguna pikeun nyiptakeun aplikasi-beban tinggi

Yandex parantos nyebarkeun kode sumber kerangka Userver, anu ngamungkinkeun anjeun nyiptakeun aplikasi beban tinggi dina C ++ anu tiasa dianggo dina modeu asinkron. Kerangka parantos diuji dina beban tingkat Yandex sareng dianggo dina jasa sapertos Yandex Go, Lavka, Pangiriman, Pasar sareng proyék fintech. Kode Userver ditulis dina C ++ tur open sourced handapeun lisénsi Apache 2.0.

Userver paling cocog pikeun ngembangkeun aplikasi sareng arsitektur microservice. Mimitina, kerangka ieu dikembangkeun pikeun Yandex Taxi, kalayan bantosanna, tim ngalih tina aplikasi monolitik ka arsitéktur anu ngamungkinkeun anjeun pikeun ngembangkeun komponén mandiri anu misah (layanan mikro) sareng dianggo dina aplikasi anu béda. Microservices otonom, janten aplikasi dumasar kana arsitéktur anu sami gampang pikeun ngapdet sareng nambihan fitur énggal. Ku kituna, layanan mikro pikeun manggihan supir keur pesenan Taksi bisa dipaké pikeun tugas sarupa - contona, manggihan kurir pikeun minuhan pesenan Pangiriman Yandex. Hal anu sami tiasa dilakukeun ku ngitung waktos kadatangan supir atanapi kurir sareng seueur tugas sanésna.

Kerangka ieu mimitina didamel kalayan tekenan kana reliabilitas sareng genah, sareng di jerona disayogikeun sadayana anu dipikabutuh pikeun pangwangunan, diagnostik, ngawaskeun, debugging sareng percobaan. Contona, userver nyarankeun cara ngalereskeun kasalahan dina tahap kompilasi, tiasa dianggo kalayan database béda, ngarobah parameter on laleur, jeung saterusna. Ngadéklarasikeun dukungan pikeun Ubuntu, Debian, Fedora, Arch, Gentoo, sistem macOS, x86, x86_64, AArch64, Arsitéktur Arm, kompiler GCC 8+ sareng Clang 9+, standar C ++ 17, C ++ 20, C ++ 23.

Komposisina kalebet drivers pikeun karya asinkron sareng DBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), klien sareng server anu teu sinkron pikeun sababaraha protokol (HTTP, HTTPS, GRPC, TCP, UDP, TLS), primitif tingkat rendah pikeun manajemén sinkronisasi. sarta aksés ka kamampuhan sistem operasi, kitu ogé komponén-tingkat tinggi pikeun gawé bareng cache, tugas, konci disebarkeun, tracing, metrics, statistik jeung data dina format JSON / YAML / BSON. Ieu ngarojong ngarobah konfigurasi jasa on laleur, tanpa stopping eta.

Saméméhna, Yandex nransferkeun téknologi konci séjén na kana wangun proyék kabuka - contona, sistem manajemen database disebarkeun YDB, sanggup ngolah jutaan requests per detik, kitu ogé perpustakaan mesin learning CatBoost, nu Yandex ngagunakeun dina Search jeung lianna. jasa.

sumber: opennet.ru

Tambahkeun komentar