userverYandex 开源的 C++ 异步框架
userver 是一个开源的异步框架,具有丰富的抽象集,用于快速和舒适地创建 C++ 微服务、服务和实用工具。该框架为开发者解决了高效 I/O 交互的问题,线程处理其他请求和任务,并仅在保证立即执行时才返回操作的处理:
std::size_t Ins(storages::postgres::Transaction& tr, std::string_view key) { // Asynchronous execution of the SQL query in transaction. Current thread // handles other requests while the response from the DB is being received: auto res = tr.Execute("INSERT INTO keys VALUES ($1)", key); return res.RowsAffected(); }
因此,有了这个框架,你就可以得到直接的源代码,避免操作系统在耗费 CPU 的线程上切换,用少量的执行线程有效地利用CPU。
其他特点:
- 用于数据库(MongoDB、PostgreSQL、Redis...)和数据传输协议(HTTP、GRPC、TCP...)、任务构建和取消的高效异步驱动程序。
- 用于缓存、任务、分布式锁定、日志记录、跟踪、统计、指标、JSON/YAML/BSON 的丰富高级组件集。
- 动态更改服务配置的功能
- 动态可配置驱动程序、超时、拥塞控制。
- 一套全面的异步低级同步基元和操作系统抽象。
评论