1. 程式人生 > >tcp 高性能服務, netty,mqtt

tcp 高性能服務, netty,mqtt

方式 clas med 支持 第一個 htm group 並行 隔離

1. io 線程不要有比較長的服務. 全部異步化. [1] netty 權威指南上只是說業務復雜時派發到業務線程池種.

共用的線程池最好都輕量. 多層線程池後, 下層的可以進行隔離. 這個是 mqtt 的一大特點.

避免某個任務太重,影響了其他親量級服務.

2. new socket 可以傳入域名,但是只取第一個 ip,鏈接

3. 物聯網 的特點是大量的長連接,等待消息推送. 所以首先要不同的機器去承接連接. 故客戶端需要知道去連接的 ip.

目前沒有http 協議支持域名,短連接. 請求/響應方式. 數據回傳是在已建立的鏈路上的. (服務器無法訪問外網,但是可以通過零時建立的通路回傳數據. 路由原理) 也是p2p 協議遠離,核心是要打洞.

所以 mqtt 出現了.

1. 客戶端太多,網絡不穩定,期望采用異步化. 解耦. 有別於請求/響應式 ,采用發布/訂閱.

2. 有別於 http 服務的負載均衡 lvs. 通過域名+dns可以對應 n 臺入口 lvs. 應用協議層進行負載均衡. 而且客戶端可以使用通用的瀏覽器.[即不需要在客戶端寫死 n 個 ip ,進行負載均衡]

物聯網節點很多,不可能一臺機器去承接連接. 需要在客戶端寫 n 個 ip. 然後有復雜的邏輯去選擇一臺進行連接. 這些流程就是這個 mqtt 協議的一部分.

統一交互邏輯.

這兩點是 物聯網環境下的訴求,所以才有了 mqtt 協議.

[1] Netty系列之Netty百萬級推送服務設計要點

[2] 王者榮耀的推送是如何做的?騰訊信鴿精準推送系統解析 關鍵技術:實時精準推送系統的關鍵技術有優化存儲——將文本數字化,位圖壓縮存儲和分布式並行檢索和運算。

tcp 高性能服務, netty,mqtt