日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

物联网项目-服务端架构优化分析

發布時間:2024/1/1 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 物联网项目-服务端架构优化分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、概述
對于互聯網項目,服務端的壓力總的歸納起來通常為以下兩個方面:

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條數據。

四、架構設計方案

關鍵字:分布式、緩存、大數據存儲

?

說明:

  • 服務端采用微服務的設計、開發方式,分布式的部署。各個模塊可以作為獨立應用,即高內聚,模塊之間通過RPC進行通訊調用,即低耦合。各個子模塊可分開獨立部署,具有很高的橫向擴展能力,提高了請求的并發處理能力和數據處理能力。
  • 網關、注冊中心/配置中心、業務服務都采用多節點部署方式,保證容災的情況下提升了系統性能。
  • 微服務監控中心每隔幾分鐘就會多各個微服務進行掃描探測,檢測服務存活狀態,如發現服務狀態異常,則會發送短信報警。
  • 數據庫根據業務情況進行了拆分,每個業務模塊獨立使用一個數據庫實例,分散(拆分)了整個系統對數據庫的資源占用。數據庫使用讀寫分離技術,進一步降低數據庫壓力。
  • 使用Redis作為數據緩存,對于查詢較多的“熱數據”進行緩存處理,減少了數據庫的壓力。
  • 因使用了分布式的部署方式,各個模塊的應用日志分布在各個服務器上,所以使用日志收集組件,將各個服務器上的日志信息收集到一處,統一查看和歸檔管理。
  • 為應對硬件設備產生的海量數據,使用Hbase和Clickhouse進行存儲
  • 附:

    Hbase介紹:

    傳統的關系型數據庫對數據規模有一定的限制,如果數據規模超過一定的量級,數據庫性能會有明顯下降,這時通常就需要進行分庫分表等操作。分庫分表增加了數據庫設計和軟件設計的復雜程度。但是如果數據量級再往上漲,存儲的復雜度和軟件系統的復雜程度就會直線上升,對于后期的數據庫和軟件系統的維護帶來很大負擔。

    HBase是一個高可靠、高性能、面向列、可伸縮的分布的,基于Hadoop的面向列的NoSQL數據庫,可以提供實時計算的分布式數據庫。提供了對大規模數據的隨機、實時讀寫訪問。HBase 的目標是存儲并處理大型的數據,也就是僅用普通的硬件配置,就能夠處理上千億的行和幾百萬的列所組成的超大型數據庫。

    特點:

    • 不支持join等復雜操作
    • 不支持復雜事務
    • 不存在復雜的表與表之間的關系,只有簡單的插入、查詢、刪除、清空等
    • 單表可以是10億行,上百萬列
    • ......

    ClickHouse簡介:

    ClickHouse是俄羅斯一家公司開源的一個極具"戰斗力"的實時數據分析數據庫,是面向 OLAP(在線分析處理) 的分布式列式數據看系統。輕量級,且不依賴于其他組件。

    特點:

    • 關系型、支持SQL
    • 高性能、高可用
    • 數據量級在PB級別
    • 分布式
    • ......

    適用場景主要有以下幾類:日志數據的行為分析(大數據分析),標簽畫像的分析,數據集市層分析;還可作為存儲引擎集成在了產品內部,應用于知識圖譜作為本體數據存儲,及標簽數據的存儲引擎等。

    ?

    總結

    以上是生活随笔為你收集整理的物联网项目-服务端架构优化分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。