阿里雲報SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed:根本緣由

報錯內容以下:mysql

系統架構以下:redis

15臺阿里雲服務器集羣(主服放在華南可用區A區,其餘14臺分別部署在A/B/C/D/E區都有) + 1臺阿里雲Reids(A區) + 5臺阿里雲mysql服務器(1主4從)(A區)sql

報錯請況:數據庫

  • 這個錯誤不是必須,偶爾出現,或者出現一小段時間
  • 代碼都沒有更新,忽然出現的問題

問題根源 api

由於API服務器連接redis和mysql是使用阿里雲內網的地址和端口,而api服務器部署在不一樣的可用區,排查這個問題很簡單,只要把B/C/D/E區的服務器節點都去掉就立馬正常了,因此問題確定是阿里雲不一樣可用區之間內網通信有bug服務器

解決辦法:架構

第一種:api集羣服務器改成使用外網地址連接redis和數據庫阿里雲

第二種:把集羣服務器放在同一個可用區spa

相關文章
相關標籤/搜索