离线优先与冲突解决:ABP vNext + PWA 的边缘同步

🛰️ 离线优先与冲突解决:ABP vNext + PWA 的边缘同步



0. 环境 🚀

# 后端
dotnet tool update -g Volo.Abp.Cli
abp new Acme.SyncDemo -t app --database-provider ef
cd Acme.SyncDemo
abp add-package Volo.Abp.AspNetCore.SignalR
dotnet add Acme.SyncDemo.HttpApi.Host package prometheus-net.AspNetCore
dotnet build

# 前端
npm create vite@latest pwa-edge-sync -- --template react-ts
cd pwa-edge-sync
npm i idb workbox-window workbox-routing workbox-strategies workbox-background-sync yjs diff-match-patch
npm run dev

# 压测与E2E(可选)
npm i -g k6@latest
k6 run scripts/k6-push.js

1. 场景与目标(痛点→指标)🎯

  • 🛠️ 典型场景:巡检/质检、外勤单据、低信号工位

  • SLO

    • ✅ 离线录入/编辑 100% 可用
    • ⚡ 恢复联网后回放延迟 p95 ≤ 3s
    • 🧩 冲突可解释/可回滚/可审计(字段级 LWW/OT/CRDT)

2. 架构与时序 🗺️

2.1 总体架构

ABP Backend
Edge/PWA
Sync API 🔌 /push /pull
Conflict Service 🧮 LWW/OT/CRDT
EF Core DB 🧱
Outbox 📦 增量事件
Prometheus 📈 /metrics
UI 🧑‍💻
Service Worker 🧱
IndexedDB 🗃️ state/oplog/meta
Sync Engine 🔄

2.2 写入-回放-合并-追平时序

UI 🧑‍💻 Service Worker 🧱 IndexedDB 🗃️
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kookoos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值