Ua wehe ʻo Yandex i ke code no ka mea hoʻohana no ka hana ʻana i nā noi kiʻekiʻe

Ua paʻi ʻo Yandex i ke kumu kumu o ka Userver framework, e hiki ai iā ʻoe ke hana i nā noi kiʻekiʻe ma C ++ e hana ana ma ke ʻano asynchronous. Ua hoʻāʻo ʻia ke kāʻei ma lalo o nā ukana pae Yandex a hoʻohana ʻia i nā lawelawe e like me Yandex Go, Lavka, Delivery, Market a me nā papahana fintech. Ua kākau ʻia ka code a Userver ma C++ a ua laikini ʻia ma lalo o ka laikini Apache 2.0.

Ua kūpono ka mea hoʻohana no ka hoʻomohala ʻana i nā noi me ka hoʻolālā microservice. I ka hoʻomaka ʻana, ua hoʻomohala ʻia ke kāʻei no Yandex Taxi, me kāna kōkua ua hoʻololi ka hui mai kahi noi monolithic i kahi hoʻolālā e hiki ai iā ʻoe ke hoʻomohala i nā ʻāpana kūʻokoʻa (microservices) a hoʻohana iā lākou i nā noi like ʻole. He kūʻokoʻa nā Microservices, no laila ua maʻalahi kahi noi e pili ana i kahi hoʻolālā like e hoʻonui a hoʻohui i nā hiʻohiʻona hou iā ia. No laila, hiki ke hoʻohana ʻia ka microservice no ka loaʻa ʻana o kahi mea hoʻokele no nā kauoha Taxi no kahi hana like - no ka laʻana, ʻimi i kahi ʻelele e hoʻokō i nā kauoha Hoʻouna ʻo Yandex. Hiki ke hana like me ka helu ʻana i ka manawa hōʻea o ka mea hoʻokele a i ʻole ka ʻelele a me nā hana ʻē aʻe he nui.

Ua hoʻokumu mua ʻia ka hoʻolālā me ka manaʻo nui i ka hilinaʻi a me ka maʻalahi, a i loko o ia mea, hāʻawi ʻia nā mea āpau e pono ai no ka hoʻomohala ʻana, diagnostics, nānā, debugging a me nā hoʻokolohua. No ka laʻana, manaʻo ʻo userver pehea e hoʻoponopono ai i nā hewa i ka pae hoʻohui, hiki ke hana me nā ʻikepili like ʻole, hoʻololi i nā ʻāpana ma ka lele, a pēlā aku. Hoʻolaha ʻia ke kākoʻo no Ubuntu, Debian, Fedora, Arch, Gentoo, macOS system, x86, x86_64, AArch64, Arm architectures, GCC 8+ a me Clang 9+ compilers, C++17, C++20, C++23 standards.

Aia ka haku mele i nā mea hoʻokele no ka hana asynchronous me DBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), nā mea hoʻohana asynchronously a me nā kikowaena no nā protocols like ʻole (HTTP, HTTPS, GRPC, TCP, UDP, TLS), nā haʻahaʻa haʻahaʻa haʻahaʻa no ka hoʻokele synchronization. a me ka loaʻa ʻana o nā mana o ka ʻōnaehana hana, a me nā ʻāpana kiʻekiʻe no ka hana ʻana me ka cache, nā hana, nā laka i hoʻokaʻawale ʻia, ka ʻimi ʻana, nā metric, nā helu a me nā ʻikepili i nā format JSON/YAML/BSON. Kākoʻo ia i ka hoʻololi ʻana i ka hoʻonohonoho lawelawe ma ka lele, me ka ʻole o ka hoʻōki ʻana.

Ma mua, ua hoʻololi ʻo Yandex i kāna mau ʻenehana nui ʻē aʻe i ke ʻano o nā papahana wehe - no ka laʻana, ka ʻōnaehana hoʻokele waihona waihona YDB, hiki ke hana i nā miliona o nā noi i kēlā me kēia kekona, a me ka CatBoost machine learning library, a Yandex e hoʻohana ai i ka Huli a me nā mea ʻē aʻe. lawelawe.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka