Flink 状态管理的核心能力

我们来看一个复杂的实际案例:阿里巴巴菜鸟的实时物流追踪系统。

该系统处理来自多个电商平台(天猫、淘宝、速卖通)的订单包裹,通过一个复杂的处理流程:

合并与去重:通过聚合操作将不同来源的订单合并并去重;
双流驱动 Join:将物流更新信息与订单数据关联以及订单更新信息和物流信息关联,生成最新的物流状态;
复杂事件处理(CEP):基于 CEP 检测物流异常;
实时分析:按订单来源聚合来计算准时送达率等指标。
Flink 状态管理的核心能力

Flink 的状态管理系统提供了四项关键能力

Exactly-Once 语义
Flink 通过全局检查点机制,确保在整个分布式拓扑中创建一致的状态快照。当发生故障时,系统执行原子恢复,保证数据一致性。通过在所有节点间协调状态快照,Flink 实现了端到端的数据完整性保障。

事件时间与乱序处理
现实中的数据流很少按完美顺序到达,但 Flink 仍能提供准确的基于时间的计算结果。系统通过水位线(Watermark)协调机制,在容忍延迟数据的同时,确保分布式算子间的时间一致性,维持处理的正确性。

可扩展性与弹性
Flink 的状态架构通过互不重叠的键组(key groups)对状态进行分区并分布到计算节点上,支持独立的扩缩容决策。这种设计使得应用可以在动态调整规模,无缝适应不断变化的工作负载。

性能与可靠性
系统提供低延迟的状态访问能力,满足实时性要求,同时通过分布式快照机制保障强容错能力。这种组合确保了在不同负载条件下的一致性能表现,使 Flink 能够胜任严苛的生产环境需求。

演进之路:从嵌入式到解耦式架构
第一代:嵌入式本地状态(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 服务将文件整理操作从核心数据处理链路中剥离,使得资源使用平滑稳定。
这种架构实现了真正意义上的独立可扩展性:处理能力可独立于状态大小进行调整,存储也可在不改变计算资源的情况下扩展,带来了显著的资源优化与高效利用。
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/241
https://github.com/nowevelynnienow-gif/0x0/issues/265
https://github.com/monisterrisimonis-design/zai/issues/254
https://github.com/rogeliohartmannmann-cpu/bnr/issues/256
https://github.com/songlennrolfson-cmd/jop/issues/246
https://github.com/camillekerlukeluke-blip/rup/issues/256
https://github.com/angtommylang-boop/ywt/issues/241
https://github.com/olivewildermanerman-prog/eg9/issues/246
https://github.com/glennleannonnnon-cmd/xy3/issues/244
https://github.com/ertmichelleebert-max/cpz/issues/252
https://github.com/lynnlangworthorth-glitch/ahg/issues/263
https://github.com/samuelhansenansen-pixel/0oq/issues/245
https://github.com/bertsteresaroberts-svg/9sv/issues/251
https://github.com/hkecaseyleuschke-netizen/zyk/issues/255
https://github.com/odelarrybode-tech/hsd/issues/253
https://github.com/mansaratillman-alt/vbl/issues/258
https://github.com/arveybrittanyharvey-arch/1re/issues/260
https://github.com/nowevelynnienow-gif/0x0/issues/264
https://github.com/benhodkiewiczwicz-ops/h80/issues/249
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/240
https://github.com/dvmkohlerdvm-arch/8gu/issues/246
https://github.com/monisterrisimonis-design/zai/issues/253
https://github.com/ervhellerv-pixel/j8c/issues/244
https://github.com/camillekerlukeluke-blip/rup/issues/255
https://github.com/songlennrolfson-cmd/jop/issues/245
https://github.com/rogeliohartmannmann-cpu/bnr/issues/255
https://github.com/olivewildermanerman-prog/eg9/issues/245
https://github.com/samuelhansenansen-pixel/0oq/issues/244
https://github.com/lynnlangworthorth-glitch/ahg/issues/262
https://github.com/angtommylang-boop/ywt/issues/240
https://github.com/bertsteresaroberts-svg/9sv/issues/250
https://github.com/glennleannonnnon-cmd/xy3/issues/243
https://github.com/ertmichelleebert-max/cpz/issues/251
https://github.com/hkecaseyleuschke-netizen/zyk/issues/254
https://github.com/mansaratillman-alt/vbl/issues/257
https://github.com/nowevelynnienow-gif/0x0/issues/263
https://github.com/arveybrittanyharvey-arch/1re/issues/259
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/239
https://github.com/benhodkiewiczwicz-ops/h80/issues/248
https://github.com/odelarrybode-tech/hsd/issues/252
https://github.com/monisterrisimonis-design/zai/issues/252
https://github.com/dvmkohlerdvm-arch/8gu/issues/245
https://github.com/camillekerlukeluke-blip/rup/issues/254
https://github.com/ervhellerv-pixel/j8c/issues/243
https://github.com/songlennrolfson-cmd/jop/issues/244
https://github.com/olivewildermanerman-prog/eg9/issues/244
https://github.com/samuelhansenansen-pixel/0oq/issues/243
https://github.com/angtommylang-boop/ywt/issues/239
https://github.com/glennleannonnnon-cmd/xy3/issues/242
https://github.com/rogeliohartmannmann-cpu/bnr/issues/254
https://github.com/lynnlangworthorth-glitch/ahg/issues/261
https://github.com/hkecaseyleuschke-netizen/zyk/issues/253
https://github.com/bertsteresaroberts-svg/9sv/issues/249
https://github.com/ertmichelleebert-max/cpz/issues/250
https://github.com/nowevelynnienow-gif/0x0/issues/262
https://github.com/mansaratillman-alt/vbl/issues/256
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/238
https://github.com/arveybrittanyharvey-arch/1re/issues/258
https://github.com/benhodkiewiczwicz-ops/h80/issues/247
https://github.com/odelarrybode-tech/hsd/issues/251
https://github.com/dvmkohlerdvm-arch/8gu/issues/244
https://github.com/camillekerlukeluke-blip/rup/issues/253
https://github.com/monisterrisimonis-design/zai/issues/251
https://github.com/ervhellerv-pixel/j8c/issues/242
https://github.com/olivewildermanerman-prog/eg9/issues/243
https://github.com/samuelhansenansen-pixel/0oq/issues/242
https://github.com/glennleannonnnon-cmd/xy3/issues/241
https://github.com/songlennrolfson-cmd/jop/issues/243
https://github.com/lynnlangworthorth-glitch/ahg/issues/260
https://github.com/angtommylang-boop/ywt/issues/238
https://github.com/nowevelynnienow-gif/0x0/issues/261
https://github.com/hkecaseyleuschke-netizen/zyk/issues/252
https://github.com/bertsteresaroberts-svg/9sv/issues/248
https://github.com/ertmichelleebert-max/cpz/issues/249
https://github.com/mansaratillman-alt/vbl/issues/255
https://github.com/rogeliohartmannmann-cpu/bnr/issues/253
https://github.com/arveybrittanyharvey-arch/1re/issues/257
https://github.com/benhodkiewiczwicz-ops/h80/issues/246
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/237
https://github.com/odelarrybode-tech/hsd/issues/250
https://github.com/camillekerlukeluke-blip/rup/issues/252
https://github.com/monisterrisimonis-design/zai/issues/250
https://github.com/dvmkohlerdvm-arch/8gu/issues/243
https://github.com/ervhellerv-pixel/j8c/issues/241
https://github.com/samuelhansenansen-pixel/0oq/issues/241
https://github.com/olivewildermanerman-prog/eg9/issues/242
https://github.com/glennleannonnnon-cmd/xy3/issues/240
https://github.com/lynnlangworthorth-glitch/ahg/issues/259
https://github.com/nowevelynnienow-gif/0x0/issues/260
https://github.com/angtommylang-boop/ywt/issues/237
https://github.com/songlennrolfson-cmd/jop/issues/242
https://github.com/bertsteresaroberts-svg/9sv/issues/247
https://github.com/mansaratillman-alt/vbl/issues/254
https://github.com/hkecaseyleuschke-netizen/zyk/issues/251
https://github.com/ertmichelleebert-max/cpz/issues/248
https://github.com/benhodkiewiczwicz-ops/h80/issues/245
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/236
https://github.com/camillekerlukeluke-blip/rup/issues/251
https://github.com/rogeliohartmannmann-cpu/bnr/issues/252
https://github.com/odelarrybode-tech/hsd/issues/249
https://github.com/arveybrittanyharvey-arch/1re/issues/256
https://github.com/monisterrisimonis-design/zai/issues/249
https://github.com/samuelhansenansen-pixel/0oq/issues/240
https://github.com/olivewildermanerman-prog/eg9/issues/241
https://github.com/ervhellerv-pixel/j8c/issues/240
https://github.com/glennleannonnnon-cmd/xy3/issues/239
https://github.com/lynnlangworthorth-glitch/ahg/issues/258
https://github.com/dvmkohlerdvm-arch/8gu/issues/242
https://github.com/bertsteresaroberts-svg/9sv/issues/246
https://github.com/mansaratillman-alt/vbl/issues/253
https://github.com/nowevelynnienow-gif/0x0/issues/259
https://github.com/hkecaseyleuschke-netizen/zyk/issues/250
https://github.com/songlennrolfson-cmd/jop/issues/241
https://github.com/angtommylang-boop/ywt/issues/236
https://github.com/ertmichelleebert-max/cpz/issues/247
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/235
https://github.com/camillekerlukeluke-blip/rup/issues/250
https://github.com/rogeliohartmannmann-cpu/bnr/issues/251
https://github.com/benhodkiewiczwicz-ops/h80/issues/244
https://github.com/odelarrybode-tech/hsd/issues/248
https://github.com/samuelhansenansen-pixel/0oq/issues/239
https://github.com/ervhellerv-pixel/j8c/issues/239
https://github.com/olivewildermanerman-prog/eg9/issues/240
https://github.com/lynnlangworthorth-glitch/ahg/issues/257
https://github.com/monisterrisimonis-design/zai/issues/248
https://github.com/glennleannonnnon-cmd/xy3/issues/238
https://github.com/arveybrittanyharvey-arch/1re/issues/255
https://github.com/mansaratillman-alt/vbl/issues/252
https://github.com/nowevelynnienow-gif/0x0/issues/258
https://github.com/bertsteresaroberts-svg/9sv/issues/245
https://github.com/hkecaseyleuschke-netizen/zyk/issues/249
https://github.com/angtommylang-boop/ywt/issues/235
https://github.com/camillekerlukeluke-blip/rup/issues/249
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/234
https://github.com/songlennrolfson-cmd/jop/issues/240
https://github.com/rogeliohartmannmann-cpu/bnr/issues/250
https://github.com/benhodkiewiczwicz-ops/h80/issues/243
https://github.com/dvmkohlerdvm-arch/8gu/issues/241
https://github.com/samuelhansenansen-pixel/0oq/issues/238
https://github.com/lynnlangworthorth-glitch/ahg/issues/256
https://github.com/odelarrybode-tech/hsd/issues/247
https://github.com/ertmichelleebert-max/cpz/issues/246
https://github.com/ervhellerv-pixel/j8c/issues/238
https://github.com/olivewildermanerman-prog/eg9/issues/239
https://github.com/monisterrisimonis-design/zai/issues/247
https://github.com/glennleannonnnon-cmd/xy3/issues/237
https://github.com/mansaratillman-alt/vbl/issues/251
https://github.com/bertsteresaroberts-svg/9sv/issues/244
https://github.com/nowevelynnienow-gif/0x0/issues/257
https://github.com/hkecaseyleuschke-netizen/zyk/issues/248
https://github.com/arveybrittanyharvey-arch/1re/issues/254
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/233
https://github.com/camillekerlukeluke-blip/rup/issues/248
https://github.com/samuelhansenansen-pixel/0oq/issues/237
https://github.com/angtommylang-boop/ywt/issues/234
https://github.com/rogeliohartmannmann-cpu/bnr/issues/249
https://github.com/odelarrybode-tech/hsd/issues/246
https://github.com/songlennrolfson-cmd/jop/issues/239
https://github.com/ertmichelleebert-max/cpz/issues/245
https://github.com/benhodkiewiczwicz-ops/h80/issues/242
https://github.com/lynnlangworthorth-glitch/ahg/issues/255
https://github.com/dvmkohlerdvm-arch/8gu/issues/240
https://github.com/ervhellerv-pixel/j8c/issues/237
https://github.com/glennleannonnnon-cmd/xy3/issues/236
https://github.com/monisterrisimonis-design/zai/issues/246
https://github.com/nowevelynnienow-gif/0x0/issues/256
https://github.com/olivewildermanerman-prog/eg9/issues/238
https://github.com/mansaratillman-alt/vbl/issues/250
https://github.com/hkecaseyleuschke-netizen/zyk/issues/247
https://github.com/bertsteresaroberts-svg/9sv/issues/243
https://github.com/camillekerlukeluke-blip/rup/issues/247
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/232
https://github.com/odelarrybode-tech/hsd/issues/245
https://github.com/samuelhansenansen-pixel/0oq/issues/236
https://github.com/songlennrolfson-cmd/jop/issues/238
https://github.com/arveybrittanyharvey-arch/1re/issues/253
https://github.com/lynnlangworthorth-glitch/ahg/issues/254
https://github.com/ertmichelleebert-max/cpz/issues/244
https://github.com/dvmkohlerdvm-arch/8gu/issues/239
https://github.com/benhodkiewiczwicz-ops/h80/issues/241
https://github.com/ervhellerv-pixel/j8c/issues/236
https://github.com/rogeliohartmannmann-cpu/bnr/issues/248
https://github.com/angtommylang-boop/ywt/issues/233
https://github.com/glennleannonnnon-cmd/xy3/issues/235
https://github.com/nowevelynnienow-gif/0x0/issues/255
https://github.com/mansaratillman-alt/vbl/issues/249
https://github.com/olivewildermanerman-prog/eg9/issues/237
https://github.com/monisterrisimonis-design/zai/issues/245
https://github.com/bertsteresaroberts-svg/9sv/issues/242
https://github.com/hkecaseyleuschke-netizen/zyk/issues/246
https://github.com/camillekerlukeluke-blip/rup/issues/246
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/231
https://github.com/samuelhansenansen-pixel/0oq/issues/235
https://github.com/lynnlangworthorth-glitch/ahg/issues/253
https://github.com/songlennrolfson-cmd/jop/issues/237
https://github.com/arveybrittanyharvey-arch/1re/issues/252
https://github.com/odelarrybode-tech/hsd/issues/244
https://github.com/dvmkohlerdvm-arch/8gu/issues/238
https://github.com/ertmichelleebert-max/cpz/issues/243
https://github.com/rogeliohartmannmann-cpu/bnr/issues/247
https://github.com/benhodkiewiczwicz-ops/h80/issues/240
https://github.com/ervhellerv-pixel/j8c/issues/235
https://github.com/glennleannonnnon-cmd/xy3/issues/234
https://github.com/olivewildermanerman-prog/eg9/issues/236
https://github.com/mansaratillman-alt/vbl/issues/248
https://github.com/angtommylang-boop/ywt/issues/232
https://github.com/nowevelynnienow-gif/0x0/issues/254
https://github.com/bertsteresaroberts-svg/9sv/issues/241
https://github.com/hkecaseyleuschke-netizen/zyk/issues/245
https://github.com/monisterrisimonis-design/zai/issues/244
https://github.com/camillekerlukeluke-blip/rup/issues/245
https://github.com/samuelhansenansen-pixel/0oq/issues/234
https://github.com/lynnlangworthorth-glitch/ahg/issues/252
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/230
https://github.com/songlennrolfson-cmd/jop/issues/236
https://github.com/odelarrybode-tech/hsd/issues/243
https://github.com/dvmkohlerdvm-arch/8gu/issues/237
https://github.com/ertmichelleebert-max/cpz/issues/242
https://github.com/benhodkiewiczwicz-ops/h80/issues/239
https://github.com/angtommylang-boop/ywt/issues/231
https://github.com/ervhellerv-pixel/j8c/issues/234
https://github.com/glennleannonnnon-cmd/xy3/issues/233
https://github.com/nowevelynnienow-gif/0x0/issues/253
https://github.com/arveybrittanyharvey-arch/1re/issues/251
https://github.com/bertsteresaroberts-svg/9sv/issues/240
https://github.com/mansaratillman-alt/vbl/issues/247
https://github.com/olivewildermanerman-prog/eg9/issues/235
https://github.com/hkecaseyleuschke-netizen/zyk/issues/244
https://github.com/monisterrisimonis-design/zai/issues/243
https://github.com/camillekerlukeluke-blip/rup/issues/244
https://github.com/lynnlangworthorth-glitch/ahg/issues/251
https://github.com/samuelhansenansen-pixel/0oq/issues/233
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/229
https://github.com/rogeliohartmannmann-cpu/bnr/issues/246
https://github.com/dvmkohlerdvm-arch/8gu/issues/236
https://github.com/songlennrolfson-cmd/jop/issues/235
https://github.com/ertmichelleebert-max/cpz/issues/241
https://github.com/odelarrybode-tech/hsd/issues/242
https://github.com/benhodkiewiczwicz-ops/h80/issues/238
https://github.com/angtommylang-boop/ywt/issues/230
https://github.com/nowevelynnienow-gif/0x0/issues/252
https://github.com/bertsteresaroberts-svg/9sv/issues/239
https://github.com/mansaratillman-alt/vbl/issues/246
https://github.com/monisterrisimonis-design/zai/issues/242
https://github.com/arveybrittanyharvey-arch/1re/issues/250
https://github.com/ervhellerv-pixel/j8c/issues/233
https://github.com/camillekerlukeluke-blip/rup/issues/243
https://github.com/glennleannonnnon-cmd/xy3/issues/232
https://github.com/olivewildermanerman-prog/eg9/issues/234
https://github.com/lynnlangworthorth-glitch/ahg/issues/250
https://github.com/hkecaseyleuschke-netizen/zyk/issues/243
https://github.com/samuelhansenansen-pixel/0oq/issues/232
https://github.com/songlennrolfson-cmd/jop/issues/234
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/228
https://github.com/odelarrybode-tech/hsd/issues/241
https://github.com/dvmkohlerdvm-arch/8gu/issues/235
https://github.com/ertmichelleebert-max/cpz/issues/240
https://github.com/nowevelynnienow-gif/0x0/issues/251
https://github.com/angtommylang-boop/ywt/issues/229
https://github.com/rogeliohartmannmann-cpu/bnr/issues/245
https://github.com/bertsteresaroberts-svg/9sv/issues/238
https://github.com/mansaratillman-alt/vbl/issues/245
https://github.com/benhodkiewiczwicz-ops/h80/issues/237
https://github.com/monisterrisimonis-design/zai/issues/241
https://github.com/camillekerlukeluke-blip/rup/issues/242
https://github.com/olivewildermanerman-prog/eg9/issues/233
https://github.com/lynnlangworthorth-glitch/ahg/issues/249
https://github.com/arveybrittanyharvey-arch/1re/issues/249
https://github.com/glennleannonnnon-cmd/xy3/issues/231
https://github.com/ervhellerv-pixel/j8c/issues/232
https://github.com/hkecaseyleuschke-netizen/zyk/issues/242
https://github.com/samuelhansenansen-pixel/0oq/issues/231
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/227
https://github.com/songlennrolfson-cmd/jop/issues/233
https://github.com/dvmkohlerdvm-arch/8gu/issues/234
https://github.com/odelarrybode-tech/hsd/issues/240
https://github.com/ertmichelleebert-max/cpz/issues/239
https://github.com/nowevelynnienow-gif/0x0/issues/250
https://github.com/rogeliohartmannmann-cpu/bnr/issues/244
https://github.com/angtommylang-boop/ywt/issues/228
https://github.com/bertsteresaroberts-svg/9sv/issues/237
https://github.com/monisterrisimonis-design/zai/issues/240
https://github.com/olivewildermanerman-prog/eg9/issues/232
https://github.com/glennleannonnnon-cmd/xy3/issues/230
https://github.com/mansaratillman-alt/vbl/issues/244
https://github.com/lynnlangworthorth-glitch/ahg/issues/248
https://github.com/benhodkiewiczwicz-ops/h80/issues/236
https://github.com/camillekerlukeluke-blip/rup/issues/241
https://github.com/arveybrittanyharvey-arch/1re/issues/248
https://github.com/ervhellerv-pixel/j8c/issues/231
https://github.com/hkecaseyleuschke-netizen/zyk/issues/241
https://github.com/dvmkohlerdvm-arch/8gu/issues/233
https://github.com/samuelhansenansen-pixel/0oq/issues/230
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/226
https://github.com/nowevelynnienow-gif/0x0/issues/249
https://github.com/songlennrolfson-cmd/jop/issues/232
https://github.com/odelarrybode-tech/hsd/issues/239
https://github.com/ertmichelleebert-max/cpz/issues/238
https://github.com/angtommylang-boop/ywt/issues/227
https://github.com/bertsteresaroberts-svg/9sv/issues/236
https://github.com/rogeliohartmannmann-cpu/bnr/issues/243
https://github.com/olivewildermanerman-prog/eg9/issues/231
https://github.com/lynnlangworthorth-glitch/ahg/issues/247
https://github.com/glennleannonnnon-cmd/xy3/issues/229
https://github.com/monisterrisimonis-design/zai/issues/239
https://github.com/benhodkiewiczwicz-ops/h80/issues/235
https://github.com/camillekerlukeluke-blip/rup/issues/240
https://github.com/mansaratillman-alt/vbl/issues/243
https://github.com/ervhellerv-pixel/j8c/issues/230
https://github.com/hkecaseyleuschke-netizen/zyk/issues/240
https://github.com/samuelhansenansen-pixel/0oq/issues/229
https://github.com/arveybrittanyharvey-arch/1re/issues/247
https://github.com/dvmkohlerdvm-arch/8gu/issues/232
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/225
https://github.com/nowevelynnienow-gif/0x0/issues/248
https://github.com/ertmichelleebert-max/cpz/issues/237
https://github.com/odelarrybode-tech/hsd/issues/238
https://github.com/songlennrolfson-cmd/jop/issues/231
https://github.com/bertsteresaroberts-svg/9sv/issues/235
https://github.com/lynnlangworthorth-glitch/ahg/issues/246
https://github.com/olivewildermanerman-prog/eg9/issues/230
https://github.com/rogeliohartmannmann-cpu/bnr/issues/242
https://github.com/angtommylang-boop/ywt/issues/226
https://github.com/monisterrisimonis-design/zai/issues/238
https://github.com/glennleannonnnon-cmd/xy3/issues/228
https://github.com/camillekerlukeluke-blip/rup/issues/239
https://github.com/ervhellerv-pixel/j8c/issues/229
https://github.com/mansaratillman-alt/vbl/issues/242
https://github.com/benhodkiewiczwicz-ops/h80/issues/234
https://github.com/samuelhansenansen-pixel/0oq/issues/228
https://github.com/dvmkohlerdvm-arch/8gu/issues/231
https://github.com/arveybrittanyharvey-arch/1re/issues/246
https://github.com/hkecaseyleuschke-netizen/zyk/issues/239
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/224
https://github.com/nowevelynnienow-gif/0x0/issues/247
https://github.com/songlennrolfson-cmd/jop/issues/230
https://github.com/odelarrybode-tech/hsd/issues/237
https://github.com/ertmichelleebert-max/cpz/issues/236
https://github.com/lynnlangworthorth-glitch/ahg/issues/245
https://github.com/olivewildermanerman-prog/eg9/issues/229
https://github.com/bertsteresaroberts-svg/9sv/issues/234
https://github.com/rogeliohartmannmann-cpu/bnr/issues/241
https://github.com/monisterrisimonis-design/zai/issues/237
https://github.com/angtommylang-boop/ywt/issues/225
https://github.com/glennleannonnnon-cmd/xy3/issues/227
https://github.com/ervhellerv-pixel/j8c/issues/228
https://github.com/samuelhansenansen-pixel/0oq/issues/227
https://github.com/dvmkohlerdvm-arch/8gu/issues/230
https://github.com/benhodkiewiczwicz-ops/h80/issues/233
https://github.com/mansaratillman-alt/vbl/issues/241
https://github.com/camillekerlukeluke-blip/rup/issues/238
https://github.com/arveybrittanyharvey-arch/1re/issues/245
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/223
https://github.com/nowevelynnienow-gif/0x0/issues/246
https://github.com/songlennrolfson-cmd/jop/issues/229
https://github.com/odelarrybode-tech/hsd/issues/236
https://github.com/ertmichelleebert-max/cpz/issues/235
https://github.com/hkecaseyleuschke-netizen/zyk/issues/238
https://github.com/bertsteresaroberts-svg/9sv/issues/233
https://github.com/olivewildermanerman-prog/eg9/issues/228
https://github.com/lynnlangworthorth-glitch/ahg/issues/244
https://github.com/rogeliohartmannmann-cpu/bnr/issues/240
https://github.com/angtommylang-boop/ywt/issues/224
https://github.com/monisterrisimonis-design/zai/issues/236
https://github.com/glennleannonnnon-cmd/xy3/issues/226
https://github.com/ervhellerv-pixel/j8c/issues/227
https://github.com/samuelhansenansen-pixel/0oq/issues/226
https://github.com/benhodkiewiczwicz-ops/h80/issues/232
https://github.com/camillekerlukeluke-blip/rup/issues/237
https://github.com/arveybrittanyharvey-arch/1re/issues/244
https://github.com/dvmkohlerdvm-arch/8gu/issues/229
https://github.com/nowevelynnienow-gif/0x0/issues/245
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/222
https://github.com/mansaratillman-alt/vbl/issues/240
https://github.com/ertmichelleebert-max/cpz/issues/234
https://github.com/bertsteresaroberts-svg/9sv/issues/232
https://github.com/songlennrolfson-cmd/jop/issues/228
https://github.com/olivewildermanerman-prog/eg9/issues/227
https://github.com/lynnlangworthorth-glitch/ahg/issues/243
https://github.com/odelarrybode-tech/hsd/issues/235
https://github.com/hkecaseyleuschke-netizen/zyk/issues/237
https://github.com/angtommylang-boop/ywt/issues/223
https://github.com/monisterrisimonis-design/zai/issues/235
https://github.com/glennleannonnnon-cmd/xy3/issues/225
https://github.com/rogeliohartmannmann-cpu/bnr/issues/239
https://github.com/ervhellerv-pixel/j8c/issues/226
https://github.com/samuelhansenansen-pixel/0oq/issues/225
https://github.com/nowevelynnienow-gif/0x0/issues/244
https://github.com/arveybrittanyharvey-arch/1re/issues/243
https://github.com/camillekerlukeluke-blip/rup/issues/236
https://github.com/dvmkohlerdvm-arch/8gu/issues/228
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/221
https://github.com/benhodkiewiczwicz-ops/h80/issues/231
https://github.com/mansaratillman-alt/vbl/issues/239
https://github.com/lynnlangworthorth-glitch/ahg/issues/242
https://github.com/bertsteresaroberts-svg/9sv/issues/231
https://github.com/ertmichelleebert-max/cpz/issues/233
https://github.com/angtommylang-boop/ywt/issues/222
https://github.com/songlennrolfson-cmd/jop/issues/227
https://github.com/olivewildermanerman-prog/eg9/issues/226
https://github.com/glennleannonnnon-cmd/xy3/issues/224
https://github.com/odelarrybode-tech/hsd/issues/234
https://github.com/hkecaseyleuschke-netizen/zyk/issues/236
https://github.com/rogeliohartmannmann-cpu/bnr/issues/238
https://github.com/monisterrisimonis-design/zai/issues/234
https://github.com/ervhellerv-pixel/j8c/issues/225
https://github.com/samuelhansenansen-pixel/0oq/issues/224
https://github.com/nowevelynnienow-gif/0x0/issues/243
https://github.com/arveybrittanyharvey-arch/1re/issues/242
https://github.com/dvmkohlerdvm-arch/8gu/issues/227
https://github.com/camillekerlukeluke-blip/rup/issues/235
https://github.com/mansaratillman-alt/vbl/issues/238
https://github.com/benhodkiewiczwicz-ops/h80/issues/230
https://github.com/trompebonyoconnelltromp-dot/w8r/issues/220
https://github.com/lynnlangworthorth-glitch/ahg/issues/241
https://github.com/ertmichelleebert-max/cpz/issues/232
https://github.com/bertsteresaroberts-svg/9sv/issues/230
https://github.com/angtommylang-boop/ywt/issues/221
https://github.com/hkecaseyleuschke-netizen/zyk/issues/235
https://github.com/olivewildermanerman-prog/eg9/issues/225
https://github.com/odelarrybode-tech/hsd/issues/233
https://github.com/rogeliohartmannmann-cpu/bnr/issues/237
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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/96171.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/96171.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于go语言的云原生TodoList Demo 项目,验证云原生核心特性

以下是一个基于 Go 语言 的云原生 TodoList Demo 项目,涵盖 容器化、Kubernetes 编排、CI/CD、可观测性、弹性扩缩容 等核心云原生特性,代码简洁且附详细操作指南,适合入门学习。项目概览 目标:实现一个支持增删改查(C…

手机能看、投屏 / 车机不能看与反向链接验证类似吗?

有一定关联,但两者的技术逻辑并非完全等同 ——“手机能看、投屏 / 车机不能看” 的核心原因更复杂,反向链接验证是其中一种可能的限制手段,但不是唯一甚至不是最主要的手段。要理清这个问题,需要先拆解 “投屏 / 车机播放受限” …

25年9月通信基础知识补充1:NTN-TDL信道建模matlab代码(satellite-communications toolbox学习)

看文献过程中不断发现有太多不懂的基础知识,故长期更新这类blog不断补充在这过程中学到的知识。由于这些内容与我的研究方向并不一定强相关,故记录不会很深入请见谅。 【通信基础知识补充10】25年9月通信基础知识补充1:NTN-TDL信道建模matlab…

洛谷P3370 【模板】字符串哈希 (哈希表)详解

题目如下:(注:解此题我只需左手一根指头,哈哈哈哈哈哈哈)注意,哈希表的好处是能大幅度减少寻找遍历的时间可能有人不理解哈希值, 这里哈希的模的值一般得是比较大的质数,如标准的100…

光子芯片驱动的胰腺癌早期检测:基于光学子空间神经网络的高效分割方法(未做完)

光子芯片驱动的胰腺癌早期检测:基于光学子空间神经网络的高效分割方法 1 论文核心概念 本文提出了一种基于集成光子芯片的光学子空间神经网络(Optical Subspace Neural Network, OSNN),用于胰腺癌的早期检测与图像分割。其核心思想是利用光子芯片的高并行性、低延迟和低能…

GraphRAG 工作原理逐步解析:从图创建到搜索的实战示例

本篇文章How GraphRAG Works Step-By-Step: From Graph Creation to Search with Real Examples | Towards AI详细介绍了GraphRAG的工作原理,适合对检索增强生成(RAG)和知识图谱感兴趣的读者。文章的技术亮点在于通过图结构提升信息检索效率&…

LAMPSecurity: CTF8靶场渗透

LAMPSecurity: CTF8 来自 <https://www.vulnhub.com/entry/lampsecurity-ctf8,87/> 1&#xff0c;将两台虚拟机网络连接都改为NAT模式 2&#xff0c;攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23.128&#xff0c;靶场IP192.168…

绿算技术闪耀智博会 赋能乡村振兴与产业升级

9月5日至7日&#xff0c;由宁波市人民政府、浙江省经济和信息化厅、中国信息通信研究院联合主办的第十五届智慧城市与智能经济博览会在宁波国际会展中心圆满落幕。绿算技术受邀参展&#xff0c;并发布与北京东方联鸣科技发展有限公司联合打造的《360数智牧业AI模型支撑底座》&a…

浅谈“SVMSPro视频切片”技术应用场景

技术定义视频切片是一项将连续不断的视频流&#xff0c;按特定规则&#xff08;如时间点、事件触发&#xff09;切割成一个个独立、完整的MP4等标准视频文件的技术。这些切片文件体积小、格式通用&#xff0c;易于管理、传输和播放。核心价值精准存档&#xff1a;从海量录像中精…

php 使用html 生成pdf word wkhtmltopdf 系列1

php 使用html 生成pdf word wkhtmltopdf 系列2 php 使用html 生成 pdf word 项目有个需求 想同时生成word 和pdf 并且对pdf要求比较高 为了一劳永逸 决定写成html 分别转成word 和pdf 系统环境 windows10 小皮面板&#xff08;php8&#xff09; linux centos 7.9 宝塔&…

Git常用命令大全:高效开发必备

目录 常用Git命令清单 1. 新建代码库 2. 配置 3. 增加/删除文件 4. 代码提交 5. 分支 6. 标签 7. 查看信息 8. 远程同步 9. 撤销 10. 常用操作组合 修改本地分支名和远程分支名 附录&#xff1a;Git命令思维导图 安装gitlab 常用Git命令清单 一般来说&#xff0…

AJAX入门-URL

本系列可作为前端学习系列的笔记&#xff0c;代码的运行环境是在VS code中&#xff0c;小编会将代码复制下来&#xff0c;大家复制下来就可以练习了&#xff0c;方便大家学习。 HTML、CSS、JavaScript系列文章 已经收录在前端专栏&#xff0c;有需要的宝宝们可以点击前端专栏查…

【深度学习新浪潮】什么是具身智能?

具身智能(Embodied AI)是人工智能与机器人技术深度融合的前沿领域,其核心是通过物理实体与环境的实时交互闭环,实现感知-认知-决策-行动的一体化自主进化。这类系统不仅能理解语言指令,更能通过高精度传感器(如触觉、视觉、力觉融合)感知物理世界,依托多模态大模型完成…

动画蓝图与动画状态机:从 Unity Mecanim 到 Unreal Animation Blueprint 的一把梭

动画蓝图与动画状态机&#xff1a;从 Unity Mecanim 到 Unreal Animation Blueprint 的一把梭这篇是系列的第一篇。目标很简单&#xff1a;把 Unreal 的 Animation Blueprint 和 Unity 的 Animator Controller&#xff08;Mecanim&#xff09; 放在同一张桌子上&#xff0c;系统…

实战案例:数字孪生+可视化大屏,如何高效管理智慧能源园区?

摘要&#xff1a; 当智慧遇上能源&#xff0c;一场管理革命正在悄然发生。想象一下&#xff1a;一个占地千亩的能源园区&#xff0c;光伏板、储能站、风力机组星罗棋布&#xff0c;传统管理模式下&#xff0c;数据分散、响应滞后、故障频发... 但某园区引入“数字孪生可视化大屏…

Django 从环境搭建到第一个项目

作为一名刚接触 Django 的开发者&#xff0c;我在学习过程中整理了这份入门笔记&#xff0c;涵盖 Django 框架基础、环境搭建、第一个项目创建以及核心配置&#xff0c;希望能为同样刚入门的小伙伴提供清晰的学习思路。 一、Django 框架基础认知 在开始实际操作前&#xff0c…

机器学习实操项目02——Pandas入门(基本操作、创建对象、查看数据、数据选择、处理缺失数据、数据合并、数据分组、时间序列、绘图、文件导出)

上一章&#xff1a;机器学习实操项目01——Numpy入门&#xff08;基本操作、数组形状操作、复制与试图、多种索引技巧、线性代数&#xff09; 下一章&#xff1a; 机器学习核心知识点目录&#xff1a;机器学习核心知识点目录 机器学习实战项目目录&#xff1a;【从 0 到 1 落地…

springboot超市货品信息管理系统

开发环境开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Mave…

c# .net中using的使用

using示例代码 示例代码1&#xff1a; using HttpContent httpContent new StringContent(postData, Encoding.UTF8);示例代码2&#xff1a; using (var process Process.Start(info)) {output process.StandardOutput.ReadToEnd(); }示例代码1写法&#xff1a; using HttpC…

STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失

前言 大家好&#xff0c;这里是 Hello_Embed。上一篇我们用中断方式实现了 UART 收发&#xff0c;但发现一个关键问题&#xff1a;若 CPU 在处理其他任务时未及时重新使能接收中断&#xff0c;新数据会覆盖旧数据&#xff0c;导致丢失。本篇的核心改进方案是 ——“中断接收 环…