欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何進(jìn)行PulsarFunctions的深入分析

今天就跟大家聊聊有關(guān)如何進(jìn)行Pulsar Functions 的深入分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

專注于為中小企業(yè)提供網(wǎng)站建設(shè)、做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)芮城免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

Pulsar Functions 簡單介紹

Pulsar Functions 是一個(gè)輕量級的計(jì)算框架,其主要目的是為了提供一個(gè)部署簡單、運(yùn)維簡單的平臺(tái),主要突出“簡單”使用的特點(diǎn)。

大概運(yùn)行過程就是在 input topic 中接收消息,進(jìn)入 functions 中進(jìn)行運(yùn)算和消息處理,最后輸出到 output topic 中的過程。

如何進(jìn)行Pulsar Functions 的深入分析

Pulsar Functions 可以覆蓋 90% 以上情況的流處理場景。比如:消息過濾、消息路由、消息增強(qiáng)等。更多使用場景可以參考之前發(fā)布的技術(shù)博客:基于 Pulsar Functions 的事件處理設(shè)計(jì)模式

Pulsar Functions 主要分為三大模塊:Instance、Runtime、Function-worker。

在 Runtime 層面主要支持三種形式:thread、process 和外部支持的 Kubernetes。

更多關(guān)于 Pulsar Functions 介紹和基礎(chǔ)層源碼講解,可以參考回放視頻:01:00-13:20 時(shí)間段。



深入了解 Functions


此分享的解析角度,從 functions 內(nèi)部幾個(gè)重要節(jié)點(diǎn)出發(fā)。主要是:如何提交 Pulsar Functions、Functions Worker 如何調(diào)度以及如何運(yùn)行 Pulsar Functions。

|| Submission Workflow

在執(zhí)行/創(chuàng)建一個(gè) function 時(shí),需要通過 `FunctionConfig` 的形式暴露給用戶,用戶通過指定 `FunctionConfig` 來進(jìn)行 functions 內(nèi)部操作。

Functions 可以提交到任意 worker,通過相應(yīng)的 Json 文件進(jìn)行相應(yīng) tenant/namespace/name 等輸入/輸出配置的提供。

在配置構(gòu)建完成后,會(huì)有一個(gè) AuthN/AuthZ checks 過程,去檢測在配置 function 過程中是否添加了與「加密」相關(guān)的設(shè)置。之后便會(huì)對 `FunctionConfig` 文件內(nèi)格式以及其他方面進(jìn)行再次核實(shí)。

最終這些 jar 包會(huì)存儲(chǔ)在 BookKeeper 端,方便后續(xù)再次調(diào)用。

此時(shí)完成以上操作后,submission workflow 會(huì)把所有的 functions 提交到 MetaData Topic,并用 map from <FQFN, FunctionMetaData> 格式進(jìn)行記錄。


FQFN 就是 Fully Qualified Function Name,格式就是 tenant、namespace、functions name 三個(gè)字段拼合而成。

如何進(jìn)行Pulsar Functions 的深入分析

FQFN 作為存儲(chǔ)元數(shù)據(jù)的 key,會(huì)把用戶提供的 `FunctionConfig` 字段填充到 Function MetaData 中。圖中的 MetaData Topic Tailer,主要目的是進(jìn)行實(shí)時(shí)監(jiān)測 MetaData Topic,根據(jù)實(shí)時(shí)更新變化寫入等動(dòng)態(tài),進(jìn)行后續(xù)操作。

在 Functions 內(nèi)部沒有真正開始執(zhí)行「創(chuàng)建/更新/刪除」等操作之前,需要進(jìn)行狀態(tài)更新。大體過程為:

如何進(jìn)行Pulsar Functions 的深入分析

  • 復(fù)制當(dāng)前狀態(tài)

  • 進(jìn)行狀態(tài)合并更新

  • 增加當(dāng)前版本數(shù)

  • 將數(shù)據(jù)寫入 MetaData Topic

  • Tailer 進(jìn)行數(shù)據(jù)讀取和驗(yàn)證

  • 如果沒有沖突,則整個(gè)更新


上面的整個(gè)流程是在單臺(tái) function worker 的情況下,但是在多臺(tái) function worker 中就有可能會(huì)出現(xiàn)沖突

在多個(gè) function worker 運(yùn)行的場景下,當(dāng)對某一個(gè) function 進(jìn)行并發(fā)更新時(shí),會(huì)出現(xiàn)沖突的情況。  當(dāng)出現(xiàn)沖突時(shí),其解決方式是使用 First Writer Win 的策略,即當(dāng)?shù)谝粋€(gè)請求被成功接收之后,其它請求將會(huì)被拒絕。  

經(jīng)過以上過程的處理,我們可以看出在 submission workflow 過程中,functions 有優(yōu)點(diǎn)也有缺點(diǎn)。比如可以提交到任意 worker、有固定的狀態(tài)機(jī)。當(dāng)然無限的數(shù)據(jù)增長卻沒有配置相關(guān)壓縮數(shù)據(jù)的一些操作,著實(shí)有一丟丟可惜。

更多關(guān)于提交 Functions 的操作介紹,可以參考回放視頻 13:30-37:00 時(shí)間段。

|| Scheduling workflow

當(dāng) function worker 有了上述元數(shù)據(jù)信息后,那么接下來將如何去調(diào)度整個(gè)流程呢?

Function worker 的整個(gè)調(diào)度過程都在    `IScheduler Interface`   接口中執(zhí)行。

如何進(jìn)行Pulsar Functions 的深入分析


同時(shí) Function worker 會(huì)在以下狀態(tài)時(shí)開啟「調(diào)度模式」。

  • CRUD 操作:創(chuàng)建/更新/刪除

  • Worker 變動(dòng):如創(chuàng)建新 worker、leadership 發(fā)生變化等


雖然 function 可以提交到任意 worker 中,但是調(diào)度過程卻只能在具有「leader」屬性的 worker 中進(jìn)行。

如何進(jìn)行Pulsar Functions 的深入分析


那么如何確認(rèn)「誰是老板」呢?

在以前直播中我們也有專門講過 Pulsar 消息的訂閱模式,其中有一個(gè)是 Failover 模式。這里 Pulsar Functions 也借用了此模式。

當(dāng)所有 worker 進(jìn)入時(shí),會(huì)去以 failover 模式訂閱「Coordination Topic」。按照 failover 的規(guī)則,同一時(shí)間只會(huì)有一個(gè)活躍的「小朋友」成為「老板」。所以以此類推,上圖的 worker2 也就成為了那一時(shí)間段的 leader。

有了 Leader Worker 后,就需要它進(jìn)行數(shù)據(jù)的寫入,將其寫入到 Assignment Topic 中,用來記錄調(diào)度信息。

如何進(jìn)行Pulsar Functions 的深入分析

更多關(guān)于調(diào)度流程的講解,可以參考回放視頻 37:00-45:00 時(shí)間段。

|| Execution Workflow

那么提交并調(diào)度完成后,整個(gè) Functions 是如何運(yùn)行起來的呢?

如何進(jìn)行Pulsar Functions 的深入分析


在上圖中,Assignment Tailer 監(jiān)聽到 Topic 中的變化,此時(shí)就會(huì)將此動(dòng)作變化傳遞給 Function RunTime Manager。同時(shí)借由 Spawner 進(jìn)行一些列后續(xù)操作。

Spawner 是使用 Functions 時(shí)的一個(gè)抽象執(zhí)行環(huán)境,也具有 Functions 生命周期管理的功能,同時(shí)通過 GRPC 通過進(jìn)行與 Functions 的數(shù)據(jù)交互。

Future Work
未來關(guān)于 Pulsar Functions 的后續(xù)更新和產(chǎn)品方向,一個(gè)是會(huì)在現(xiàn)有功能上進(jìn)行進(jìn)一步的完善和改進(jìn),比如前邊提到的 Function MetaData Topic 數(shù)據(jù)無限增長的情況,那么后續(xù)是否給其研發(fā)一個(gè)可壓縮的功能;還有就是動(dòng)態(tài) RunTime selection 的擴(kuò)充模式等。

另一個(gè)就是繼續(xù)擴(kuò)展出 Pulsar Functions 的其他新功能,如正在開發(fā)中的 Function Mesh??梢云诖幌屡?!

Q&A 
Q:Pulsar functions 可以直接從第三方 key-value database 中讀取數(shù)據(jù),處理完后再將結(jié)果寫入key-value database 嗎?還是只能通過 Pulsar IO 先寫入 Pulsar topic,Pulsar Functions 再從該 topic 讀取數(shù)據(jù)做處理?
A:Pulsar Functions 是不支持的,可以借助 Pulsar IO 的功能去實(shí)現(xiàn)。就是按照問題后部分描述的方式進(jìn)行。
看完上述內(nèi)容,你們對如何進(jìn)行Pulsar Functions 的深入分析有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

當(dāng)前標(biāo)題:如何進(jìn)行PulsarFunctions的深入分析
網(wǎng)頁URL:http://aaarwkj.com/article34/gjjcse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)軟件開發(fā)、微信小程序、品牌網(wǎng)站設(shè)計(jì)、ChatGPT、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
亚洲成年人黄片在线播放| 国产剧情av在线资源| 欧美精品欧美精品一区二区| 亚洲欧美经典精品专区| 超碰97免费在线观看| 日韩国产人妻一区二区 | 欧美日韩精品综合国产| 99热这里只有精品在线| 欧美日韩精品视频网站| 一二三四在线观看日本资讯 | 国产91福利视频在线| 亚洲av网站女性向在线观看| 国产精品国产三级专区| 国产经典三级在线观看| 韩国av毛片在线播放| 久久亚洲中文字幕精品一区四区| 中文字幕亚洲入口久久| 精品福利视频蜜臀91| 蜜桃精品人妻一区二区三区| 国产综合一区在线观看97| 青青青在线视频观看华人| 美女丝袜诱惑国产91| 91日韩人妻一区二区三区| 白浆视频在线免费观看| 日本精品a秘在线观看| 国产精品一区二区三区专区| 中文字幕一区侵犯人妻| 国内精品久久久久久2021| 日本人免费一区二区电影| av色狠狠一区二区三区| 亚洲精品伦理视频在线| 蜜臀av中文字幕在线| av毛片天堂在线观看| 国产一区二区精品小视频| 国产亚洲精品麻豆一区二区| 尤物在线免费观看视频| 午夜视频在线播放一区二区三区| 午夜男女激情在线观看| 日韩欧美亚洲国产另类| 人妖一区二区三区在线观看| 国产精品视频不卡免费看|