Yandex нь өндөр ачаалалтай програмуудыг үүсгэх хэрэглэгчийн хүрээний кодыг нээсэн

Yandex нь асинхрон горимд ажилладаг C++ хэл дээр өндөр ачаалалтай програмуудыг үүсгэх боломжийг олгодог Userver framework-ийн эх кодыг нийтлэв. Энэхүү хүрээ нь Yandex-ийн түвшний ачаалалд туршиж үзсэн бөгөөд Yandex Go, Lavka, Delivery, Market болон финтек төслүүд зэрэг үйлчилгээнд ашиглагддаг. Хэрэглэгчийн код нь C++ хэл дээр бичигдсэн бөгөөд Apache 2.0 лицензийн дагуу нээлттэй эх сурвалжтай.

Хэрэглэгч нь микро үйлчилгээний архитектур бүхий программуудыг хөгжүүлэхэд хамгийн тохиромжтой. Эхлээд Yandex Такси-д зориулж уг хүрээг боловсруулсан бөгөөд түүний тусламжтайгаар баг нь цул програмаас тусдаа бие даасан бүрэлдэхүүн хэсгүүдийг (микросервисүүд) боловсруулж, өөр өөр програмуудад ашиглах боломжийг олгодог архитектурт шилжсэн. Бичил үйлчилгээ нь бие даасан байдаг тул ижил төстэй архитектурт суурилсан програмыг шинэчлэх, түүнд шинэ боломжуудыг нэмэхэд хялбар байдаг. Тиймээс таксины захиалга өгөх жолооч олох микро үйлчилгээг ижил төстэй ажилд ашиглаж болно - жишээлбэл, Yandex Delivery захиалгыг биелүүлэх шуудан зөөгчийг хайж олох. Жолооч эсвэл шуудан зөөгчийн ирэх цаг болон бусад олон ажлыг тооцоолоход мөн адил зүйлийг хийж болно.

Энэхүү хүрээ нь найдвартай, тохь тухтай байдлыг онцлон бүтээсэн бөгөөд түүний дотор хөгжүүлэх, оношлох, хянах, дибаг хийх, туршилт хийхэд шаардлагатай бүх зүйлийг багтаасан болно. Жишээлбэл, хэрэглэгч эмхэтгэлийн үе шатанд алдааг хэрхэн засах, янз бүрийн мэдээллийн сантай ажиллах, параметрүүдийг шууд өөрчлөх гэх мэтийг санал болгодог. Ubuntu, Debian, Fedora, Arch, Gentoo, macOS системүүд, x86, x86_64, AArch64, Arm архитектурууд, GCC 8+ болон Clang 9+ хөрвүүлэгч, C++17, C++20, C++23 стандартуудад дэмжлэг үзүүлэхээ зарласан.

Энэхүү найрлагад DBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL)-тай асинхрон ажиллах драйверууд, янз бүрийн протоколуудад зориулсан асинхрон ажилладаг үйлчлүүлэгчид болон серверүүд (HTTP, HTTPS, GRPC, TCP, UDP, TLS), синхрончлолын удирдлагын доод түвшний командууд орно. JSON/YAML/BSON форматын кэш, даалгавар, тархсан түгжээ, мөшгих, хэмжүүр, статистик болон өгөгдөлтэй ажиллах өндөр түвшний бүрэлдэхүүн хэсгүүд болон үйлдлийн системийн чадамжид хандах боломжтой. Энэ нь үйлчилгээний тохиргоог зогсоохгүйгээр шууд өөрчлөхийг дэмждэг.

Өмнө нь Yandex бусад гол технологио нээлттэй төслүүдийн хэлбэрт шилжүүлсэн - жишээлбэл секундэд сая сая хүсэлтийг боловсруулах чадвартай тархсан мэдээллийн сангийн удирдлагын систем YDB, мөн Yandex хайлтын системд ашигладаг CatBoost машин сургалтын номын сан гэх мэт. үйлчилгээ.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх