連線疑難排解
在本文中,我們會提供將用戶端應用程式連線至 Azure Cache for Redis 的疑難排解說明。 連線問題可分為兩種類型:間歇性連線問題和持續性連線問題。
間歇連線能力問題
用戶端應用程式可能會發生由事件例如修補或連線數目尖峰導致的間歇性連線問題。
伺服器維護
有時候,您的快取會發生計劃性或非計劃性伺服器維護。 您的應用程式在維護期間可能會受到負面影響。 您可以在入口網站上檢查 Errors (Type: Failover)
計量來驗證。 若要將容錯移轉的影像降至最低,請參閱連線復原能力。
已連線用戶端數目
檢查 Connected Clients
計量的最大彙總是否接近或高於特定快取大小允許的連線數目上限。 如需調整每個用戶端連線大小的詳細資訊,請參閱 Azure Cache for Redis 效能。
Kubernetes 裝載的應用程式
- 如果您的用戶端應用程式裝載於 Kubernetes 上,請檢查執行用戶端應用程式或叢集節點的 Pod 未處於記憶體/CPU/網路壓力。 執行用戶端應用程式的 Pod 可能會受到相同節點上執行的其他 Pod 影響,並節流 Redis 連線或 IO 作業。
- 如果您使用 Istio 或任何其他服務網格,請檢查您的服務網格 Proxy 保留連接埠 13000-13019 或 15000-15019。 用戶端會使用這些埠來與叢集 Azure Cache for Redis 節點通訊,並可能導致這些埠的連線問題。
以 Linux 為基礎的用戶端應用程式
在 Linux 中使用開放式 TCP 設定可能會導致用戶端應用程式遇到連線問題。 請參閱連線停頓持續 15 分鐘。
持續連線能力
如果您的應用程式無法連線到您的 Azure Cache for Redis,則快取上的某些組態可能未正確設定。 下列各節提供如何確定快取已正確設定的建議。
使用 redis-cli 測試連線能力
使用 redis-cli 測試連線能力。 如需 CLI 的詳細資訊,請使用 Redis 命令列工具搭配 Azure Cache for Redis。
使用 PSPING 測試連線能力
如果 redis-cli 無法連接,您可以在 PowerShell 中使用 PSPING
來測試連線能力。
psping -q <cache DNS endpoint>:<Port Number>
您可以確認傳送的封包數目等於接收的封包。 確認可確保連線不會中斷。
虛擬網路設定
檢查您的虛擬網路組態的步驟:
- 檢查虛擬網路是否已從 Azure 入口網站 [資源] 功能表上 [設定] 區段下的 [虛擬網路] 區段,將虛擬網路指派給您的快取。
- 請確定用戶端主計算機位於與 Azure Redis 快取相同的虛擬網路中。
- 當用戶端應用程式位於與 Azure Cache for Redis 不同的虛擬網路中時,這兩個 VNet 都必須在相同的 Azure 區域內啟用 VNet 對等互連。
- 驗證輸入和輸出規則符合需求。
- 如需詳細資訊,請參閱設定虛擬網路 - 進階層 Azure Cache for Redis 執行個體。
私人端點組態
檢查您的私人端點組態的步驟:
- 建立私人端點時,
Public Network Access
旗標預設為停用。 請確定您已正確設定Public Network Access
。 當您在 Azure 入口網站中的快取時,請在左側的 [資源] 功能表的 [私人端點] 下查看,以取得此設定。 - 如果您嘗試從快取的虛擬網路外部連線到快取私人端點,則必須啟用
Public Network Access
。 - 如果您刪除私人端點,請確定已啟用公用網路存取。
- 驗證您的私人端點是否已正確設定。 如需詳細資訊,請參閱使用新的 Azure Cache for Redis 執行個體建立私人端點。
- 驗證您的應用程式是否在連接埠 6380 上連接至
<cachename>.redis.cache.windows.net
。 建議您避免在設定或連接字串中使用<cachename>.privatelink.redis.cache.windows.net
。 - 若要確認命令解析為快取的私人IP位址,請從連結至私人端點的虛擬網路 (VNet) 中執行類似
nslookup <hostname>
命令。
防火牆規則
如果您有針對 Azure Cache for Redis 設定的防火牆,請確定您的用戶端 IP 位址已新增至防火牆規則。 您可以在 Azure 入口網站的 [設定] 下的 [資源] 功能表上檢查 [防火牆]。
第三方防火牆或外部 Proxy
當您在網路中使用第三方防火牆或 Proxy 時,請檢查是否允許 Azure Cache for Redis 的端點 *.redis.cache.windows.net
以及連接埠 6379
和 6380
。 使用叢集快取或異地複寫時,您可能需要允許更多連接埠。
公用 IP 位址變更
如果您將任何網路或安全性資源設定為使用快取的公用IP位址,請檢查快取的公用IP位址是否已變更。 如需詳細資訊,請參閱依賴主機名稱而非公用 IP 位址作為快取。
使用 VNet 插入搭配進階快取進行異地複寫
雖然您可以搭配進階快取使用虛擬網路 (VNet) 插入,但建議使用 Azure Private Link。
如需詳細資訊,請參閱
虛擬網路 (VNet) 中的快取異地複寫支援注意事項:
- 支援在相同 VNet 中多個快取之間的異地複寫。
- 也支援不同 VNet 中快取之間的異地複寫。
- 如果 VNet 都位在相同的區域中,您就可以使用 VNet 對等互連或 VPN 閘道 VNet 對 VNET 連線連接這些虛擬網路。
- 如果 VNet 位於不同的區域,則不支援使用 VNet 對等互連的異地複寫。 VNet 1 (區域 1 中的用戶端 VM) 無法使用其 DNS 名稱存取 VNet 2 (區域 2) 的快取,因為具有基本內部負載平衡器的條件約束。 如需虛擬網路對等互連條件約束的詳細資訊,請參閱 VNet - 對等互連 - 需求和條件約束。 建議您使用 VPN 閘道 VNet 對 VNet 連線。
若要有效地設定虛擬網路 (VNet),並避免異地復寫問題,您必須正確設定輸入和輸出埠。 如需避免最常見的 VNet 設定錯誤問題的詳細資訊,請參閱異地複寫對等連接埠需求。
相關內容
這些文章提供有關連線能力和復原能力的詳細資訊: