Yandex 開放了用於建立高負載應用程式的 userver 框架的程式碼

Yandex 發布了 Userver 框架的原始程式碼,它允許您使用 C++ 建立以非同步模式工作的高負載應用程式。 該框架已經在 Yandex 級別的負載下進行了測試,並用於 Yandex Go、Lavka、Delivery、Market 和金融科技專案等服務。 Userver的程式碼是用C++寫的,並在Apache 2.0許可證下開源。

Userver最適合開發具有微服務架構的應用程式。 最初,該框架是為 Yandex Taxi 開發的,在它的幫助下,團隊從單一應用程式切換到允許您開發單獨的獨立元件(微服務)並在不同應用程式中使用它們的架構。 微服務是自治的,因此基於類似架構的應用程式很容易更新並向其添加新功能。 因此,為計程車訂單尋找司機的微服務可用於類似的任務 - 例如,尋找快遞員來履行 Yandex Delivery 訂單。 計算司機或快遞員的到達時間以及許多其他任務也可以完成相同的操作。

該框架最初創建時強調可靠性和便利性,其中提供了開發、診斷、監控、調試和實驗所需的一切。 例如,userver 建議如何在編譯階段修復錯誤、可以使用不同的資料庫、動態變更參數等​​等。 聲明支援 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

添加評論