物联网项目-服务端架构优化分析
一、概述
對于互聯網項目,服務端的壓力總的歸納起來通常為以下兩個方面:
1. ? ? 數據處理
1.1 接受請求的能力
1.2 處理請求的能力(響應時間)
?
2. ? ? 數據存儲
2.1 物理介質存儲容量上限
2.2 大量數據的存儲,影響數據處理速度
?
二、物聯網項目特點
網絡環境復雜
由于硬件設備的參與,且硬件有聯網功能,所以網絡情況更加復雜。多種客戶端的出現,也導致系統架構也會相對復雜。
高可用
軟件系統應提供7 * 24小時不間斷服務。服務器一旦宕機,可能會影響用戶使用,甚至數據丟失。
高并發、大流量
硬件設備通常需要定時或實時發送信息到服務端,當硬件設備數量達到一定程度,會需要很大的并發處理能力。
海量數據
客戶端硬件設備發送信息到服務器的頻率較高,所以很容易形成海量的數據信息。如果存儲、管理這些海量數據也成為一個技術難點。
安全環境
由于物聯網項目一般都需要硬件設備能夠訪問互聯網,則服務器提供的服務也暴露于公網,使得服務器的安全風險相對更高。
需求變化快,發布頻繁
如該項目還具有互聯網項目的特點,則為了快速適應市場,滿足用戶需求,軟件更新、發布頻率必然非常高。
?
二、優化分析(都是資源惹的禍)
幾個關鍵字:分離、拆分、集群、緩存、異步、冗余
1、分離
應用與數據(包括數據庫和文件服務)分離;數據讀寫分離;前后端分離(web系統)
2、拆分
業務拆分,將項目的各個模塊(如:用戶、訂單、商品等)拆分為單獨的子項目。(分布式服務、分布式數據庫、分布式文件系統本質上就是拆分)
3、集群
同一個功能(應用或服務)運行、部署在多臺服務器上,以達到改善此功能的性能的目的(集群也是一種冗余)。
4、緩存
根據二八定律,80%的業務訪問集中才20%的數據上。將這些高頻訪問的數據緩存在內存中,將大大提供系統性能。包括:數據緩存、文件緩存(CDN)
5、異步
有些操作比較耗時,卻不需要理解返回結果的業務,可以使用異步方式來處理,減少系統資源占用和阻塞時間。
6、冗余
為了系統提供服務的持續性(7*24小時),或數據避免丟失的風險。一個服務運行在多臺服務器上、相同的數據存儲在多個物理介質。
三、示例目業務情況分析及預估
根據示例項目的業務情況,服務器的壓力主要來自用戶的行為數據上報,即設備端上報的用戶行為數據或設備信息,當設備數量多時,會對服務器接收數據和存儲數據的能力帶來壓力。
用戶數量預估
假設設備數量為 15萬。根據二八定律預估DAU(日活躍用戶數)為3萬。
設備產生的行為數據
如果平均每個設備每天工作30分鐘,每天產生300條左右的記錄。3w設備每天產生900w條數據。
四、架構設計方案
關鍵字:分布式、緩存、大數據存儲
?
說明:
附:
Hbase介紹:
傳統的關系型數據庫對數據規模有一定的限制,如果數據規模超過一定的量級,數據庫性能會有明顯下降,這時通常就需要進行分庫分表等操作。分庫分表增加了數據庫設計和軟件設計的復雜程度。但是如果數據量級再往上漲,存儲的復雜度和軟件系統的復雜程度就會直線上升,對于后期的數據庫和軟件系統的維護帶來很大負擔。
HBase是一個高可靠、高性能、面向列、可伸縮的分布的,基于Hadoop的面向列的NoSQL數據庫,可以提供實時計算的分布式數據庫。提供了對大規模數據的隨機、實時讀寫訪問。HBase 的目標是存儲并處理大型的數據,也就是僅用普通的硬件配置,就能夠處理上千億的行和幾百萬的列所組成的超大型數據庫。
特點:
- 不支持join等復雜操作
- 不支持復雜事務
- 不存在復雜的表與表之間的關系,只有簡單的插入、查詢、刪除、清空等
- 單表可以是10億行,上百萬列
- ......
ClickHouse簡介:
ClickHouse是俄羅斯一家公司開源的一個極具"戰斗力"的實時數據分析數據庫,是面向 OLAP(在線分析處理) 的分布式列式數據看系統。輕量級,且不依賴于其他組件。
特點:
- 快
- 關系型、支持SQL
- 高性能、高可用
- 數據量級在PB級別
- 分布式
- ......
適用場景主要有以下幾類:日志數據的行為分析(大數據分析),標簽畫像的分析,數據集市層分析;還可作為存儲引擎集成在了產品內部,應用于知識圖譜作為本體數據存儲,及標簽數據的存儲引擎等。
?
總結
以上是生活随笔為你收集整理的物联网项目-服务端架构优化分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快解析DDNS 无需公网ip 安全高效
- 下一篇: 折叠屏、智能汽车和HMS:一场关于数字生