開發四年只會寫業務代碼,分布式高并發都不會還做程式員?->>>
請大佬幫忙解決一個技術問題。專案使用netty作為服務端接入Gps硬體設備,GPS通過TCP協議與服務端發送資料,發送一共兩種包體:發送登陸包告知服務端設備id。以后就一直發送定位包,不再攜帶設備id(tcp請求是長連接)。這種情況在單實體服務下,我使用netty生成的channelID與設備ID對應放入快取,這種發送定位包的時候就能查詢到設備ID,但是集群情況下我擔心會有問題,因為硬體負載有可能將同一個tcp鏈接發到另外一個實體上,快取內的對應關系就找不到,由于channelID是netty生成的,換一個實體以后ID肯定會變,如何解決,坐等大佬分析,急,在線等!
uj5u.com熱心網友回復:
硬體負載設備應該可以改包,增加包內容,我以得之前用過7層交換機是可以的
當你接你要new socket時,生成一個id,之后把這個id加在包里,發到后端的設備上
uj5u.com熱心網友回復:
既然是長連接,為什么同一個連接會被轉發到其他實體上呢?
uj5u.com熱心網友回復:
軟體層面不用想了,channel是與網卡系結的,就算共享了也毫無意義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/240630.html
標籤:其他技術討論專區
