高效能IOT伺服器實現之路

穆書偉發表於2018-10-16

高效能IOT伺服器實現之路

市場動態

物聯網市場在2018年第一季度/第二季度出現了意想不到的加速,並將使用的物聯網裝置總數提升至7B。這是IoT Analytics最新“ 物聯網和短期展望狀態 ”更新中的眾多發現之一。

全面的公司,尤其是物聯網軟體,雲和服務公司,遠遠超出了收入預期。Microsoft Azure和Amazon AWS分別增長了93%和49%(在過去12個月內),其物聯網部分對增長做出了重大貢獻。但像C3IoT這樣的小型企業也報告了今年收入增長60%。

全球連線裝置數量:17B

目前全球使用的連線裝置數量超過170億,物聯網裝置數量達到70億(此數字不包括智慧手機,平板電腦,膝上型電腦或固定電話)。

高效能IOT伺服器實現之路

全球物聯網裝置數量:7B

全球連線增長主要由物聯網裝置驅動 - 無論是在消費者方面(例如智慧家居)還是在企業/ B2B方面(例如,連線機器)。預計到2020年,活躍的物聯網裝置數量將增加到100億,到2025年將增加到220億。這些物聯網裝置包括所有活動連線,不考慮過去購買但不再使用的裝置。

高效能IOT伺服器實現之路

從裝置連線的角度來看,動態變化非常大

  1. 無線個人網路(WPAN):

    最大數量的物聯網裝置通過短程技術(WPAN)連線,通常在最大範圍內不超過100米。這些包括藍芽連線裝置,如耳機,還有Zigbee和Z波連線裝置,這些裝置大多可以在智慧家居中找到,例如,用於連線煙霧報警器或恆溫器。

  2. 無線區域網(WLAN)

    另一大類是無線區域網,覆蓋長達1公里的連線。Wi-Fi是這一類別中最常見的標準,並且看到了巨大的增長,主要是通過使用家庭助理,智慧電視和智慧揚聲器,但也越來越多地用於工業等工業環境中(儘管它繼續扮演次要角色)在這些設定中與其他技術相比)。

  3. 低功耗廣域網(LPWAN)

    預計未來物聯網裝置數量增長的很大一部分將來自低功率廣域網。到2025年,預計將通過LPWAN連線超過20億臺裝置。該技術承諾極高的電池壽命和超過20公里的最大通訊範圍被三個主要競爭標準Sigfox,Lora和NB-IoT使用,這些標準目前正在全球範圍內推廣,已有超過2500萬臺裝置現在連線,其中大部分都是智慧電錶。

  4. 有線

    當他們想到物聯網時,很少有人會想到有線連線。但是,在許多設定中,有線裝置連線仍然是最便宜和最可靠的選擇。特別是在工業環境中,現場匯流排和乙太網技術在很大程度上使用有線連線,預計在未來幾年內仍將這樣做。

  5. 蜂窩/ M2M

    2G,3G和4G技術長期以來一直是遠端裝置連線的唯一選擇。隨著LPWA和5G的增長勢頭,預計這些傳統蜂窩標準將失去新技術的份額,因為它們為許多終端使用者提供了更有利可圖的機會。

  6. 5G

    在美國,第一個預標準的5G網路將在今年年底之前為住宅和小型企業使用者提供固定無線接入(FWA)服務。雖然在2020年批准最終標準後,將有更多的用例成為目標,但我們應該在明年看到第一批採用者並確實希望從那裡快速增長。

    5G是萬用字元。該技術在2018年仍處於開發階段,通過其龐大的頻寬和極低的延遲來承諾連線的新時代,現在由政府,特別是中國大力推廣。為了將技術創新的均衡從美國和歐洲轉向中國,中國政府認為5G的採用是一種競爭資產。

  7. 無線鄰域網(WNAN)

    無線鄰域網(WNAN)在通訊範圍方面處於WLAN和諸如蜂窩的遠端技術之間。該技術的典型支持者包括網狀網路,如Wi-Sun或JupiterMesh。在某些情況下,該技術被用作LPWA / Cellular的替代品(例如,在公用事業領域網路中),並且在其他情況下用作互補元件(例如,用於在沒有其他任何東西到達的深處進行計量)。

  8. 其他

    其他技術,如衛星和非機密專有網路將繼續在物聯網中發揮作用,儘管與其他技術相比較小。

全球物聯網市場:2018年的市場價為151億美元,預計到2025年將增長至15.67億美元

目前的市場情緒和短期前景非常樂觀。隨著越來越多的資料轉移到雲端,新的物聯網應用程式進入市場,分析越來越重要,軟體和平臺將繼續推動市場的發展。 隨著物聯網裝置數量的增加推動銷售,但硬體利潤率普遍下降,連線和硬體的12個月前景保持穩定。一些硬體專業提供商(例如NVIDIA)似乎不需要硬體商品化。隨著LPWA技術剛剛推向全球市場,而5G還沒有大規模準備就緒,連線播放器預計將在2019年及之後的幾年內出現差距。

高效能IOT伺服器實現之路

高效能IOT伺服器實現之路

全球物聯網市場(終端使用者在物聯網解決方案上的支出)預計將從2017年增長37%至151億美元。由於物聯網的市場加速(如上所述),這些估計值已向上修正,現在預計到2025年總市場將達到1567億美元。

目前的物聯網市場趨勢

今天的市場環境極具活力,可以觀察到幾十種趨勢,包括邊緣到雲整合,TSN連線以及物聯網和區塊鏈試驗。對於此版本的物聯網狀態報告,IoT Analytics的分析師團隊總結了50個這樣的見解。

例如,Insight 32強調雲供應商現在越來越多地製作自己的雲就緒硬體,以提高物聯網裝置與在公共雲或私有云中儲存和分析的資料之間的互操作性和效能。領先的物聯網雲提供商微軟,亞馬遜和谷歌最近都宣佈了自己的硬體。

以下是該報告的摘錄,突出了該具體趨勢並提供了相關的證據。 如果從雲到硬體的這些轉變將對某些現有硬體播放器(例如閘道器提供商或晶片製造商)構成威脅,還有待觀察。物聯網分析將繼續監控此趨勢和其他趨勢。

高效能IOT伺服器實現之路

研究方法和進一步的資訊

本文中的所有見解和圖表均來自“ 物聯網和短期展望2018 ”報告,這是一份56頁的深度市場報告,可供物聯網分析訂閱客戶使用。該報告的目的是告知我們的訂閱者市場中發生的事情,使他們始終站在創新的最前沿,最終為他們的公司做出正確的決策。

該報告包括50個關於當前市場環境的見解以及按行業,技術堆疊和地區劃分的市場細分。通過領導100多次專家訪談,參加16次行業會議,聽取各種簡報和分析師電話會議,分析師團隊在過去6個月中發現了每個見解和示例點。

IOT技術窺探

以上這些內容,作者作為一個開發人員,並不是一個投資人員和創業先鋒。並不太關係這些具體細節。我所關心的是如何用技術去實現或者模擬一個支援百萬連結的IOT伺服器,並不嚴謹,僅做大家參考。

所需技術:

  • MQTT

    MQTT由Andy Stanford-Clark(IBM)和Arlen Nipper(Eurotech,現為Cirrus Link)於1999年開發,用於監測穿越沙漠的石油管道。目標是擁有一個頻寬有效且使用很少電池電量的協議,因為這些裝置是通過衛星鏈路連線的,當時這種裝置非常昂貴。 **與HTTP及其請求/響應範例相比,該協議使用釋出/訂閱體系結構。**釋出/訂閱是事件驅動的,可以將訊息推送到客戶端。中央通訊點是MQTT代理,它負責排程傳送者和合法接收者之間的所有訊息。向代理髮布訊息的每個客戶端都在訊息中包含一個主題。**主題是代理的路由資訊​​。**每個想要接收訊息的客戶端都訂閱某個主題,並且代理將具有匹配主題的所有訊息傳遞給客戶端。因此,客戶不必彼此瞭解,他們只通過主題進行通訊。該架構支援高度可擴充套件的解決方案,而不依賴於資料生產者和資料使用者。

高效能IOT伺服器實現之路

MQTT釋出/訂閱架構

與HTTP的區別在於客戶端不必提取所需的資訊,但是在有新內容的情況下,代理會將資訊推送到客戶端。因此,每個MQTT客戶端都與代理具有永久開啟的TCP連線。如果此連線在任何情況下中斷,MQTT代理可以緩衝所有訊息,並在它重新聯機時將它們傳送到客戶端。 如前所述,MQTT中用於分派訊息的核心概念是主題。主題是一個簡單的字串,可以有更多的層次結構級別,用斜槓分隔。用於傳送起居室的溫度資料的示例主題可以是房屋/起居室/溫度。一方面,客戶端可以訂閱確切的主題,或者另一方面使用萬用字元。對房屋/ + /溫度的訂閱將導致所有訊息傳送到先前提到的主題房屋/起居室/溫度以及在起居室的地方具有任意值的任何主題,例如房屋/廚房/溫度。加號是單級萬用字元,只允許一個層次結構的任意值。如果您需要訂閱多個級別,例如訂閱整個子樹,還有一個多級萬用字元)。它允許訂閱所有底層層次結構級別。比如房子/#訂閱以house開頭的所有主題。

  • Netty

    Netty是 一個非同步事件驅動的網路應用程式框架, 用於快速開發可維護的高效能協議伺服器和客戶端。

高效能IOT伺服器實現之路

Netty是一個NIO客戶端伺服器框架,可以快速輕鬆地開發協議伺服器和客戶端等網路應用程式。它極大地簡化並簡化了TCP和UDP套接字伺服器等網路程式設計。

“快速簡便”並不意味著最終的應用程式會受到可維護性或效能問題的影響。Netty經過精心設計,具有豐富的協議,如FTP,SMTP,HTTP以及各種二進位制和基於文字的傳統協議。因此,Netty成功地找到了一種在不妥協的情況下實現易於開發,效能,穩定性和靈活性的方法。

這個可以看下我的部落格和github網址,比較淺顯,大神忽略。持續更新中...!

部落格園出處:www.cnblogs.com/sanshengshu…

github出處:github.com/sanshengshu…    

個人部落格出處:sanshengshui.github.io/

  • Kafka

高效能IOT伺服器實現之路

ApacheKafka®是一個分散式流媒體平臺。這到底是什麼意思呢?

流媒體平臺有三個關鍵功能:

  • 釋出和訂閱記錄流,類似於訊息佇列或企業訊息傳遞系統。
  • 以容錯的持久方式儲存記錄流。
  • 記錄發生時處理流。

Kafka通常用於兩大類應用:

  • 構建可在系統或應用程式之間可靠獲取資料的實時流資料管道
  • 構建轉換或響應資料流的實時流應用程式

要了解Kafka如何做這些事情,讓我們深入探討Kafka的能力。

  • Redis

  • MySQL

技術輪廓圖:

高效能IOT伺服器實現之路

其他

關於IOT市場與技術模擬詳解到這裡就結束了。

原創不易,如果感覺不錯,希望給個推薦!您的支援是我寫作的最大動力!

下文會大家逐步用Netty實現MQTT協議的IOT伺服器。

版權宣告:

作者:穆書偉

部落格園出處:www.cnblogs.com/sanshengshu…

github出處:github.com/sanshengshu…    

個人部落格出處:sanshengshui.github.io/

相關文章