一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

workflow:適合C++開發(fā)者進(jìn)階的開源項(xiàng)目

嵌入式學(xué)習(xí)站 ? 來(lái)源:嵌入式學(xué)習(xí)站 ? 作者:嵌入式學(xué)習(xí)站 ? 2022-11-25 16:28 ? 次閱讀

今天分享一個(gè)適合C++開發(fā)者進(jìn)階的開源項(xiàng)目,這個(gè)項(xiàng)目的名字叫workflow,項(xiàng)目地址如下:https://github.com/sogou/workflow

a4c940ae-6b11-11ed-8abf-dac502259ad0.png

項(xiàng)目適用場(chǎng)景

該項(xiàng)目是搜狗的服務(wù)器引擎,幾乎搜狗所有的后端C++服務(wù)和其他幾十家公司都在使用這個(gè)引擎,每日處理超百億請(qǐng)求。

不僅如此,該項(xiàng)目也非常適合在嵌入式應(yīng)用上實(shí)現(xiàn)網(wǎng)絡(luò)的框架設(shè)計(jì),框架設(shè)計(jì)是一個(gè)項(xiàng)目成功與否非常重要的環(huán)節(jié),而網(wǎng)絡(luò)在AIOT、智能家居、智能硬件上尤其重要。

比如在項(xiàng)目中需要使用http,Workflow在設(shè)計(jì)上可以通過(guò)Cmake配置支持windows 或者 Linux 或 MacOS 等多個(gè)平臺(tái)上的多個(gè)項(xiàng)目編譯,而且,可以在不同平臺(tái)上保持相同的接口。

如果你新增一個(gè)嵌入式設(shè)備,比如ESP32,在服務(wù)器和客戶端只需要維護(hù)一套代碼,就可以完成自己的應(yīng)用需求。

真正做到把云端的技術(shù)移植到嵌入式設(shè)備上運(yùn)行。

適用于嵌入式幾大特點(diǎn):

1、支持多平臺(tái)、多體系結(jié)構(gòu)

多平臺(tái)的代碼說(shuō)明在配置和耦合上考慮了很多設(shè)計(jì)上的細(xì)節(jié)。?前Workflow除了Linux、Windows、MacOS、Android以外,還可以愉快地在樹莓派、國(guó)產(chǎn)?芯處理器等不同體系結(jié)構(gòu)上運(yùn)?。

2、編譯快

Workflow除OpenSSL以外不依賴其他庫(kù),?且在接口層是沒(méi)有模版的,因此編譯速度????,不到一分鐘即可編出一個(gè)可?的lib。

3、體積小、支持編譯剪裁

Workflow的Kafka協(xié)議默認(rèn)是不編譯的,除此之外,還可以裁剪掉其他不常?的模塊。

并且可以通過(guò)strip命令去掉符號(hào)鏈接,即可讓庫(kù)?件縮?到400k左右。

4、運(yùn)行時(shí)內(nèi)存小、調(diào)度快

作為一個(gè)異步調(diào)度的庫(kù),Workflow調(diào)度性能一直是?常好的。另外運(yùn)?時(shí)內(nèi)存占?也?常的小。

5、自定義協(xié)議非常方便

社區(qū)活躍以及項(xiàng)目負(fù)責(zé)人積極回復(fù)問(wèn)題也是一個(gè)亮點(diǎn),如果在框架搭建和移植上出現(xiàn)問(wèn)題,在社區(qū)上提問(wèn)都會(huì)得到快速響應(yīng)。

a506848c-6b11-11ed-8abf-dac502259ad0.png

移植到嵌入式設(shè)備的開源支持

據(jù)悉?前已經(jīng)有許多?戶?到了嵌?式上了。github官方也做出了耐心的解釋。

a5246c5e-6b11-11ed-8abf-dac502259ad0.png

框架能做什么

1、輕松的搭建server

不用多說(shuō),服務(wù)端框架如果不能搭建server那還玩啥了,但使用這個(gè)框架非常方便,以http server為例,只需要簡(jiǎn)單幾行代碼即可:

#include #include "workflow/WFHttpServer.h" int main() { WFHttpServer server([](WFHttpTask *task) { task->get_resp()->append_output_body("Hello World!"); }); if (server.start(8888) == 0) { // start server on port 8888 getchar(); // press "Enter" to end. server.stop(); } return 0; }

2、輕松高效的發(fā)起客戶端請(qǐng)求

項(xiàng)目號(hào)稱可作為萬(wàn)能異步客戶端,目前支持http,redis,mysql、websocket和kafka協(xié)議,下面是官方給出的一個(gè)mysql的客戶端示例:

int main(int argc, char *argv[]) { ... WFMySQLTask *task = WFTaskFactory::create_mysql_task(url, RETRY_MAX, mysql_callback); task->get_req()->set_query("SHOW TABLES;"); ... task->start(); ... }

以往的C++ server需要訪問(wèn)mysql時(shí),可能使用的是傳統(tǒng)的客戶端。在一個(gè)線程下以同步阻塞的方式等待數(shù)據(jù)到來(lái)。如果有多個(gè)網(wǎng)絡(luò)請(qǐng)求希望并發(fā),那么用戶需要管理好多個(gè)mysql cli對(duì)象。

workflow完美的解決了這一系列問(wèn)題,把所有這種用戶請(qǐng)求交給內(nèi)部的poller線程統(tǒng)一管理,實(shí)現(xiàn)了高效的非阻塞IO行為,提升了server作為客戶端請(qǐng)求數(shù)據(jù)時(shí)的性能表現(xiàn)。再也不用擔(dān)心這種客戶端行為影響server整體的性能。

支持自定義協(xié)議client/server:用戶可構(gòu)建自己的RPC系統(tǒng),搜狗有個(gè)開源項(xiàng)目srpc就是以這個(gè)框架為基礎(chǔ)實(shí)現(xiàn)的。

3、可建構(gòu)異步任務(wù)流

支持串聯(lián),支持并聯(lián),支持串并聯(lián)的組合體,也支持復(fù)雜的DAG結(jié)構(gòu)。

4、異步IO

在Linux系統(tǒng)下可作為文件異步IO工具使用,性能超過(guò)任何標(biāo)準(zhǔn)調(diào)用。

5、通信與計(jì)算一體化

多數(shù)框架都著重于網(wǎng)絡(luò)IO的效率問(wèn)題,而計(jì)算與任務(wù)調(diào)度等需要用戶自己實(shí)現(xiàn),workflow會(huì)自動(dòng)對(duì)任務(wù)進(jìn)行調(diào)度,打通網(wǎng)絡(luò)和磁盤等資源,特別適合需要網(wǎng)絡(luò)通信的重計(jì)算模塊。

任務(wù)流框架設(shè)計(jì)

在作者的設(shè)計(jì)理念中,一切業(yè)務(wù)邏輯皆是任務(wù),多個(gè)任務(wù)會(huì)組成任務(wù)流,任務(wù)流可組成圖,這個(gè)圖可能是串聯(lián)圖、并聯(lián)圖,也可能是串并聯(lián)圖,類似于這種:

a5513f72-6b11-11ed-8abf-dac502259ad0.png

或者是這種復(fù)雜的DAG圖:

a589510a-6b11-11ed-8abf-dac502259ad0.png

當(dāng)然圖的層次結(jié)構(gòu)可由用戶自定義,很牛的一點(diǎn)是支持動(dòng)態(tài)創(chuàng)建任務(wù)流。

分享結(jié)束,希望小伙伴喜歡,嵌入式真需要不斷學(xué)習(xí)去充實(shí)自己的大腦,相信你們都能夠成為最厲害的程序員。

最近很多小伙伴領(lǐng)取了程序員知識(shí)圖譜,反饋很好。我們知道每一個(gè)技術(shù)領(lǐng)域都有它完整地知識(shí)體系,而良好的知識(shí)體系有助于技術(shù)人員的發(fā)展和成長(zhǎng),減少學(xué)習(xí)過(guò)程中所走的彎路。所以還沒(méi)有領(lǐng)取的小伙伴趕緊領(lǐng)取起來(lái)吧?。ǖ撞坑蓄I(lǐng)取入口哦)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5126

    文章

    19446

    瀏覽量

    313325
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2116

    瀏覽量

    74603
  • workflows
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    5992

原文標(biāo)題:分享一個(gè)適合嵌入式的C++開源項(xiàng)目-Workflow

文章出處:【微信號(hào):嵌入式學(xué)習(xí)站,微信公眾號(hào):嵌入式學(xué)習(xí)站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    蘋果開源Swift Build,強(qiáng)化開發(fā)者生態(tài)建設(shè)

    近日,蘋果公司宣布了一項(xiàng)重大決策:將用于構(gòu)建Xcode開發(fā)環(huán)境的工具引擎Swift Build進(jìn)行開源。這一舉措不僅展現(xiàn)了蘋果對(duì)于開發(fā)者社區(qū)的深度關(guān)注,更彰顯了其致力于拓展和優(yōu)化開發(fā)者
    的頭像 發(fā)表于 02-05 15:03 ?406次閱讀

    開發(fā)者開源鴻蒙故事

    近日,在以“一切為了開發(fā)者”為主題的“2024開放原子開發(fā)者大會(huì)暨首屆開源技術(shù)學(xué)術(shù)大會(huì)”上,開源鴻蒙5.0 Release版本正式發(fā)布,備受各方關(guān)注。該版本在系統(tǒng)完備度、分布式創(chuàng)新、
    的頭像 發(fā)表于 01-06 10:28 ?527次閱讀

    AKI跨語(yǔ)言調(diào)用庫(kù)神助攻C/C++代碼遷移至HarmonyOS NEXT

    ,真正做到所“鍵”即所得。 這一創(chuàng)新框架的出現(xiàn),正是為了解決開發(fā)者在遷移C/C++項(xiàng)目到HarmonyOS NEXT時(shí)面臨的核心痛點(diǎn)。傳統(tǒng)的NAPI接口調(diào)用復(fù)雜,學(xué)習(xí)成本高,
    發(fā)表于 01-02 17:08

    《HarmonyOS第一課》煥新升級(jí),賦能開發(fā)者快速掌握鴻蒙應(yīng)用開發(fā)

    的《HarmonyOS第一課》全新上線,集“學(xué)、練、考”于一體,憑借多維融合的教學(xué)模式與系統(tǒng)課程設(shè)置,助力開發(fā)者快速掌握HarmonyOS應(yīng)用開發(fā)技能。 四大課程模塊:搭建HarmonyOS應(yīng)用學(xué)習(xí)進(jìn)階
    發(fā)表于 01-02 14:24

    開源鴻蒙榮獲開放原子“2024年度操作系統(tǒng)領(lǐng)域國(guó)內(nèi)活躍開源項(xiàng)目

    近日,2024開放原子開發(fā)者大會(huì)暨首屆開源技術(shù)學(xué)術(shù)大會(huì)在武漢圓滿召開。在大會(huì)開幕式“2024年度國(guó)內(nèi)活躍開源項(xiàng)目&開發(fā)者致謝儀式”上,開放原
    的頭像 發(fā)表于 12-28 15:39 ?685次閱讀

    2024開放原子開發(fā)者大會(huì)暨首屆開源技術(shù)學(xué)術(shù)大會(huì)成功舉辦

    近日,以“一切為了開發(fā)者”為主題的2024開放原子開發(fā)者大會(huì)暨首屆開源技術(shù)學(xué)術(shù)大會(huì)在武漢成功舉辦。大會(huì)為眾多開源項(xiàng)目
    的頭像 發(fā)表于 12-23 14:23 ?401次閱讀

    2024年度國(guó)內(nèi)活躍開源項(xiàng)目開發(fā)者在武漢揭曉

    近日,2024年度國(guó)內(nèi)活躍開源項(xiàng)目&開發(fā)者致謝儀式,亮相2024開放原子開發(fā)者大會(huì)暨首屆開源技術(shù)學(xué)術(shù)大會(huì)開幕式。
    的頭像 發(fā)表于 12-23 11:25 ?472次閱讀

    2024開放原子開發(fā)者大會(huì)啟幕,深開鴻助力開源產(chǎn)業(yè)創(chuàng)新發(fā)展

    12月20日-21日,以“一切為了開發(fā)者”為主題的“2024開放原子開發(fā)者大會(huì)暨首屆開源技術(shù)學(xué)術(shù)大會(huì)”在武漢隆重召開。本屆大會(huì)由開放原子開源基金會(huì)、中國(guó)通信學(xué)會(huì)主辦,旨在貫徹落實(shí)國(guó)家軟
    的頭像 發(fā)表于 12-20 18:34 ?382次閱讀
    2024開放原子<b class='flag-5'>開發(fā)者</b>大會(huì)啟幕,深開鴻助力<b class='flag-5'>開源</b>產(chǎn)業(yè)創(chuàng)新發(fā)展

    高校開源開發(fā)者培養(yǎng)分論壇亮點(diǎn)前瞻

    數(shù)字化時(shí)代,開源成為了全球軟件與技術(shù)創(chuàng)新的重要驅(qū)動(dòng)力,從Linux操作系統(tǒng)到Android移動(dòng)平臺(tái),從人工智能框架到云計(jì)算基礎(chǔ)設(shè)施,一個(gè)個(gè)開源項(xiàng)目遍地開花。然而,在開源蓬勃發(fā)展的背后,
    的頭像 發(fā)表于 12-17 14:06 ?410次閱讀

    簡(jiǎn)儀科技第九屆開源測(cè)控開發(fā)者大會(huì)精彩回顧

    由簡(jiǎn)儀科技主辦的第九屆開源測(cè)控開發(fā)者大會(huì),近日在上海圓滿落幕。
    的頭像 發(fā)表于 11-19 09:16 ?655次閱讀

    開源共生 商業(yè)共贏 | RT-Thread 2024開發(fā)者大會(huì)報(bào)名啟動(dòng)!

    開發(fā)者大會(huì)將以“開源共生,商業(yè)共贏”為主題,將于2024年12月21日全天在上海臨港中心舉行。開源RT-Thread如何實(shí)現(xiàn)商業(yè)化?這一直是外界對(duì)RT-Thread最
    的頭像 發(fā)表于 10-29 08:06 ?805次閱讀
    <b class='flag-5'>開源</b>共生 商業(yè)共贏 | RT-Thread 2024<b class='flag-5'>開發(fā)者</b>大會(huì)報(bào)名啟動(dòng)!

    簡(jiǎn)儀科技與您相約第九屆開源測(cè)控開發(fā)者大會(huì)

    第九屆開源測(cè)控開發(fā)者大會(huì),簡(jiǎn)儀科技將繼續(xù)秉承開放、創(chuàng)新的精神,深入探討模塊測(cè)控領(lǐng)域軟件的重要性,并展示基于開源銳視測(cè)控平臺(tái)的實(shí)踐應(yīng)用,帶來(lái)豐富的議題分享。
    的頭像 發(fā)表于 10-21 11:35 ?685次閱讀

    KaihongOS 4.1.2開發(fā)者預(yù)覽版正式上線,誠(chéng)邀開發(fā)者免費(fèi)試用!

    深開鴻在2024開放原子開源生態(tài)大會(huì)上正式宣布KaihongOS4.1.2開發(fā)者預(yù)覽版全面上線,并向全球開發(fā)者開放免費(fèi)下載。作為KaihongOS不斷創(chuàng)新與發(fā)展的重要里程碑,此次預(yù)覽版為開發(fā)者
    的頭像 發(fā)表于 09-28 08:07 ?528次閱讀
    KaihongOS 4.1.2<b class='flag-5'>開發(fā)者</b>預(yù)覽版正式上線,誠(chéng)邀<b class='flag-5'>開發(fā)者</b>免費(fèi)試用!

    KaihongOS 4.1.2開發(fā)者預(yù)覽版正式上線,誠(chéng)邀開發(fā)者免費(fèi)試用!

    今日,深開鴻在2024開放原子開源生態(tài)大會(huì)上正式宣布KaihongOS 4.1.2開發(fā)者預(yù)覽版全面上線,并向全球開發(fā)者開放免費(fèi)下載。作為KaihongOS不斷創(chuàng)新與發(fā)展的重要里程碑,此次預(yù)覽版為
    的頭像 發(fā)表于 09-26 15:59 ?637次閱讀

    軟通動(dòng)力助陣OpenHarmony開發(fā)者大會(huì)2024成功舉辦

    近日,由開放原子開源基金會(huì)OpenHarmony項(xiàng)目群工作委員會(huì)主辦的OpenHarmony開發(fā)者大會(huì)2024在深圳成功舉辦。
    的頭像 發(fā)表于 05-28 09:35 ?931次閱讀
    軟通動(dòng)力助陣OpenHarmony<b class='flag-5'>開發(fā)者</b>大會(huì)2024成功舉辦