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

添加评论