userverYandex 開源的 C++ 異步框架
userver 是一個開源的異步框架,具有豐富的抽象集,用于快速和舒適地創(chuàng)建 C++ 微服務、服務和實用工具。該框架為開發(fā)者解決了高效 I/O 交互的問題,線程處理其他請求和任務,并僅在保證立即執(zhí)行時才返回操作的處理:
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(); }
因此,有了這個框架,你就可以得到直接的源代碼,避免操作系統(tǒng)在耗費 CPU 的線程上切換,用少量的執(zhí)行線程有效地利用CPU。
其他特點:
- 用于數據庫(MongoDB、PostgreSQL、Redis...)和數據傳輸協(xié)議(HTTP、GRPC、TCP...)、任務構建和取消的高效異步驅動程序。
- 用于緩存、任務、分布式鎖定、日志記錄、跟蹤、統(tǒng)計、指標、JSON/YAML/BSON 的豐富高級組件集。
- 動態(tài)更改服務配置的功能
- 動態(tài)可配置驅動程序、超時、擁塞控制。
- 一套全面的異步低級同步基元和操作系統(tǒng)抽象。
評論
圖片
表情
