?

智能家居硬件控制系統開發案例

admin 開發案例 2018-07-24 05:41:47 1406
智能家居硬件控制系統開發案例
項目簡介 項目為一個用于對智能家居設備進行控制管理的系統,核心是實現對海量設備以及數據的可視化監控,通過APP調用實現用戶對家庭電器的物聯網靈活控制。 
基本架構 整體采用分布式架構,全套部署在阿里云,支持靈活水平擴充服務器以靈活應對可能存在的大量設備的接入。
在線設備數量 承載了10萬臺主控設備的信息采集、控制需求。
并發連接數量 10萬個穩定的長連接,實現對設備的時刻穩定可控。
并發數據量 峰值每秒下發1萬次命令,每秒同時也收到8萬次以上的采集響應,日處理數據請求將達到數百萬次。 
支持協議數量 目前已經實現十多種設備的協議接入。
協議擴展能力 協議兼容型設備可無縫接入。
采用技術
1:最底層接入層:承擔高強度的數據接入壓力。
2:采用了DNS負載均衡+Nginx四層負載均衡+Netty框架實現。
3:DNS負載均衡將請求均衡轉發給多個IP地址。
4:每個IP入口采用Nginx再將連接請求均衡轉發給多臺實際接入服務器。
5:通過多層次的均衡,從根本上防止出現某臺服務器節點故障導致所有服務均不可用的情況。
6:實際在項目中完成了在一臺高性能服務器上承載峰值10萬個設備連接和峰值每秒8萬次以上的調用請求,我們通過對一臺服務器的性能優化,為客戶明顯節約了運營成本。
7:中間層數據處理層:承擔高強度的數據分析運算壓力。
8:SpringBoot+SpringCloud實現,接收由下層提交的數據進行處理。我們通過使用消息隊列服務,實現了靈活的系統解耦9和運算壓力的削峰填谷,多到處理不過來的數據可以在消息隊列里海量堆積,直到業務壓力降低以后再處理掉,避免了突發的壓力壓垮服務器導致服務不可用的可能,也確保了數據在任何情況下都不會丟失。
9:數據庫與存儲層:承擔高強度的數據寫入壓力和存儲壓力
10:采用MySQL數據庫集群存儲各個設備的信息,業務信息。
11:采用Redis集群作為緩存存儲需要頻繁讀取的數據。
12:采用了阿里云提供的大數據存儲方案HBase對每天數十GB的數據進行存儲,再采用Spark對累計以TB計的數據進行大數據分析,挖掘其中存在有效信息。
13:最頂層web業務層:面向用戶,提供給用戶使用。
采用成熟的SpringMVC+Mybatis方案,進行靈活的前后端分離設計,目前已經成功接入了APP控制,未來將擴展到web端網頁控制。
(
With mature for SpringMVC + Mybatis scheme, flexible separation front end design, has successfully connected to the APP control at present, the future will be extended to the web site control.)

?