國際網路環境可以理解為延遲很大、經常掉線、丟包的環境,和跨機房環境是一樣的,不過,前者掉線嚴重,延遲更大,比如德國來回一般有300ms,美國有200ms,新加坡一般是90ms。國際網路環境掉包非常嚴重,有時候可能達到60%以上。
雖然是表面看是block呼叫,但是內部的實現不是一應一答,傳送一次請求之後並不會等待結果再傳送下一次請求,所以效率也是很高的。而且,如果發生網路出錯,一定會通知到呼叫端,呼叫端只要做多次請求即可。
問題在於缺少timeout機制,容易在異常斷開情況下,產生阻塞很久的錯覺。 這個問題可以加個timeout判斷,或者進行內部改造:
另外應該建立多個rpc連線,乙個不行,迅速切換到另乙個。
redis本身不是阻塞的,你依次傳送的請求,redis會依次返回給你,不需要等redis返回才發下乙個請求。所以網路延遲很大,效率也不會太低,自己加上處理斷開的問題即可。
不過,很多庫的實現是阻塞的,尤其是go的庫,寫阻塞太容易,結果幾乎所有redis庫都是阻塞的。這時候在國際網路下要慎用,比如做訊息佇列。
考慮到異常斷開,寫到系統緩衝的包可能會發不出去,所以必須開ack和confirm機制。
去掉anaconda對編譯環境的影響
去掉anaconda對編譯環境的影響 有時候在編譯原始碼的時候,依賴庫經常會自動鏈結到anaconda,然後版本不一致,導致編譯錯誤。所以在編譯的時候,先去除掉anaconda的影響 echo path輸出資訊中,一定會有anaconda的環境變數 home lcg anaconda3 bin ho...
安裝oracle對環境變數的影響
如果安裝完oracle後,然後啟動比較高版本的eclipse這樣的ide的時候,經常會出現如下所示的錯誤,version 1.3.1 01 of the jvm is not suitable for this product.version 1.4.1 or greater is required...
硬體環境對系統效能的影響
在本章之前的所有部分都是介紹的整個系統中的軟體環境對系統效能的影響,這一節我們將從系統硬體環境來分析對資料庫系統的影響,並從資料庫伺服器主機的角度來做一些針對性的優化建議。任何乙個系統的硬體環境都會對起效能起到非常關鍵的作用,這一點我想每一位讀者朋友都是非常清楚的。而資料庫應用系統環境中,由於資料庫...