1.2017-12-21 所遇場景:在作百度識別的時候 百度文字識別 在測試環境沒有問題的代碼部署到線上就出了問題,當時遇到的問題是java
/** * 以字節流的方式讀取圖片 * [@param](https://my.oschina.net/u/2303379) path 圖片路徑 * [@return](https://my.oschina.net/u/556800) 圖片字節流 * [@throws](https://my.oschina.net/throws) IOException * 時間 2017年12月12日 下午4:38:07 * [@author](https://my.oschina.net/arthor) sunjg * [@throws](https://my.oschina.net/throws) URISyntaxException */ private static byte[] readImageFile(String path) throws IOException, URISyntaxException { String str = java.net.URLDecoder.decode(path, "UTF-8"); URL uri = new URL(str); URLConnection connection =uri.openConnection(); InputStream inputStream =connection.getInputStream(); ByteArrayOutputStream outp = new ByteArrayOutputStream(); int ch = 0; while ((ch = inputStream.read()) != -1) outp.write(ch); byte[] b = outp.toByteArray(); return b; }
線上讀取字節流文件的時候耗時太長,這個問題讓咱們很是苦惱,由於如今是上線時間,時間緊迫否則會形成延期。 所作的措施一:讓運維在線上(online)環境上從新部署一下服務,咱們猜測多是由於代碼沒有提交完整,結果錯誤依舊,讓然沒有解決這個問題 所作的措施二:將代碼中的異常處理都去除,將詳細的堆棧信息都打印出來,根據日誌信息進行處理問題,結果瀏覽器頁面仍是會出現504,請求超時問題 所作的措施三:curl -I http://res.shoumeiapp.com/1510816149445about_icon_more.png線上某個圖片地址 所得到信息以下圖:linux
所作的措施四:在網上查了相關資料,而且問過技術總監,最終肯定該問題屬於DNS域名解析錯誤, 查了一下測試環境的DNS域名解析,結果爲: DNS服務器地址配置 在Linux下面,有一個默認的DNS服務器地址配置文件的設置,存放在 /etc/resolv.conf
瀏覽器
繼續查找線上的該配置文件,結果以下: 服務器
將114.114.114.114配置到線上環境,結果一切正常了,該問題通過一波三折才解決了。app