請問下 要設(shè)計10W物聯(lián)網(wǎng)設(shè)備在線的服務器配置 和gatewayworkman 的部署方案
5臺2核4G 5-10M帶寬服務器,用gatewayWorker分布式部署。
每個臺開2個Gateway進程。
BusinessWorker進程開多一些,例如每臺開20個BusinessWorker進程。
推薦使用webman+gatewayWorker插件
數(shù)據(jù)庫阿里云RDS,一主一從或多從。主庫8核16G,從庫配置可以一樣,也可以低一些后面升級。
我們有個物聯(lián)網(wǎng)的項目也是約10萬設(shè)備在線,大概是上面這樣的配置。
注意一點:
這種大量設(shè)備在線的業(yè)務要注意一點,不要輕易重啟服務器,重啟一個問題不大,全部重啟的話10萬設(shè)備會一起發(fā)來登錄請求,類似DDOS自己的服務器,10萬請求一起過來會導致服務端處理不過來請求超時,客戶端有超時重試的話會再次發(fā)請求,請求積壓越來越多,整個服務癱瘓很久。我們有兩次這樣的事故。
如果不幸出現(xiàn)這種情況,在每臺服務器上每隔幾秒執(zhí)行下php start.php reload
清理掉內(nèi)存里積壓的過期的請求,可以快速恢復整個服務。
謝謝大佬 指點 我有個疑問就是 物聯(lián)網(wǎng)設(shè)備 登錄的ip服務器都是相同的 不應該分離部署嗎 ? 分布式了后 除了登錄的服務器 其他服務上的gateway是否還啟作用 我記得分離部署 是注冊和網(wǎng)關(guān)放到一個服務器 其他的服務器都是BusinessWorker 如果 iot設(shè)備連接的都是固定的一個ip是不是分離部署更好一點 分布式部署 是不是你們iot連接的設(shè)備 做了負載均衡 導流到了分布式了
登錄最好不要用ip,用域名好一些,方面后面遷移服務器。
域名可以綁定一個ip,也可以多個。
我們使用的阿里云的負載均衡,負載均衡后面是多個ip,每個ip上都有Gateway服務。
注冊,gateway,businessWorker都可以分別部署在不同的服務器,也可以部署在一起,沒有限制,我們是分開部署的。