說明
在基於Docker的運行基礎和微服務的架構之後,自然會走向分布式的存儲和計算方式。分布式的好處很明顯,但是也更加復雜了。我想對於多功能的開發,以及多任務的運行管理會自然的被設計者著重考慮。
內容
以最近剛剛完成的一個同步任務為例,有三方面體會:
- 1 依賴。服務間、變量間都會有依賴,這些依賴會隨著任務的多樣化變得復雜,超出人的處理范圍。這塊我的解決方案是基於圖庫和算法來完成依賴的存儲、處理和分析。這個會排到更後面解決。
- 2 集成。任務是松耦合的,並且是基於微服務的,意味著其執行不是高可靠的。所以在程序與程序之間,邏輯與邏輯之間會分割開,但又要銜接。因此會產生很多額外的管理邏輯。這塊我的方案是SCLC,第一這次的任務邏輯已經足夠復雜,使用SCLC來實驗正好。SCLC本質上是將操作分的更細,但是又通過適當的組合將復用的組合動作整合起來。並可以為使用者提供足夠靈活和清晰的控制。代價是抽象並規范通用操作在一開始會消耗很多時間。
- 3 管理。這個問題是眼前最直觀的,通過獨立的、手動的啟動容器,會產生越來越多的”線頭“,很快就會逼著我完成整合。
本篇僅討論管理方面的一些點
1 案例描述
這個案例其實比較復雜的,原因是基礎數據不受控,而且數據量比較大。
簡單來說:
- 1 主要更新表A。表A是實體和文書的關系表,表A的更新方式是先刪後插。
- 2 表A變化時,需要遍歷其關聯的實體名稱E、文書D以及結構化S字段。
- 3 S表是進行分表的,所以大約要搜索30張表。