天天看點

從零搭建高性能物聯網平台及物聯網解決方案

作者:碼農的爐竈社

[微笑]:訴苦是一件最沒意義的工作,假如其實難以忍受周圍的情形,那就暗自全力練好本事,然後跳出誰人圈子

從零搭建高性能物聯網平台及物聯網解決方案

一、基本介紹

IoT Technical Guide --- 從零搭建高性能物聯網平台及物聯網解決方案和Thingsboard源碼分析 ✨ ✨ ✨ (IoT Platform, SaaS, MQTT, CoAP, HTTP, Modbus, OPC, WebSocket, 物模型,Protobuf, PostgreSQL, MongoDB, Spring Security, OAuth2, RuleEngine, Kafka, Docker) 全面介紹物聯網相關技術,對想入IOT技術的小夥伴很有幫助。

二、物聯網技術學習指南

基于物聯網場景和技術的入門和深度學習教程。

物聯網相較于電商、支付和金融等是一個全新的行業。但是物聯網又是一個高速發展的行業,很多人想要從事這個行業,但是不得其法,于是誕生了此教程。

市面上的物聯網技術文章很少,且文章的品質都較為粗淺和不成體系。對于很多開發者來說,入門即是其對某個技術棧的最終了解,一方面是開發者“比較懶”,另一方面是文章作者把物聯網技術寫的太淺,又或者不夠全面。

  • 整理了物聯網學習資源和書籍,涉及計算機網絡、算法和書籍結構、架構、資料存儲等每個細節的知識。
  • 在學習基礎知識的同時,我想要你了解物聯網開發常見的~~黑話~~專業術語,例如數字孿生、裝置影子、通信相關的術語名詞、藍牙、Zigbee、CoAP、MQTT協定等。
  • 在帶你學會MQTT v3.1、v3.1.1和v5.0協定的同時,我還想告訴你目前流行和好用的MQTT 用戶端工具和不同語言的MQTT Client依賴包,最後以實戰的方式帶你實作一個單機百萬的MQTT Broker。
  • 學習上面的知識後,我相信你對物聯網有所了解了,我允許你叉着腰驕傲一下,接下來我會帶你學習從零搭建高性能IoT平台所需要的技術棧、包括架構設計、MQTT Broker搭建、CoAP服務搭建、消息削峰、資料模型設計和資料庫選型等。
  • 最好我帶你編譯和學習目前GitHub上最流行的開源物聯網平台-Thingsboard, 其在GitHub上點贊超過1w+, 學習前沿的物聯網理念和知識,如果你有二次開發的需求,也可溝通聯系我歐!一起探讨學習!
  • ...
  • 讓我們一起愉快的挖坑,挖深坑,哇哈哈。

Part1 物聯網基石和學習之路

Part1-1『 物聯網學習書籍和資源 』

  • 計算機網絡篇
    • 《TCP/IP詳情 卷1: 協定》
    • 《TCP/IP詳情 卷2: 實作》
    • 《TCP/IP詳情 卷3: TCP事務協定、HTTP、NNTP和UNIX域協定》
    • 《圖解TCP/IP (第5版)》
    • 《圖解HTTP》
  • 算法和資料結構篇
    • 《我的第一本算法書》
    • 《算法導論 (第四版))》
  • Java基礎
    • 《Head First Java》
    • 《Effective Java 中文版》
    • 《Java并發程式設計實戰》
  • Spring及SpringBoot系列
    • 《Spring 實戰 (第四版)》
    • 《Spring Boot揭秘》
  • 資料存儲篇
    • 《MySQL必知必會》
    • 《高性能MySQL》
    • 《MongoDB實戰》
    • 《PostgreSQL實戰》
  • 緩存篇
    • 《Redis 開發與運維》
    • 《Redis深入曆險:核心原理與應用實戰》
  • 消息隊列篇
    • 《Kafka權威指南》
    • 《Apache Kafka源碼剖析》
  • 通訊架構篇
    • 《Netty實戰》
    • 《Netty實踐學習案例》
  • Docker&Kubernetes篇
    • 《第一本Docker書》
    • 《深入剖析Kubernetes 52講》

Part1-2『 物聯網内功和基礎知識 』

  • 基礎篇
    • 《女朋友問: 你知道藍牙耳機的原理嗎?》
    • 《直呼: 太細了!拿捏Zigbee協定》
  • 物聯網概念篇
    • 《通信相關的術語名詞》
    • 《數字孿生&裝置影子》
  • 裝置配網篇
    • 《WIFI裝置-EZ配網》
    • 《WIFI裝置-AP3.0配網》
  • CoAP協定
    • 《第一章 - 簡介》
    • 《第二章 - 受限應用協定CoAP》
    • 《第三章 - 消息格式》
    • 《第四章 - 消息傳遞》
    • 《第五章 - 請求/響應的語義》
    • 《第六章 - CoAP URI》
    • 《第七章 - 發現》
    • 《第八章 - 多點傳播CoAP》
    • 《第九章 - 安全CoAP》
    • 《第十章 - CoAP和HTTP的跨協定代理》
    • 《第十章 - 發現》
    • 《第十二章 - 網際網路位址配置設定注意事項(IANA Considerations)》
  • BACnet協定(樓宇自動化與控制網絡)篇
    • 《認識BACnet-第1部分-什麼是BACnet?》
    • 《認識BACnet-第2部分-裝置模型》
    • 《認識BACnet-第3部分-網絡類型》
    • 《認識BACnet-第4部分-服務》
    • 《認識BACnet-第5部分-互操作領域》
    • 《認識BACnet-第6部分-BIBBS》

Part2.『 MQTT學習指南三重境 』

Part2-1『 一重境之求索:MQTT用戶端工具和依賴包 』

  • 《MQTT用戶端桌面工具》
    • 《MQTT.js: JavaScript 編寫,用于 node.js 和浏覽器》
    • 《MQTT X: 跨平台 MQTT桌面用戶端》
    • 《MQTT CLI: 有用的MQTT CLI指令行界面》
    • 《MQTT fx: 基于JavaFx的MQTT用戶端》
  • 《MQTT用戶端庫》
    • 《hivemq-mqtt-client: 高性能 Java 用戶端庫》
    • 《paho.mqtt.java: Eclipse Java 用戶端庫》
    • 《Paho.mqtt.golang: Eclipse Go 用戶端庫》
    • 《MQTT.js: JavaScript 編寫,用于 node.js 和浏覽器》
    • 《paho.mqtt.python: Eclipse Python 用戶端庫》
    • 《paho.mqtt.c: Eclipse C 用戶端庫》

Part2-2『 二重境之實幹:自研MQTT Broker,直通百萬并發用戶端 』

  • 待補充

Part2-3『 三重境之感悟:MQTT v3.1/v3.1.1中文協定文檔 』

  • 《第一章 - 介紹》
  • 《第二章 MQTT控制封包格式 MQTT Control Packet format》
  • 《第三章 - MQTT控制封包》
    • 《3.1 CONNECT - 連接配接服務端》
    • 《3.2 CONNACK – 确認連接配接請求》
    • 《3.3 PUBLISH – 釋出消息》
    • 《3.4 PUBACK – 釋出确認》
    • 《3.5 PUBREC – 釋出收到(QoS 2,第一步)》
    • 《3.6 PUBREL – 釋出釋放(QoS 2,第二步)》
    • 《3.7 PUBCOMP – 釋出完成(QoS 2,第三步)》
    • 《3.8 SUBSCRIBE - 訂閱主題》
    • 《3.9 SUBACK - 訂閱确認》
    • 《3.10 UNSUBSCRIBE – 取消訂閱》
    • 《3.11 UNSUBACK – 取消訂閱确認》
    • 《3.12 PINGREQ – 心跳請求》
    • 《3.13 PINGRESP – 心跳響應》
    • 《3.14 DISCONNECT –斷開連接配接》
  • 第四章 – 操作行為
  • 第五章 – 安全
  • 第六章 – 使用WebSocket
  • 第七章 – 一緻性目标
  • 附錄B - 強制性規範聲明

Part2-4『 三重境之感悟: MQTT v5.0中文協定文檔』

  • 《第一章 - 介紹》
  • 《第二章 MQTT控制封包格式 MQTT Control Packet format》
  • 《第三章 - MQTT控制封包》
    • 《3.1 CONNECT - 連接配接服務端》
    • 《3.2 CONNACK – 确認連接配接請求》
    • 《3.3 PUBLISH – 釋出消息》
    • 《3.4 PUBACK – 釋出确認》
    • 《3.5 PUBREC – 釋出收到(QoS 2,第一步)》
    • 《3.6 PUBREL – 釋出釋放(QoS 2,第二步)》
    • 《3.7 PUBCOMP – 釋出完成(QoS 2,第三步)》
    • 《3.8 SUBSCRIBE - 訂閱主題》
    • 《3.9 SUBACK - 訂閱确認》
    • 《3.10 UNSUBSCRIBE – 取消訂閱》
    • 《3.11 UNSUBACK – 取消訂閱确認》
    • 《3.12 PINGREQ – 心跳請求》
    • 《3.13 PINGRESP – 心跳響應》
    • 《3.14 DISCONNECT – 斷開連接配接》
    • 《3.15 AUTH – 認證交換》
  • 第四章 – 操作行為
  • 第五章 – 安全
  • 第六章 – 使用WebSocket
  • 第七章 – 一緻性目标
  • 附錄B - 強制性規範聲明
  • 附錄C - MQTT v5.0新特性總結 (非規範)

Part3.『 從零搭建高性能IoT平台 』

  • 預習篇
    • 《新基建和5G風口下的物聯網平台》
    • 《了解SaaS多租戶應用的架構和設計》
  • 裝置接入篇
    • 《白話MQTT基礎知識和入門》
    • 《實作百萬并發MQTT服務端》
    • 《初識CoAP并抓住它的"心"》
    • 《100行代碼快速搭建功能完備的CoAP服務》
    • 《重新認識HTTP協定并管理裝置》
    • 《實踐案例: 車載終端裝置的資料解析》
  • 邊緣計算篇
    • 《工業領域下的Modbus網關裝置》
    • 《工業領域下的OPC-UA網關裝置》
  • 裝置、接口認證和安全篇
    • Spring Security能量
      • 《什麼是JWT(JSON Web Token)?》
      • 《Spring Boot Security + JWT》
      • 《Spring Boot Security + JWT + MySQL》
    • 下一代安全實踐OAuth2
      • 《OAuth2.0 最簡單的指南》
  • 實時顯示篇
    • 《WebSocket技術魔法》
  • 資料交換和序列化篇
    • 《裝置的語言-物模型》
    • 《平台無關并具有擴充性的gRPC下的ProtoBuf》
  • 存儲和查詢篇
    • 《PostgreSQL碰撞IoT》
    • 《MongoDB在IoT中的應用》
  • 流處理和消息隊列篇
    • 《簡單實作一個消息隊列》
    • 《廣受好評的Kafka》
    • 《從未缺席的RabbitMQ》
  • 規則引擎篇
    • 《規則引擎在IoT的重要性》
    • 《Easy-Rules規則引擎在IoT的使用》
    • 《帶你走進ThingsBoard規則引擎的實作原理》
    • 《阿裡雲物聯網平台規則引擎的面紗》
  • Docker和k8s篇
    • 《Docker在IoT技術領域的應用》
    • 《DevOps的領頭羊-Kubernetes》

Part4.『 Thingsboard源碼解析 』

  • 準備篇《物聯網時代-Thingsboard源碼分析-調試環境搭建》《物聯網時代-Thingsboard源碼分析-項目結構說明》
  • 裝置連接配接協定篇《MQTT裝置連接配接協定-上》《MQTT裝置連接配接協定-下》《CoAP裝置連接配接協定》《HTTP裝置連接配接協定》
  • 存儲和查詢篇《資料模型之使用者相關表結構設計》《資料模型之裝置相關表結構設計》《資料模型之規則引擎相關表結構設計》《領略Spring Data JPA在Thingsboard的使用》
  • 網關篇《網關之Modbus》《網關之OPC-UA》
  • 實時顯示篇《實時顯示之WebSocket》
  • 資料交換和序列化篇《資料交換和序列化篇之JSON》《資料交換和序列化篇之ProtoBuf》
  • 裝置、接口認證和安全篇《Spring Security在接口的使用》《緊跟安全前沿OAuth2》
  • 流處理和消息隊列篇《流處理和消息隊列篇之Kafka》《流處理和消息隊列篇之RabbitMQ》
  • 規則引擎篇《Rule Engine解放你的雙手》
  • Docker和kubernetes篇《Docker和IoT的碰撞》《讓人驚歎的Kubernetes》
  • 設計模式篇《一文看盡指令模式》

三、學習位址

https://github.com/IoT-Technology/IoT-Technical-Guide

繼續閱讀