Mengacu pada contoh kode Flink, saya mengamati bahwa saat menghubungkan dua aliran menggunakan operator connect, baik coProcessFunction dan keyedCoProcessFunction diperpanjang hampir secara bergantian dan identik saat beroperasi pada aliran yang dikunci (mengganti processElement1, processElement2, dan onTimer), Jadi ketika beroperasi pada aliran yang dikunci, apa perbedaan antara memperluas CoProcessFunction dibandingkan dengan keyedCoProcessFunction untuk mengimplementasikan logika bisnis aliran terhubung yang dikunci?

Terima kasih.

1
Mazen Ezzeddine 2 September 2020, 17:57

1 menjawab

Jawaban Terbaik

KeyedCoProcessFunction dan KeyedProcessFunction ditambahkan baru-baru ini. Perbedaannya dibandingkan dengan ragam yang tidak dikunci adalah bahwa kunci saat ini tersedia di Context yang diteruskan ke berbagai metode processElement dan onTimer.

Jika Anda mencoba menggunakan status atau pengatur waktu yang dikunci dalam ProcessFunction atau CoProcessFunction, itu akan berfungsi jika Anda benar-benar berada dalam konteks yang dikunci, dan akan mengeluarkan pengecualian jika tidak.

1
David Anderson 2 September 2020, 19:14