被視為串流處理軟體平臺Apache Kafka的競爭對手Apache Pulsar,釋出了2.0候選版,新增了名為Pulsar函式(Functions)的新功能,讓使用者可以在處理串流資料的同時,不需要使用Apache Storm、Apache Heron或是Apache Flink等其他應用程式,就能進行邏輯運算處理。

還在Apache孵化器(Incubator)階段的Apache Pulsar,前身是Yahoo的內部專案,用來支援分散式系統的網路應用程式,當時Yahoo平臺的工程師Joe Francis與Matteo Merli,在2016年Yahoo開源Pulsar時提到,他們的應用程式需要提供即時服務,因此只能容忍平均約5ms,在第99個百分位數最多不能超過15ms的發布延遲,同時這個Pub/Sub訊息系統必須能支撐網際網路規模,具備排序、強健耐久性以及交付保證要求。

Matteo Merli提到,Yahoo需要一個託管服務能夠提供一百萬個主題訂閱,但由於在市面上找不到這樣的解決方案,能夠同時提供需要的規模、性能以及功能,於是他們只好自己開始動手打造Pulsar,成為支援Yahoo的Flickr、Mail、Finance、Sports、Gemini Ads與Sherpa後臺的關鍵服務。而後Matteo Merli離開了Yahoo,並成立了Streamlio來商業化Apache Pulsar。

現在Streamlio宣布對Apache Pulsar進行重大更新,釋出了2.0版本,主要增加了Pulsar函式這個新功能,為的是要提供使用者在不需要使用Apache Storm、Apache Heron或是Apache Flink等資料處理生態系的其他應用程式,就能執行複雜的邏輯處理,也就是說Apache Pulsar訊息傳遞系統中綁進了運算基礎架構。

官方提到,這個運作模式很簡單,Pulsar函式可以接收來自單一或多個輸入主題(Topic),在每次接受訊息後就能執行一些操作,像是對輸入進行邏輯處理,並寫入輸出到Pulsar的輸出主題(Output Topic)或是Apache BookKeeper服務,另外也能寫入日誌到日誌主題(Log Topic)中做為除錯用,或是計數功能。官方舉例,Pulsar函式可被用來計算單詞的出現頻率,只要將句子主題做為輸入,在函式中編寫文字處理邏輯,就能分割字詞計算個別出現的次數。

Pulsar函式在處理保證上,提供3種不同的訊息語意,可以使用在不同的函式上,至多一次交付(At-most-once)表示每條訊息可能會送到函式中處理也可能不會,至少一次(At-least-once)則能確保每個訊息最少被處理一次,而至少一次有效處理(Effectively-once)則保證每條訊息被送至函數都會關聯一個輸出。目前Pulsar Functions的SDK支援Java與Python兩種語言,並使用Apache BookKeeper做為狀態儲存介面。


Advertisement

更多 iThome相關內容