C S模式充電樁管理軟體向微服務架構演進

2021-08-01 19:13:26 字數 1922 閱讀 8204

微服務架構在最近兩年炒比較火熱,最近有個朋友在做充電樁管理軟體,該軟體是兩年前採用c/s模式開發的 ,主要client(ui)和 server端兩個層次,中間採用資料庫共享方式進行通訊,如下圖所示為充電樁管理軟體的客戶端介面:

這類應用是傳統的c/s模式,適合於30個場站以下的管理和應用,在當前充電樁整體規模不大的情況下,還是勉強可以支撐試用的,最近我這位朋友遇到乙個新需求,要接入到第三方的管理平台(b/s模式)中,要求提供標準的rest介面。由於傳統的應用開發者(尤其是以嵌入式為主的開發工程師),對rest 等型別的網際網路介面存在一定的陌生,在向我諮詢後,我們仔細分析了該項目的需求,我給他推薦了向微服務框架演進的方法,最後他們順利的接入到第三方的管理平台中,或者整合資質。本文將主要闡述我們將傳統的充電樁管理軟體向微服務框架演進的經驗,以下分幾個層面進行拆分和演進:

1\業務閉環、顆粒度細分、rpc互動

原來的充電樁管理軟體主要劃分為兩個模組(ui和後台伺服器),ui主要用於客戶資訊維護、充值、充電樁狀態監視等功能,後台伺服器主要負責充電樁接入、鑑權、執行任務、資料採集等功能。通過對這兩個模組進行分析,我們將 ui和後台伺服器都進行了拆分。

ui拆分成三個模組(本地大屏監控、本地運營客戶端 、中心監控客戶端,通過許可權進行區分),本地大屏監控直接從本地服務程式中獲取資料,部署在場站,用於實時反饋充電樁狀態(忙、閒狀態),便於客戶快速的定位到空閒的充電樁進行充電。本地運營客戶端主要用於本地充值、場站經營狀況管理等功能。中心監控客戶端是乙個功能全集,用於監控所有的充電樁狀態、經營情況等。

後台伺服器拆分成接入管理、鑑權、計畫、事件四個模組。接入管理負責充電樁的接入和心跳維護,採用boost asio實現,支援30000+充電樁接入,心跳週期為15秒一次。鑑權:對裝置進行認證管理,剔除非法的裝置、並對裝置進行分域管理。計畫:負責根據客戶定製的計畫,定期執行任務或者採集資料。事件: 負責收集和儲存充電樁的各類事件,並上報。

拆分的各個模組都支援按域動態擴容,在傳輸層支援主備ip備份策略,各個模組之間採用google protobuf rpc進行交付通訊。

2\業務服務下沉、本地自治、多級緩衝

為了防止因為wlan網路異常影響,我們做了多級防護,多級緩衝,保障資料不丟失,業務不中斷。

a,所有模組均支援下沉部署,模組間通過標識和型別進行識別。

b,本地採用sqlite資料庫進行本地業務最小化自治,sqlite保持裝置和使用者最小資訊,支援後付費同步功能,當wlan側出現異常,本地可保障業務基本執行,不中斷,wlan恢復後可自動同步資訊到資料中心。

c,對於關鍵資料採用確認機制和多重緩衝,例如wlan網路異常,在本地儲存60+天以上的業務資料緩衝logs, wlan恢復後,自動同步到資料中心。

d,資料進行層層過濾,每層過濾後將最小量級資料上報給上一層,避免資料中心資料庫爆裂式增長,滿足核心基礎資料要求為準要。

3\go語言嘗試、統一應用層介面

除了在自身架構上的調整,為了提供介面給第三方應用,按照要求,我們採用rest介面,並將服務層和應用層進行徹底隔離,統一介面,按域區分不同的應用和許可權,支援多應用接入。因此我們新拆分的中心監控客戶端進行調整,也通過統一的介面模組接入到後台服務中,不過我們對域進行保留,0x00~0x80的域認為是自己系統的裝置。其他域開放給第三方應用。在這個過程中第一次推薦採用go語言實現,引用了beego開源**作為基礎框架,同時支援websocket介面方式發布即時狀態、告警和事件。在後續朋友的開發過程中,足以證明,go語言天生就是做網際網路的開發語言,極高的開發速率。為了防止統一介面管理模組存在效能瓶頸,我們採用zookeeper + nginx 作為集群基礎框架,提高穩定性,便於後續輕鬆擴容。

經過2個月的架構調整,整套系統按期交付,即相容了老系統的基礎模組,又完成了和第三方應用的業務對接,做到了業務上的平滑過渡,效能有原來的30個場站規模,演進成可以平滑擴容的架構,初步預估可以做到10萬個充電樁的接入和業務運營。經過這個專案歷練,朋友在微服務框架上有了全新的認識,也被go語言的高校的開發效率和樸質的程式設計規範折服。

C S模式充電樁管理軟體向微服務架構演進

微服務架構在最近兩年炒比較火熱,最近有個朋友在做充電樁管理軟體,該軟體是兩年前採用c s模式開發的 主要client ui 和 server端兩個層次,中間採用資料庫共享方式進行通訊,如下圖所示為充電樁管理軟體的客戶端介面 這類應用是傳統的c s模式,適合於30個場站以下的管理和應用,在當前充電樁整...

管理軟體向「平台化」發展

管理軟體正迎來第三次革命。日前,在由it權威研究機構計世資訊 ccwre search 主辦的 管理軟體技術發展趨勢研討會 上,與會代表一致認為 管理軟體第三次革命的主題是 平台化 即管理軟體向業務基礎軟體平台遷移。管理軟體此前經歷了兩次技術變革。第一次是從dos平台轉移到windows平台 第二次...

管理軟體的生產模式

重溫erp的生產計畫部分,通常把生產流程劃分為連續型生產 重複性生產 基於庫存的生產 基於訂單的裝配和基於訂單的設計,儘管不是很嚴格的定義,卻也不失為一種好的歸類。聯想起管理軟體的生產問題,較之it技術的飛速發展,其生產率並沒有顯著的提公升。企業對資訊化的渴求與管理軟體實施與服務成本的居高不下,是目...