最近在作分佈式的系統,使用netty與mq進行遠程RPC調用,現將心得經驗總結一下。編程
咱們公司的服務器在雲端機房,在每個店面有一個服務器,店面服務器外網沒法訪問。服務器
咱們的作法是店面服務器在啓動時與雲服務器創建長連接,這樣兩臺服務器之間能夠雙向通訊。分佈式
不過使用netty作RPC代碼量偏多,業務比較複雜時代碼維護稍微複雜,因此後來新的接口我嘗試測試
使用MQ來代替netty進行通訊。使用MQ以後代碼相對減小,也不用定時發送心跳來保持長連接,還能夠將spa
消息持久化。netty
不過任何東西都有兩面,現對比一下二者優缺點:blog
1. 使用netty的優缺點:接口
優勢:高效、穩定、效率
缺點:代碼量稍多、要維持長連接、消息若是要持久化須要單獨處理雲服務
2. MQ的優缺點:
優勢:編程簡單、消息可持久化
缺點: 可能要搭建單獨的MQ服務器、穩定性不高、效率偏低
我的以爲若是須要高效穩定的接口仍是用netty,對於同一個接口本人經測試使用netty的話
平均在80ms左右,而卻波動較小,換成mq的話接口執行時間波動比較大,平均執行時間
也偏長。