| Servicevorlagen | Entwickeln / grüner Kofferraum | v2.0 | v1.0 |
|---|---|---|---|
| Kern: | [➚] | [➚] | |
| PostgreSQL: | [➚] | [➚] | |
| GRPC+PostgreSQL: | [➚] | [➚] |
Userver ist ein asynchrones Open -Source -Framework mit einer Vielzahl von Abstraktionen für die schnelle und komfortable Erstellung von C ++ - Microservices, Diensten und Dienstprogrammen.
Das Framework löst das Problem effizienter E/A -Interaktionen für die Entwickler transparent. Operationen, die den Ausführungsthread in der Regel aussetzen würden, setzen ihn nicht aus. Anstelle dessen verarbeitet der Thread andere Anfragen und Aufgaben und kehrt nur dann zur Handhabung des Vorgangs zurück, wenn er garantiert sofort ausgeführt wird:
# include < userver/easy.hpp >
# include " schemas/key_value.hpp "
int main ( int argc, char * argv[]) {
using namespace userver ;
easy::HttpWith<easy::PgDep>(argc, argv)
// Handles multiple HTTP requests to `/kv` URL concurrently
. Get ( " /kv " , [](formats::json::Value request_json, const easy::PgDep& dep) {
// JSON parser and serializer are generated from JSON schema by userver
auto key = request_json. As <schemas::KeyRequest>(). 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 = dep. pg (). Execute (
storages::postgres::ClusterHostType:: kSlave ,
// Query is converted into a prepared statement. Subsequent requests
// send only parameters in a binary form and meta information is
// discarded on the DB side, significantly saving network bandwidth.
" SELECT value FROM key_value_table WHERE key=$1 " , key
);
schemas::KeyValue response{key, res[ 0 ][ 0 ]. As <std::string>()};
return formats::json::ValueBuilder{response}. ExtractValue ();
});
}Wenn Sie mit dem Framework einen einfachen Quellcode erhalten, vermeiden Sie die CPU-kontextversetztes Kontextschalter aus dem Betriebssystem und verwenden Sie die CPU effizient mit einer geringen Menge an Ausführungs-Threads.
Aus unseren Veröffentlichungen und Videos erfahren Sie mehr über Geschichte und wichtige Funktionen von Userver.
Weitere Informationen finden Sie in den Dokumenten.