連線疑難排解

在本文中,我們提供將用戶端應用程式連線至 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>

您可以確認傳送的封包數目等於接收的封包。 確認可確保連線不會中斷。

虛擬網路設定

檢查您的虛擬網路組態的步驟:

  1. 檢查虛擬網路是否已從Azure 入口網站 [資源] 功能表上的 [ 設定] 下方的 [ 虛擬網絡 ] 區段 ,將虛擬網路指派給您的快取。
  2. 請確定用戶端主機電腦位於與 Azure Cache For Redis 相同的虛擬網路中。
  3. 當用戶端應用程式位於與 Azure Cache For Redis 不同的 VNet 時,這兩個 VNet 都必須在相同的 Azure 區域內啟用 VNet 對等互連。
  4. 驗證輸入和輸出 規則是否符合需求。
  5. 如需詳細資訊,請參閱 設定虛擬網路 - 進階版層 Azure Cache for Redis 實例

私人端點組態

檢查您的私人端點組態的步驟:

  1. Public Network Access 建立私人端點時,預設會停用 旗標。 確保您已正確設定 Public Network Access。 當您在 Azure 入口網站 中快取時,請在左側 [資源] 功能表中的 [私人端點 ] 底下 查看此設定。
  2. 如果您嘗試從快取的虛擬網路外部連線到快取私人端點, Public Network Access 則必須啟用。
  3. 如果您已刪除私人端點,請確定已啟用公用網路存取。
  4. 確認您的私人端點是否已正確設定。 如需詳細資訊,請參閱使用新的 Azure Cache for Redis 執行個體建立私人端點
  5. 確認您的應用程式是否在埠 6380 上連線 <cachename>.redis.cache.windows.net 。 建議您避免在設定或連接字串中使用 <cachename>.privatelink.redis.cache.windows.net
  6. 從連結至私人端點的 VNet 內執行命令 nslookup <hostname> ,以確認命令解析為快取的私人 IP 位址。

防火牆規則

如果您已針對 Azure Cache For Redis 設定防火牆,請確保已將您的用戶端 IP 位址新增至防火牆規則。 您可以在 [資源] 功能表的 [設定 Azure 入口網站 ] 底下 ,檢查 [防火牆 ]。

第三方防火牆或外部 Proxy

當您在網路中使用第三方防火牆或 Proxy 時,請檢查是否允許 Azure Cache for Redis 的端點 *.redis.cache.windows.net 以及連接埠 63796380。 使用叢集快取或異地複寫時,您可能需要允許更多連接埠。

公用 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 設定錯誤問題的詳細資訊,請參閱 異地複寫對等埠需求

這些文章提供有關連線能力和復原能力的詳細資訊: