近期,Apache Flink開(kāi)源項(xiàng)目背后的公司Ververica發(fā)布了一個(gè)新的框架——Stateful Functions,旨在將Flink擴(kuò)展到分布式的有狀態(tài)應(yīng)用程序中。
Stateful Functions是一組工具,旨在讓開(kāi)發(fā)人員能夠創(chuàng)建以現(xiàn)代無(wú)服務(wù)器方式運(yùn)行的有狀態(tài)應(yīng)用程序。該軟件為開(kāi)發(fā)人員提供了一組有狀態(tài)函數(shù)(以此得名),而該軟件運(yùn)行在Flink的分布式數(shù)據(jù)處理引擎之上。
Apache Flink已經(jīng)成為一個(gè)領(lǐng)先的流處理框架,它為開(kāi)發(fā)人員提供了豐富的功能,以構(gòu)建分布式、事件驅(qū)動(dòng)的應(yīng)用程序。希望對(duì)事件做出響應(yīng)的組織,例如一個(gè)人進(jìn)行購(gòu)買或一個(gè)傳感器在登錄嘗試檢測(cè)峰值時(shí),最好選擇Flink或類似的框架來(lái)構(gòu)建應(yīng)用程序。
然而,這些Flink應(yīng)用程序在大多數(shù)情況下以無(wú)狀態(tài)的方式運(yùn)行。雖然Flink確實(shí)提供了一些允許開(kāi)發(fā)人員使用狀態(tài)的功能,但是開(kāi)發(fā)人員使用它們可以實(shí)現(xiàn)的功能是有限制的。
Ververica公司表示,旨在克服這些限制的Stateful Functions“使用戶能夠使用少量資源定義松耦合的、獨(dú)立的功能, 在一個(gè)共享資源池中可以持續(xù)交互而且是可靠的。”Ververica聯(lián)合創(chuàng)始人兼首席技術(shù)官Stephan Ewen和該公司產(chǎn)品營(yíng)銷經(jīng)理Marta Paes在博客上寫道。
該公司表示,Stateful Functions背后的API是基于“封裝業(yè)務(wù)邏輯的小函數(shù)性片段,有點(diǎn)類似于actors”。每個(gè)實(shí)體通常有一個(gè)函數(shù)(例如一個(gè)用戶或一個(gè)庫(kù)存項(xiàng))。“每個(gè)函數(shù)在局部變量中都有持久的用戶定義狀態(tài),并且可以任意地向其他函數(shù)(包括它自己。)發(fā)送嚴(yán)格的一次保證消息。”Ewen和Paes寫道。
當(dāng)開(kāi)發(fā)人員需要維護(hù)到實(shí)體的有狀態(tài)連接,但又不想放棄事件驅(qū)動(dòng)的體系結(jié)構(gòu)的好處或脫離函數(shù)即服務(wù)(function as a service, FaaS)的開(kāi)發(fā)風(fēng)格時(shí),這個(gè)新庫(kù)是一個(gè)不錯(cuò)的選擇。新的Stateful Functions方法并非為了替代無(wú)狀態(tài)計(jì)算,而是在需要這兩種方法時(shí)提供了新的前進(jìn)路徑。
Ververica表示,Stateful Functions都是在狀態(tài)之上計(jì)算,而不是從狀態(tài)之中計(jì)算。“這個(gè)模型的主要優(yōu)點(diǎn)是狀態(tài)和計(jì)算共存于網(wǎng)絡(luò)的同一側(cè),這意味著您不需要往返每個(gè)記錄去從外部存儲(chǔ)系統(tǒng)獲取狀態(tài)(例如Cassandra,DynamoDB),也不是為了一致性的具體狀態(tài)管理模式 (例如事件溯源、CQRS)。” Ewen和Paes寫道。
Stateful Functions擴(kuò)展了Flink,能夠?qū)⒂袪顟B(tài)計(jì)算概念與Flink分布式的、無(wú)服務(wù)器的范例合并在一起
該公司表示,另外一個(gè)優(yōu)勢(shì)在于無(wú)需管理動(dòng)態(tài)消息和維護(hù)復(fù)雜的復(fù)制或重分區(qū)策略。其中,持久性是通過(guò)為快照保持與對(duì)象存儲(chǔ)的連接來(lái)實(shí)現(xiàn)的。新的方法還為實(shí)時(shí)流處理和離線批處理提供了高吞吐量,歐洲服務(wù)器,“允許您對(duì)事件驅(qū)動(dòng)的應(yīng)用程序和通用數(shù)據(jù)處理之間的界限進(jìn)行模糊。”該公司表示。
Ververica在于德國(guó)柏林舉行的Flink Forward大會(huì)上宣布了這一消息。今年早些時(shí)候,這家公司被阿里巴巴收購(gòu),目前正在以Apache 2.0的許可協(xié)議發(fā)布這款軟件。
“在Kubernetes和FaaS等技術(shù)的推動(dòng)下,VPS,無(wú)狀態(tài)計(jì)算的編配已經(jīng)取得了長(zhǎng)足的進(jìn)步,但大多數(shù)產(chǎn)品仍然無(wú)法滿足有狀態(tài)分布式應(yīng)用的需求。始終如一地處理狀態(tài)并在服務(wù)之間可靠地交互,這對(duì)整體開(kāi)發(fā)的易用性構(gòu)成了重大挑戰(zhàn)。” Ewen 在一篇新聞稿中指出,“Stateful Functions是解決這些缺點(diǎn)的重要一步,提供了無(wú)縫的狀態(tài)管理和一致性。”
【凡本網(wǎng)注明來(lái)源非中國(guó)IDC圈的作品,均轉(zhuǎn)載自其它媒體,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。】