【解決方案】智慧物聯網在線課堂系統
1. 項目概述
- 目標:搭建一個面向全球學習者與中文教師的在線一對一/小班課教學平臺,支持預約/即時上課、AI 課程生成與口語陪練、錄制回放、支付訂閱、評價反饋等全流程。
- 技術路線:后端采用 Spring Cloud 微服務 架構,容器化部署到 Kubernetes,面向多端(Web、iOS/Android)統一暴露 API 網關;音視頻用 WebRTC/第三方服務;AI 課程&口語陪練通過 LLM 推理服務(接三方)。
- 目標 SLO:P95 接口 < 300ms、99.9% 月可用性、核心交易鏈路失敗率 < 0.1%。

2. 需求詳述(產品視角 → 可交付能力)
2.1 學習者側
- 賬號體系:郵箱/手機號/三方登錄(OAuth)注冊登錄;個人資料、學習目標、水平與興趣標簽;學習檔案(歷史課程、進度、評價、筆記、發票/賬單)。
- 課程發現:教師多維篩選(語言、領域、風格、價格、評級、可用時間);推薦位(基于偏好/歷史/轉化);教師詳情(視頻、評價、可預約時間)。
- 預約/即刻上課:即時連接在線教師;預約單次/周期課;課前提醒、沖突校驗、時區適配;取消與退款策略。
- 課堂:一對一/小組課高清音視頻、互動白板/屏幕共享/文檔協作/實時標注;錄制回放;AI 實時/課后轉寫與要點總結、練習生成。
- 作業與計劃:布置-提交-批改;個性化學習計劃與進度可視化。
- AI 能力:【待定/可對接LLM】
- AI 課程預習包:按水平/話題/語法點/場景自動生成生詞、句型、對話、發音與跟讀、測評;
- AI 口語陪練:基于預習內容進行對話練習、糾錯、點評與錯題本。
- 支付與訂閱:套餐訂閱、按次付費、禮品卡、多幣種與多支付渠道、發票、退款與風控。
- 社區與內容:學習社區、語言伙伴匹配、文化內容、線上活動。
2.2 教師側
- 入駐與認證:資料、資質上傳、視頻面試、培訓/考核。
- 主頁與供給:教學視頻、特色標簽、授課科目/價格/時段設置。
- 教學管理:課表、學生管理、收入統計、素材庫;課后反饋與評分互動;提現與稅務信息。
2.3 平臺側(運營/風控/監控)
- 質量監控與投訴處理、教師準入與評級、內容審核;
- 交易/退款/分賬、對賬與結算;
- 數據分析(轉化、留存、ARPU、GMV、課程質量分)。
3. 總體架構(Spring Cloud)
[客戶端 Web/iOS/Android]
│
[API Gateway]
│
┌───────────────平臺基礎服務────────────────┐
│ Config Server | Service Registry (Eureka/Nacos)│
│ Auth & OAuth2 | Circuit Breaker (Resilience4j) │
│ API Docs (SpringDoc) | Tracing (OTel) │
└────────────────────────────────────────────────┘
│
┌────────────────────────業務微服務────────────────────────┐
│ 用戶/賬號 | 教師 | 學習者檔案 | 課程與排程 | 預約/日歷 │
│ 教室/RTC | 白板協作 | 作業 | 支付/訂閱/結算 | 發票/對賬 │
│ 評價反饋 | 通知(站內/郵件/短信/Push) | 搜索與推薦 │
│ AI-內容生成 | AI-口語陪練 | 內容與教材 | 社區與活動 │
└────────────────────────────────────────────────────────┘
│
┌───────────數據與中臺───────────┐
│ PostgreSQL | Redis | Kafka/RabbitMQ | S3/OSS | ES/OpenSearch │
│ Feature Store(推薦) | Data Lake/ETL | Spark/Flink(離/實時) │
└─────────────────────────────────────┘
│
第三方:WebRTC/第三方、支付(Stripe/PayPal/Alipay/WeChat Pay)、
郵件(SendGrid/Mailgun)、客服(Zendesk)、埋點(Mixpanel/GA)
4. 微服務拆分與職責(建議首期 14 個,可演進)
- auth-service:登錄注冊、JWT/OAuth2、SAML/社交登錄;驗證碼/設備指紋;權限與角色。
- user-profile-service:用戶/教師統一賬戶、資料、偏好、合規(GDPR/未成年人)。
- teacher-service:入駐認證、主頁、可授課程與時段、評級、收入與結算指標。
- learner-service:學習檔案、能力評測、學習計劃與可視化、筆記與標簽。
- course-service:課程定義(類型、價格、小班容量)、教材綁定、系列課/專題課。
- schedule-service:可用時段、預約/改期/取消、時區算法、沖突檢測、提醒。
- classroom-service:教室編排、WebRTC/第三方 會話、錄制、回放索引;白板與協作網關。
- homework-service:作業、提交、批改、評分、AI 輔助批改。
- payment-service:訂閱/按次/優惠券/禮品卡;支付路由、退款、分賬、對賬、稅務發票。
- review-service:課程/教師評價、申訴與屏蔽、內容審核。
- notification-service:站內信/郵件/短信/Push;多語言模板與 A/B。
- search-reco-service:檢索(ES)、召回/排序、特征埋點與特征倉;個性化推薦。
- ai-content-service:AI 課程預習包生成、轉寫總結與練習生成;模型路由與緩存。
- ai-speaking-buddy-service:口語陪練會話編排、評分與錯題本、對話上下文存儲。
橫切:file-service(S3/OSS)、reporting-service(BI 指標聚合)、admin-ops-service(運營后臺)。
5. 關鍵業務流程(時序簡述)
5.1 學員預約課
- 學員在前端篩選教師 → 2) 調用 search-reco 獲取列表 → 3) 點進教師頁調用 teacher + schedule 拉取空閑時段
- 學員選擇時段 → 5) schedule 進行沖突校驗/鎖槽 → 6) 如付費課調用 payment 創建支付意圖 → 7) 支付成功 → 8) 生成預約單&提醒 → 9) 課前 10 分鐘通知課堂入口(classroom)。
5.2 即時上課
- 學員進入“即刻上課” → 2) teacher 返回在線可接單老師 → 3) classroom 為雙方分配 RTC 房間 → 4) 結束后 ai-content 觸發轉寫與總結 → 5) review 評價。
5.3 AI 課程預習包
- 教師/學員選擇級別/主題/語法點 → 2) ai-content 調用 LLM 生成(含詞句/對話/音頻 TTS/測評項) → 3) 入庫并可分享給課堂。
5.4 AI 口語陪練
- 學員選擇預習包 → 2) ai-speaking-buddy 基于內容開展多輪對話 → 3) 實時糾錯與評分 → 4) 課后生成錯題本與要點回顧。
5.5 支付
A. 按次/套餐支付(同步+異步)
POST /payments/orders(校驗業務、凍結時段/庫存→下單)- 風控打分(設備指紋、IP、風險名單、頻控)→ allow/review/deny
POST /payments/{orderId}/pay→ 調用通道創建 PaymentIntent/預下單- 前端完成支付(H5/Cashier/SDK)
- Webhook 命中 → 驗簽→ 冪等 → 更新
payment_order& 寫入payment_transaction - 成功后發布事件
payment.success(Kafka)→ schedule 確認預約、classroom 生成入場券、notification 發送憑證 - 失敗/取消 → 釋放鎖槽/庫存
B. 訂閱(自動續費/失敗重試)
- 模型:
subscription(id, user_id, plan_id, status, current_period_start/end, cancel_at) - 續費策略:D0、D1、D3 重試(階梯換通道);失敗最終轉 PAST_DUE 并降級權益。
- 升降級按差額/按天折算(prorate),生成調整單據與分錄。
C. 退款(全額/部分)
- 觸發:用戶取消/老師缺席/質量問題/風控拒付;
- 流程:
POST /payments/{orderId}/refund(可多次部分退款)→ 調用通道 → webhook 確認 →payment_transaction記 REFUND → 賬本紅沖。 - 規則引擎:時間窗(上課前/后)、最低退款額、手續費承擔方。
D. 分賬與提現(教師)
- 實時分賬或 T+N 批量結算(推薦):
- 收入構成:學費(含匯率)、平臺傭金、支付通道費、稅、活動補貼。
- 結算批:
payout_batch(period=YYYY-MM)每日或每周滾動預覽,月度出帳。
- 提現:支持銀行/PayPal/Stripe Connect,提現前做 KYC/KYB 審核與制裁名單校驗(OFAC/國別規則)。
E. 對賬(三方/內部)
- 內部對賬:
payment_transaction?ledger_entry(1:≥1)保證平衡。 - 外部對賬:按通道拉取對賬單(API/文件),生成
reconciliation_result,自動匹配差異:漏單、重復記賬、金額不符、匯率偏差;可人工復核。 - 異常自動開工單(
admin-ops-service)并回寫處理結果。
6. 技術選型(Spring Cloud 生態)
- 網關:Spring Cloud Gateway + Redis RateLimiter
- 注冊配置:Nacos(或 Eureka+Spring Cloud Config)
- 通信:OpenFeign(內網)、gRPC(性能敏感鏈路可選)
- 熔斷限流:Resilience4j
- 消息:Kafka(業務事件/日志)、RabbitMQ(事務消息/延遲任務)
- 數據:PostgreSQL(主業務)、Redis(緩存/會話/隊列)、ES(檢索)、S3/OSS(錄制與素材)
- 安全:Spring Security OAuth2、Keycloak(可選統一認證)、Vault(密鑰)
- 可觀測:Micrometer + OpenTelemetry → Tempo/Jaeger(Trace)、Prometheus(Metrics)、Loki(Log)、Grafana(看板)
- DevOps:K8s(HPA/PodDisruptionBudget/NodeAffinity)、ArgoCD/GitOps、GitHub Actions/Jenkins
- 前端:Web(React+TS)、移動(Flutter/React Native);課堂端集成 WebRTC/第三方 SDK
- AI:LLM 網關(自研/云廠商,支持多模型路由與敏感詞審查);TTS/ASR(可選科大訊飛/Google/Whisper)
7. 第三方集成與邊界
- 音視頻/白板:優先采用 第三方 套件(RTC、錄制、白板);
- 支付:面向全球(Stripe/PayPal)+ 中國區(Alipay/WeChat Pay);統一支付路由與風控層。
- 消息/郵件:SendGrid/Mailgun、Twilio/阿里云短信;多語言模板。
- 在線客服:美恰。
8. 安全與合規
- 合規:GDPR/CCPA、未成年人保護、數據跨境(分區部署與最小化傳輸);內容與言論審核。
- 安全:OAuth2/OIDC、MFA、IP/設備指紋、惡意登錄/盜刷防控;
- 隱私:錄制加密存儲(KMS)、URL 限時簽名;最小權限訪問(RBAC & ABAC)。
- 課堂風控:實時違規檢測(音頻/文本);異常拉黑與申訴流程。
9. SRE 與容量規劃【根據成本待定】
- 彈性:K8s HPA 基于 CPU/QPS/自定義指標;RTC 服務獨立節點池。
- 緩存策略:熱點教師與時段緩存、推薦結果短期緩存、支付結果以“消息驅動+補償”。
- 容災:多可用區部署;核心數據庫主從+PITR;對象存儲跨區域復制;消息隊列冗余。
- 灰度:網關級流量分配、金絲雀與 A/B;熔斷降級(AI 與推薦優先降級)。
10. 開發周期和成本
1. 微服務+單網關+常規load balance
周期:4個月
成本:40w
2. K8S POD集群
周期:5個月
成本:50w+