第一代:嵌入式本地狀態(Flink 1.x)

最初的架構將狀態以 JVM Heap 對象的形式存儲在 TaskManager 的內存中。對于小規模數據集,這種方式效果良好,但隨著狀態大小的增長超出內存,將所有狀態保存在內存中變得成本高昂且不穩定。

為了解決狀態規模增長的問題,引入了一種利用本地磁盤的嵌入式狀態后端。在這種方法中,狀態內置于計算節點中(Task Manager),使用本地盤實現快速訪問,同時通過定期的分布式文件系統(DFS)快照來保證一致性。

第二代:云原生存算分離狀態(Flink 2.0)

核心架構創新
Apache Flink 2.0 引入 ForSt 存算分離狀態后端代表 Flink 狀態管理方式的根本轉變:

無限且獨立的狀態容量:通過將分布式文件系統作為 active state 的主存儲,系統實現了不受本地磁盤限制的無限狀態容量。
高效輕量的 Checkpoint:以 DFS 為基礎,ForSt 實現 active state 的工作目錄與 checkpoint 目錄之間共享物理文件,避免了在 Checkpointing 期間上傳或拷貝大量文件,從而顯著降低開銷。
即時容錯恢復和擴縮容:通過直接 DFS 訪問,消除了狀態下載延遲,實現即時作業恢復
平滑資源使用:遠程 Compaction 服務將文件整理操作從核心數據處理鏈路中剝離,使得資源使用平滑穩定。
這種架構實現了真正意義上的獨立可擴展性:處理能力可獨立于狀態大小進行調整,存儲也可在不改變計算資源的情況下擴展,帶來了顯著的資源優化與高效利用。

Flink 2.0 架構深度解析

Flink 2.0 架構升級涵蓋兩個關鍵部分:

Runtime 層:異步執行模型
Runtime 層引入了異步執行模型,將狀態訪問與數據處理解耦,防止狀態訪問阻塞主線程。異步執行模型的引入主要為了解決因 active state 直接存儲在遠程 DFS 所帶來的延遲變長執行性能下降的問題。Flink 2.0 引入的異步執行模型可以完全兼容 Flink 1.x 的語義和核心保障,并為現有應用提供平滑遷移路徑。

上圖中我們可以看到,遠程 DFS(分布式文件系統)訪問的速度大約比本地盤讀取慢100倍。異步執行模型通過重新定義輸入數據生命周期來解決這一問題,它將處理過程分為三個不同的階段:

無狀態數據處理:這是 CPU 密集型工作,在任務主線程中執行。
狀態訪問操作:這是 I/O 密集型工作,由獨立的線程池處理。
狀態訪問后回調數據處理:這部分將 CPU 密集型工作返回給任務主線程。
Flink 2.0 引入異步執行控制器(AEC)負責協調上述復雜的流程,同時仍然保證流處理的可靠性:

保持按 Key 輸入的 FIFO 順序:為流處理的正確性奠定基礎。
保持 exactly-once 處理語義:保持數據的一致性。
保持 event time 語義:確保時間處理的準確性。

https://github.com/songlennrolfson-cmd/jop/issues/226
https://github.com/monisterrisimonis-design/zai/issues/233
https://github.com/glennleannonnnon-cmd/xy3/issues/223
https://github.com/nowevelynnienow-gif/0x0/issues/242
https://github.com/arveybrittanyharvey-arch/1re/issues/241
https://github.com/samuelhansenansen-pixel/0oq/issues/223
https://github.com/ervhellerv-pixel/j8c/issues/224
https://github.com/dvmkohlerdvm-arch/8gu/issues/226
https://github.com/camillekerlukeluke-blip/rup/issues/234
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/219
https://github.com/mansaratillman-alt/vbl/issues/237
https://github.com/benhodkiewiczwicz-ops/h80/issues/229
https://github.com/bertsteresaroberts-svg/9sv/issues/229
https://github.com/ertmichelleebert-max/cpz/issues/231
https://github.com/lynnlangworthorth-glitch/ahg/issues/240
https://github.com/olivewildermanerman-prog/eg9/issues/224
https://github.com/odelarrybode-tech/hsd/issues/232
https://github.com/angtommylang-boop/ywt/issues/220
https://github.com/rogeliohartmannmann-cpu/bnr/issues/236
https://github.com/monisterrisimonis-design/zai/issues/232
https://github.com/nowevelynnienow-gif/0x0/issues/241
https://github.com/arveybrittanyharvey-arch/1re/issues/240
https://github.com/glennleannonnnon-cmd/xy3/issues/222
https://github.com/hkecaseyleuschke-netizen/zyk/issues/234
https://github.com/samuelhansenansen-pixel/0oq/issues/222
https://github.com/songlennrolfson-cmd/jop/issues/225
https://github.com/ervhellerv-pixel/j8c/issues/223
https://github.com/dvmkohlerdvm-arch/8gu/issues/225
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/218
https://github.com/mansaratillman-alt/vbl/issues/236
https://github.com/bertsteresaroberts-svg/9sv/issues/228
https://github.com/ertmichelleebert-max/cpz/issues/230
https://github.com/olivewildermanerman-prog/eg9/issues/223
https://github.com/lynnlangworthorth-glitch/ahg/issues/239
https://github.com/nowevelynnienow-gif/0x0/issues/240
https://github.com/benhodkiewiczwicz-ops/h80/issues/228
https://github.com/arveybrittanyharvey-arch/1re/issues/239
https://github.com/camillekerlukeluke-blip/rup/issues/233
https://github.com/rogeliohartmannmann-cpu/bnr/issues/235
https://github.com/monisterrisimonis-design/zai/issues/231
https://github.com/angtommylang-boop/ywt/issues/219
https://github.com/odelarrybode-tech/hsd/issues/231
https://github.com/glennleannonnnon-cmd/xy3/issues/221
https://github.com/samuelhansenansen-pixel/0oq/issues/221
https://github.com/hkecaseyleuschke-netizen/zyk/issues/233
https://github.com/ervhellerv-pixel/j8c/issues/222
https://github.com/songlennrolfson-cmd/jop/issues/224
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/217
https://github.com/dvmkohlerdvm-arch/8gu/issues/224
https://github.com/bertsteresaroberts-svg/9sv/issues/227
https://github.com/nowevelynnienow-gif/0x0/issues/239
https://github.com/mansaratillman-alt/vbl/issues/235
https://github.com/lynnlangworthorth-glitch/ahg/issues/238
https://github.com/monisterrisimonis-design/zai/issues/230
https://github.com/camillekerlukeluke-blip/rup/issues/232
https://github.com/ertmichelleebert-max/cpz/issues/229
https://github.com/rogeliohartmannmann-cpu/bnr/issues/234
https://github.com/arveybrittanyharvey-arch/1re/issues/238
https://github.com/benhodkiewiczwicz-ops/h80/issues/227
https://github.com/olivewildermanerman-prog/eg9/issues/222
https://github.com/odelarrybode-tech/hsd/issues/230
https://github.com/hkecaseyleuschke-netizen/zyk/issues/232
https://github.com/angtommylang-boop/ywt/issues/218
https://github.com/samuelhansenansen-pixel/0oq/issues/220
https://github.com/glennleannonnnon-cmd/xy3/issues/220
https://github.com/ervhellerv-pixel/j8c/issues/221
https://github.com/songlennrolfson-cmd/jop/issues/223
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/216
https://github.com/dvmkohlerdvm-arch/8gu/issues/223
https://github.com/bertsteresaroberts-svg/9sv/issues/226
https://github.com/nowevelynnienow-gif/0x0/issues/238
https://github.com/mansaratillman-alt/vbl/issues/234
https://github.com/lynnlangworthorth-glitch/ahg/issues/237
https://github.com/arveybrittanyharvey-arch/1re/issues/237
https://github.com/monisterrisimonis-design/zai/issues/229
https://github.com/ertmichelleebert-max/cpz/issues/228
https://github.com/rogeliohartmannmann-cpu/bnr/issues/233
https://github.com/benhodkiewiczwicz-ops/h80/issues/226
https://github.com/camillekerlukeluke-blip/rup/issues/231
https://github.com/hkecaseyleuschke-netizen/zyk/issues/231
https://github.com/olivewildermanerman-prog/eg9/issues/221
https://github.com/glennleannonnnon-cmd/xy3/issues/219
https://github.com/odelarrybode-tech/hsd/issues/229
https://github.com/angtommylang-boop/ywt/issues/217
https://github.com/ervhellerv-pixel/j8c/issues/220
https://github.com/songlennrolfson-cmd/jop/issues/222
https://github.com/samuelhansenansen-pixel/0oq/issues/219
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/215
https://github.com/bertsteresaroberts-svg/9sv/issues/225
https://github.com/dvmkohlerdvm-arch/8gu/issues/222
https://github.com/nowevelynnienow-gif/0x0/issues/237
https://github.com/lynnlangworthorth-glitch/ahg/issues/236
https://github.com/arveybrittanyharvey-arch/1re/issues/236
https://github.com/ertmichelleebert-max/cpz/issues/227
https://github.com/rogeliohartmannmann-cpu/bnr/issues/232
https://github.com/camillekerlukeluke-blip/rup/issues/230
https://github.com/monisterrisimonis-design/zai/issues/228
https://github.com/hkecaseyleuschke-netizen/zyk/issues/230
https://github.com/mansaratillman-alt/vbl/issues/233
https://github.com/olivewildermanerman-prog/eg9/issues/220
https://github.com/odelarrybode-tech/hsd/issues/228
https://github.com/benhodkiewiczwicz-ops/h80/issues/225
https://github.com/glennleannonnnon-cmd/xy3/issues/218
https://github.com/angtommylang-boop/ywt/issues/216
https://github.com/ervhellerv-pixel/j8c/issues/219
https://github.com/songlennrolfson-cmd/jop/issues/221
https://github.com/samuelhansenansen-pixel/0oq/issues/218
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/214
https://github.com/nowevelynnienow-gif/0x0/issues/236
https://github.com/dvmkohlerdvm-arch/8gu/issues/221
https://github.com/bertsteresaroberts-svg/9sv/issues/224
https://github.com/lynnlangworthorth-glitch/ahg/issues/235
https://github.com/ertmichelleebert-max/cpz/issues/226
https://github.com/camillekerlukeluke-blip/rup/issues/229
https://github.com/hkecaseyleuschke-netizen/zyk/issues/229
https://github.com/odelarrybode-tech/hsd/issues/227
https://github.com/monisterrisimonis-design/zai/issues/227
https://github.com/rogeliohartmannmann-cpu/bnr/issues/231
https://github.com/glennleannonnnon-cmd/xy3/issues/217
https://github.com/arveybrittanyharvey-arch/1re/issues/235
https://github.com/olivewildermanerman-prog/eg9/issues/219
https://github.com/mansaratillman-alt/vbl/issues/232
https://github.com/benhodkiewiczwicz-ops/h80/issues/224
https://github.com/songlennrolfson-cmd/jop/issues/220
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/213
https://github.com/ervhellerv-pixel/j8c/issues/218
https://github.com/angtommylang-boop/ywt/issues/215
https://github.com/bertsteresaroberts-svg/9sv/issues/223
https://github.com/samuelhansenansen-pixel/0oq/issues/217
https://github.com/dvmkohlerdvm-arch/8gu/issues/220
https://github.com/nowevelynnienow-gif/0x0/issues/235
https://github.com/lynnlangworthorth-glitch/ahg/issues/234
https://github.com/hkecaseyleuschke-netizen/zyk/issues/228
https://github.com/ertmichelleebert-max/cpz/issues/225
https://github.com/monisterrisimonis-design/zai/issues/226
https://github.com/rogeliohartmannmann-cpu/bnr/issues/230
https://github.com/glennleannonnnon-cmd/xy3/issues/216
https://github.com/camillekerlukeluke-blip/rup/issues/228
https://github.com/odelarrybode-tech/hsd/issues/226
https://github.com/arveybrittanyharvey-arch/1re/issues/234
https://github.com/olivewildermanerman-prog/eg9/issues/218
https://github.com/songlennrolfson-cmd/jop/issues/219
https://github.com/mansaratillman-alt/vbl/issues/231
https://github.com/benhodkiewiczwicz-ops/h80/issues/223
https://github.com/angtommylang-boop/ywt/issues/214
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/212
https://github.com/bertsteresaroberts-svg/9sv/issues/222
https://github.com/nowevelynnienow-gif/0x0/issues/234
https://github.com/ervhellerv-pixel/j8c/issues/217
https://github.com/lynnlangworthorth-glitch/ahg/issues/233
https://github.com/dvmkohlerdvm-arch/8gu/issues/219
https://github.com/samuelhansenansen-pixel/0oq/issues/216
https://github.com/hkecaseyleuschke-netizen/zyk/issues/227
https://github.com/ertmichelleebert-max/cpz/issues/224
https://github.com/monisterrisimonis-design/zai/issues/225
https://github.com/rogeliohartmannmann-cpu/bnr/issues/229
https://github.com/glennleannonnnon-cmd/xy3/issues/215
https://github.com/arveybrittanyharvey-arch/1re/issues/233
https://github.com/odelarrybode-tech/hsd/issues/225
https://github.com/olivewildermanerman-prog/eg9/issues/217
https://github.com/camillekerlukeluke-blip/rup/issues/227
https://github.com/songlennrolfson-cmd/jop/issues/218
https://github.com/mansaratillman-alt/vbl/issues/230
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/211
https://github.com/angtommylang-boop/ywt/issues/213
https://github.com/lynnlangworthorth-glitch/ahg/issues/232
https://github.com/ervhellerv-pixel/j8c/issues/216
https://github.com/bertsteresaroberts-svg/9sv/issues/221
https://github.com/nowevelynnienow-gif/0x0/issues/233
https://github.com/dvmkohlerdvm-arch/8gu/issues/218
https://github.com/samuelhansenansen-pixel/0oq/issues/215
https://github.com/ertmichelleebert-max/cpz/issues/223
https://github.com/monisterrisimonis-design/zai/issues/224
https://github.com/benhodkiewiczwicz-ops/h80/issues/222
https://github.com/hkecaseyleuschke-netizen/zyk/issues/226
https://github.com/arveybrittanyharvey-arch/1re/issues/232
https://github.com/olivewildermanerman-prog/eg9/issues/216
https://github.com/odelarrybode-tech/hsd/issues/224
https://github.com/rogeliohartmannmann-cpu/bnr/issues/228
https://github.com/songlennrolfson-cmd/jop/issues/217
https://github.com/camillekerlukeluke-blip/rup/issues/226
https://github.com/glennleannonnnon-cmd/xy3/issues/214
https://github.com/mansaratillman-alt/vbl/issues/229
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/210
https://github.com/lynnlangworthorth-glitch/ahg/issues/231
https://github.com/nowevelynnienow-gif/0x0/issues/232
https://github.com/angtommylang-boop/ywt/issues/212
https://github.com/bertsteresaroberts-svg/9sv/issues/220
https://github.com/ervhellerv-pixel/j8c/issues/215
https://github.com/arveybrittanyharvey-arch/1re/issues/231
https://github.com/samuelhansenansen-pixel/0oq/issues/214
https://github.com/monisterrisimonis-design/zai/issues/223
https://github.com/hkecaseyleuschke-netizen/zyk/issues/225
https://github.com/dvmkohlerdvm-arch/8gu/issues/217
https://github.com/ertmichelleebert-max/cpz/issues/222
https://github.com/rogeliohartmannmann-cpu/bnr/issues/227
https://github.com/benhodkiewiczwicz-ops/h80/issues/221
https://github.com/songlennrolfson-cmd/jop/issues/216
https://github.com/odelarrybode-tech/hsd/issues/223
https://github.com/olivewildermanerman-prog/eg9/issues/215
https://github.com/glennleannonnnon-cmd/xy3/issues/213
https://github.com/camillekerlukeluke-blip/rup/issues/225
https://github.com/nowevelynnienow-gif/0x0/issues/231
https://github.com/lynnlangworthorth-glitch/ahg/issues/230
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/209
https://github.com/ervhellerv-pixel/j8c/issues/214
https://github.com/arveybrittanyharvey-arch/1re/issues/230
https://github.com/angtommylang-boop/ywt/issues/211
https://github.com/bertsteresaroberts-svg/9sv/issues/219
https://github.com/mansaratillman-alt/vbl/issues/228
https://github.com/hkecaseyleuschke-netizen/zyk/issues/224
https://github.com/samuelhansenansen-pixel/0oq/issues/213
https://github.com/monisterrisimonis-design/zai/issues/222
https://github.com/songlennrolfson-cmd/jop/issues/215
https://github.com/rogeliohartmannmann-cpu/bnr/issues/226
https://github.com/ertmichelleebert-max/cpz/issues/221
https://github.com/dvmkohlerdvm-arch/8gu/issues/216
https://github.com/nowevelynnienow-gif/0x0/issues/230
https://github.com/olivewildermanerman-prog/eg9/issues/214
https://github.com/glennleannonnnon-cmd/xy3/issues/212
https://github.com/odelarrybode-tech/hsd/issues/222
https://github.com/lynnlangworthorth-glitch/ahg/issues/229
https://github.com/camillekerlukeluke-blip/rup/issues/224
https://github.com/ervhellerv-pixel/j8c/issues/213
https://github.com/benhodkiewiczwicz-ops/h80/issues/220
https://github.com/mansaratillman-alt/vbl/issues/227
https://github.com/bertsteresaroberts-svg/9sv/issues/218
https://github.com/hkecaseyleuschke-netizen/zyk/issues/223
https://github.com/samuelhansenansen-pixel/0oq/issues/212
https://github.com/arveybrittanyharvey-arch/1re/issues/229
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/208
https://github.com/angtommylang-boop/ywt/issues/210
https://github.com/songlennrolfson-cmd/jop/issues/214
https://github.com/monisterrisimonis-design/zai/issues/221
https://github.com/ertmichelleebert-max/cpz/issues/220
https://github.com/nowevelynnienow-gif/0x0/issues/229
https://github.com/dvmkohlerdvm-arch/8gu/issues/215
https://github.com/rogeliohartmannmann-cpu/bnr/issues/225
https://github.com/olivewildermanerman-prog/eg9/issues/213
https://github.com/odelarrybode-tech/hsd/issues/221
https://github.com/lynnlangworthorth-glitch/ahg/issues/228
https://github.com/camillekerlukeluke-blip/rup/issues/223
https://github.com/glennleannonnnon-cmd/xy3/issues/211
https://github.com/ervhellerv-pixel/j8c/issues/212
https://github.com/arveybrittanyharvey-arch/1re/issues/228
https://github.com/mansaratillman-alt/vbl/issues/226
https://github.com/hkecaseyleuschke-netizen/zyk/issues/222
https://github.com/benhodkiewiczwicz-ops/h80/issues/219
https://github.com/samuelhansenansen-pixel/0oq/issues/211
https://github.com/bertsteresaroberts-svg/9sv/issues/217
https://github.com/monisterrisimonis-design/zai/issues/220
https://github.com/ertmichelleebert-max/cpz/issues/219
https://github.com/angtommylang-boop/ywt/issues/209
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/207
https://github.com/songlennrolfson-cmd/jop/issues/213
https://github.com/dvmkohlerdvm-arch/8gu/issues/214
https://github.com/olivewildermanerman-prog/eg9/issues/212
https://github.com/odelarrybode-tech/hsd/issues/220
https://github.com/rogeliohartmannmann-cpu/bnr/issues/224
https://github.com/lynnlangworthorth-glitch/ahg/issues/227
https://github.com/nowevelynnienow-gif/0x0/issues/228
https://github.com/camillekerlukeluke-blip/rup/issues/222
https://github.com/glennleannonnnon-cmd/xy3/issues/210
https://github.com/arveybrittanyharvey-arch/1re/issues/227
https://github.com/ervhellerv-pixel/j8c/issues/211
https://github.com/mansaratillman-alt/vbl/issues/225
https://github.com/hkecaseyleuschke-netizen/zyk/issues/221
https://github.com/bertsteresaroberts-svg/9sv/issues/216
https://github.com/samuelhansenansen-pixel/0oq/issues/210
https://github.com/benhodkiewiczwicz-ops/h80/issues/218
https://github.com/monisterrisimonis-design/zai/issues/219
https://github.com/odelarrybode-tech/hsd/issues/219
https://github.com/nowevelynnienow-gif/0x0/issues/227
https://github.com/angtommylang-boop/ywt/issues/208
https://github.com/lynnlangworthorth-glitch/ahg/issues/226
https://github.com/dvmkohlerdvm-arch/8gu/issues/213
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/206
https://github.com/rogeliohartmannmann-cpu/bnr/issues/223
https://github.com/camillekerlukeluke-blip/rup/issues/221
https://github.com/ertmichelleebert-max/cpz/issues/218
https://github.com/olivewildermanerman-prog/eg9/issues/211
https://github.com/songlennrolfson-cmd/jop/issues/212
https://github.com/arveybrittanyharvey-arch/1re/issues/226
https://github.com/glennleannonnnon-cmd/xy3/issues/209
https://github.com/ervhellerv-pixel/j8c/issues/210
https://github.com/mansaratillman-alt/vbl/issues/224
https://github.com/bertsteresaroberts-svg/9sv/issues/215
https://github.com/samuelhansenansen-pixel/0oq/issues/209
https://github.com/monisterrisimonis-design/zai/issues/218
https://github.com/hkecaseyleuschke-netizen/zyk/issues/220
https://github.com/nowevelynnienow-gif/0x0/issues/226
https://github.com/benhodkiewiczwicz-ops/h80/issues/217
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/205
https://github.com/lynnlangworthorth-glitch/ahg/issues/225
https://github.com/camillekerlukeluke-blip/rup/issues/220
https://github.com/odelarrybode-tech/hsd/issues/218
https://github.com/angtommylang-boop/ywt/issues/207
https://github.com/rogeliohartmannmann-cpu/bnr/issues/222
https://github.com/ertmichelleebert-max/cpz/issues/217
https://github.com/dvmkohlerdvm-arch/8gu/issues/212
https://github.com/arveybrittanyharvey-arch/1re/issues/225
https://github.com/songlennrolfson-cmd/jop/issues/211
https://github.com/olivewildermanerman-prog/eg9/issues/210
https://github.com/ervhellerv-pixel/j8c/issues/209
https://github.com/glennleannonnnon-cmd/xy3/issues/208
https://github.com/mansaratillman-alt/vbl/issues/223
https://github.com/monisterrisimonis-design/zai/issues/217
https://github.com/samuelhansenansen-pixel/0oq/issues/208
https://github.com/bertsteresaroberts-svg/9sv/issues/214
https://github.com/hkecaseyleuschke-netizen/zyk/issues/219
https://github.com/nowevelynnienow-gif/0x0/issues/225
https://github.com/lynnlangworthorth-glitch/ahg/issues/224
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/204
https://github.com/odelarrybode-tech/hsd/issues/217
https://github.com/camillekerlukeluke-blip/rup/issues/219
https://github.com/arveybrittanyharvey-arch/1re/issues/224
https://github.com/angtommylang-boop/ywt/issues/206
https://github.com/benhodkiewiczwicz-ops/h80/issues/216
https://github.com/ervhellerv-pixel/j8c/issues/208
https://github.com/rogeliohartmannmann-cpu/bnr/issues/221
https://github.com/glennleannonnnon-cmd/xy3/issues/207
https://github.com/ertmichelleebert-max/cpz/issues/216
https://github.com/dvmkohlerdvm-arch/8gu/issues/211
https://github.com/olivewildermanerman-prog/eg9/issues/209
https://github.com/songlennrolfson-cmd/jop/issues/210
https://github.com/monisterrisimonis-design/zai/issues/216
https://github.com/samuelhansenansen-pixel/0oq/issues/207
https://github.com/mansaratillman-alt/vbl/issues/222
https://github.com/bertsteresaroberts-svg/9sv/issues/213
https://github.com/nowevelynnienow-gif/0x0/issues/224
https://github.com/hkecaseyleuschke-netizen/zyk/issues/218
https://github.com/lynnlangworthorth-glitch/ahg/issues/223
https://github.com/odelarrybode-tech/hsd/issues/216
https://github.com/arveybrittanyharvey-arch/1re/issues/223
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/203
https://github.com/camillekerlukeluke-blip/rup/issues/218
https://github.com/benhodkiewiczwicz-ops/h80/issues/215
https://github.com/ervhellerv-pixel/j8c/issues/207
https://github.com/angtommylang-boop/ywt/issues/205
https://github.com/olivewildermanerman-prog/eg9/issues/208
https://github.com/rogeliohartmannmann-cpu/bnr/issues/220
https://github.com/songlennrolfson-cmd/jop/issues/209
https://github.com/ertmichelleebert-max/cpz/issues/215
https://github.com/dvmkohlerdvm-arch/8gu/issues/210
https://github.com/glennleannonnnon-cmd/xy3/issues/206
https://github.com/mansaratillman-alt/vbl/issues/221
https://github.com/nowevelynnienow-gif/0x0/issues/223
https://github.com/bertsteresaroberts-svg/9sv/issues/212
https://github.com/samuelhansenansen-pixel/0oq/issues/206
https://github.com/monisterrisimonis-design/zai/issues/215
https://github.com/lynnlangworthorth-glitch/ahg/issues/222
https://github.com/hkecaseyleuschke-netizen/zyk/issues/217
https://github.com/odelarrybode-tech/hsd/issues/215
https://github.com/arveybrittanyharvey-arch/1re/issues/222
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/202
https://github.com/camillekerlukeluke-blip/rup/issues/217
https://github.com/benhodkiewiczwicz-ops/h80/issues/214
https://github.com/ervhellerv-pixel/j8c/issues/206
https://github.com/angtommylang-boop/ywt/issues/204
https://github.com/olivewildermanerman-prog/eg9/issues/207
https://github.com/songlennrolfson-cmd/jop/issues/208
https://github.com/ertmichelleebert-max/cpz/issues/214
https://github.com/dvmkohlerdvm-arch/8gu/issues/209
https://github.com/glennleannonnnon-cmd/xy3/issues/205
https://github.com/nowevelynnienow-gif/0x0/issues/222
https://github.com/rogeliohartmannmann-cpu/bnr/issues/219
https://github.com/bertsteresaroberts-svg/9sv/issues/211
https://github.com/samuelhansenansen-pixel/0oq/issues/205
https://github.com/lynnlangworthorth-glitch/ahg/issues/221
https://github.com/mansaratillman-alt/vbl/issues/220
https://github.com/hkecaseyleuschke-netizen/zyk/issues/216
https://github.com/odelarrybode-tech/hsd/issues/214
https://github.com/arveybrittanyharvey-arch/1re/issues/221
https://github.com/monisterrisimonis-design/zai/issues/214
https://github.com/camillekerlukeluke-blip/rup/issues/216
https://github.com/ervhellerv-pixel/j8c/issues/205
https://github.com/benhodkiewiczwicz-ops/h80/issues/213
https://github.com/angtommylang-boop/ywt/issues/203
https://github.com/songlennrolfson-cmd/jop/issues/207
https://github.com/ertmichelleebert-max/cpz/issues/213
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/201
https://github.com/dvmkohlerdvm-arch/8gu/issues/208
https://github.com/olivewildermanerman-prog/eg9/issues/206
https://github.com/rogeliohartmannmann-cpu/bnr/issues/218
https://github.com/glennleannonnnon-cmd/xy3/issues/204
https://github.com/nowevelynnienow-gif/0x0/issues/221
https://github.com/mansaratillman-alt/vbl/issues/219
https://github.com/samuelhansenansen-pixel/0oq/issues/204
https://github.com/bertsteresaroberts-svg/9sv/issues/210
https://github.com/lynnlangworthorth-glitch/ahg/issues/220
https://github.com/hkecaseyleuschke-netizen/zyk/issues/215
https://github.com/arveybrittanyharvey-arch/1re/issues/220
https://github.com/monisterrisimonis-design/zai/issues/213
https://github.com/odelarrybode-tech/hsd/issues/213
https://github.com/camillekerlukeluke-blip/rup/issues/215
https://github.com/ervhellerv-pixel/j8c/issues/204
https://github.com/angtommylang-boop/ywt/issues/202
https://github.com/ertmichelleebert-max/cpz/issues/212
https://github.com/dvmkohlerdvm-arch/8gu/issues/207
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/200
https://github.com/benhodkiewiczwicz-ops/h80/issues/212
https://github.com/olivewildermanerman-prog/eg9/issues/205
https://github.com/songlennrolfson-cmd/jop/issues/206
https://github.com/nowevelynnienow-gif/0x0/issues/220
https://github.com/glennleannonnnon-cmd/xy3/issues/203
https://github.com/mansaratillman-alt/vbl/issues/218
https://github.com/rogeliohartmannmann-cpu/bnr/issues/217
https://github.com/lynnlangworthorth-glitch/ahg/issues/219
https://github.com/samuelhansenansen-pixel/0oq/issues/203
https://github.com/bertsteresaroberts-svg/9sv/issues/209
https://github.com/hkecaseyleuschke-netizen/zyk/issues/214
https://github.com/odelarrybode-tech/hsd/issues/212
https://github.com/monisterrisimonis-design/zai/issues/212
https://github.com/arveybrittanyharvey-arch/1re/issues/219
https://github.com/camillekerlukeluke-blip/rup/issues/214
https://github.com/angtommylang-boop/ywt/issues/201
https://github.com/dvmkohlerdvm-arch/8gu/issues/206
https://github.com/ervhellerv-pixel/j8c/issues/203
https://github.com/ertmichelleebert-max/cpz/issues/211
https://github.com/benhodkiewiczwicz-ops/h80/issues/211
https://github.com/nowevelynnienow-gif/0x0/issues/219
https://github.com/glennleannonnnon-cmd/xy3/issues/202
https://github.com/songlennrolfson-cmd/jop/issues/205
https://github.com/olivewildermanerman-prog/eg9/issues/204
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/199
https://github.com/lynnlangworthorth-glitch/ahg/issues/218
https://github.com/mansaratillman-alt/vbl/issues/217
https://github.com/bertsteresaroberts-svg/9sv/issues/208
https://github.com/samuelhansenansen-pixel/0oq/issues/202
https://github.com/rogeliohartmannmann-cpu/bnr/issues/216
https://github.com/odelarrybode-tech/hsd/issues/211
https://github.com/arveybrittanyharvey-arch/1re/issues/218
https://github.com/monisterrisimonis-design/zai/issues/211
https://github.com/hkecaseyleuschke-netizen/zyk/issues/213
https://github.com/angtommylang-boop/ywt/issues/200
https://github.com/camillekerlukeluke-blip/rup/issues/213
https://github.com/dvmkohlerdvm-arch/8gu/issues/205

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/96308.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/96308.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/96308.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

跨境金融數據對接實踐:印度NSE/BSE股票行情API集成指南

跨境金融數據對接實踐:印度NSE/BSE股票行情API集成指南 關鍵詞:印度股票數據對接 NSE實時行情 BSE證券接口 金融API開發 Python請求示例一、印度股市數據源技術解析(核心價值) 印度兩大交易所數據獲取難點: 時區差異&a…

AFSim2.9.0學習筆記 —— 1、AFSim及完整工具介紹(文末附:完整afsim2.9.0源碼、編譯好的完整工具包、中文教材等)

🔔 AFSim2.9.0 相關技術、疑難雜癥文章合集(掌握后可自封大俠 ?_?)(記得收藏,持續更新中…) AFSim介紹 AFSim(Advanced Framework for Simulation Integration & Modeling【高級仿真集成與…

ArcGIS學習-18 實戰-降雨量空間分布插值分析

設置環境加載要素投影查看要素,發現均不是投影數據,但都是地理坐標都是WGS1984使用工具進行批量投影然后新建空地圖,重新加載確認圖層的投影與柵格數據一致插值樣條法得到反距離權重法插值得到克里金法插值得到

HarmonyOS應用開發:深入理解聲明式UI與彈窗交互的最佳實踐

HarmonyOS應用開發:深入理解聲明式UI與彈窗交互的最佳實踐 引言 隨著HarmonyOS 4.0的發布及后續版本的演進,華為的分布式操作系統已經進入了全新的發展階段。基于API 12及以上的開發環境為開發者提供了更強大、更高效的開發工具和框架。在HarmonyOS應用…

探索Java并發編程--從基礎到高級實踐技巧

Thread(線程)線程 程序執行的最小單位(一個進程至少有一個線程)。線程內有自己的執行棧、程序計數器(PC),但與同進程內其他線程共享堆內存與進程資源 在java中,線程由java.lang.Thr…

Go語言實戰案例-開發一個Markdown轉HTML工具

這個小工具可以把 .md 文件轉換為 .html 文件,非常適合寫筆記、博客或者快速預覽 Markdown 內容。📌 案例目標? 讀取一個 Markdown 文件? 使用開源庫將 Markdown 轉換為 HTML? 將 HTML 輸出到新文件中📦 所需庫我們用 goldmark 這個 Markd…

基于51單片機的太陽能鋰電池充電路燈

基于51單片機的太陽能鋰電池充電路燈系統設計 1 系統功能介紹 本設計以 STC89C52單片機 為核心,構建了一個能夠利用太陽能為鋰電池充電并智能控制LED路燈的系統。系統結合了 光照檢測電路、LED燈電路、按鍵檢測電路、太陽能充電電路 等模塊,實現了節能、…

PAT 1178 File Path

這一題的大意是給出了一個windows的文件夾目錄,讓我們按照所屬的目錄關系,來找相應的目錄是否存在,如果存在,就輸出找到該文件的路徑,如果不存在輸出error 我的思路是用合適的樹形結構保存下來目錄的所屬關系&#xff…

云原生部署_k8s入門

K8S官網文檔:https://kubernetes.io/zh/docs/home/Kubernetes是什么Kubernetes 是用于自動部署、擴縮和管理容器化應用程序的開源系統。 Kubernetes 源自 ,Google 15 年生產環境的運維經驗同時凝聚了社區的最佳創意和實踐。簡稱K8s.Kubernet…

實戰項目-----Python+OpenCV 實現對視頻的椒鹽噪聲注入與實時平滑還原”

實戰項目實現以下功能:功能 1:為視頻每一幀添加椒鹽噪聲作用:模擬真實環境中圖像傳輸或采集時可能出現的噪聲。實現方式:讀取視頻的每一幀。隨機選擇 10000 個像素點,將其設置為黑色(0)或白色&a…

Day42 PHP(mysql注入、跨庫讀取)

一、sql注入基本原理:沒有對用戶輸入的數據進行限制,導致數據庫語句可以做什么,用戶就可以做什么。取決于不同數據庫的不同查詢語言,所以為什么有mysql注入/orcale注入等等。步驟:【access】表名(字典爆破來…

機器人控制器開發(部署——軟件打包備份更新)

文章總覽 為什么做備份更新 為機器人控制器設計一套打包備份更新機制,為控制器的批量生產和產品與項目落地做準備。 當某個模塊出現bug需要升級時,用戶可以快速獲取正確的bak包并導入到控制器中重啟生效。 如果沒有做好軟件的備份更新機制&#xff0c…

LaTeX TeX Live 安裝與 CTAN 國內鏡像配置(Windows / macOS / Linux 全流程)

這是一份面向國內環境的 LaTeX 從零到可編譯 指南:覆蓋 TeX Live / MacTeX 安裝、PATH 配置、CTAN 國內鏡像(清華/北外/上交/中科大等)一鍵切換與回滾、常見坑位(權限、鏡像路徑、版本切換)、以及 XeLaTeX/latexmk 的實…

WhoisXML API再次榮登2025年美國Inc. 5000快速成長企業榜單

WhoisXML API非常自豪地宣布,我們再次榮登美國權威榜單——2025年Inc.5000全美成長最快的私營企業之一。今年,公司在地區排名中位列第119名,在全美總體排名中位列第4,271名。Inc. 5000榜單要求參評企業必須保持獨立運營,并在2021至…

Elasticsearch面試精講 Day 9:復合查詢與過濾器優化

【Elasticsearch面試精講 Day 9】復合查詢與過濾器優化 在Elasticsearch的搜索體系中,復合查詢(Compound Queries)與過濾器(Filters)優化是構建高效、精準搜索邏輯的核心能力。作為“Elasticsearch面試精講”系列的第…

Android使用ReactiveNetwork監聽網絡連通性

引入庫 implementation com.github.pwittchen:reactivenetwork-rx2:3.0.8監聽網絡連接變更ReactiveNetwork.observeNetworkConnectivity(context).subscribeOn(Schedulers.io())// ... // anything else what you can do with RxJava.observeOn(Schedulers.computation()).subs…

基于阿里云部署 RustDesk 自托管服務器

基于阿里云部署 RustDesk 自托管服務器一、背景與需求場景二、什么是 RustDesk?為什么選擇自托管?2.1 RustDesk 是什么?2.2 為什么選擇自托管?三、環境準備與架構說明四、操作步驟4.1 在阿里云上安裝 RustDesk 服務端4.1.1 下載并…

細說分布式ID

針對高并發寫,分布式ID是其業務基礎,本文從一個面試題細細展開。面試官:1.對于Mysql的InnoDB引擎下,自增ID和UUID作為主鍵各自有什么優劣,對于一張表的主鍵你建議使用哪種ID?2.除了UUID是否還了解其他類型的…

2025年大數據專業證書報考指南:專科學歷必看的8大選擇?

對于大專學歷的同學來說,2025年進入大數據行業是一個充滿機遇的選擇。大數據領域發展迅速,各類證書能夠幫助求職者提升專業能力、增強就業競爭力。其中最推薦的是CDA數據分析師,這個證書適應了未來數字化經濟和AI發展趨勢,難度不高…

Python爬蟲實戰:研究Axis Artist模塊,構建電商數據采集和分析系統

1. 引言 1.1 研究背景與意義 在大數據時代,互聯網上蘊藏著海量有價值的信息,這些信息涵蓋了社會、經濟、科技等各個領域。高效地從互聯網獲取數據并進行深度分析,對于企業決策、學術研究、市場分析等都具有重要意義。Python 作為一種功能強大的編程語言,憑借其豐富的庫支…