1.為什麼要接入swoole enterprise
針對線上機器的監控、介面的呼叫情況、線上介面異常告警、線上耗時分析、線上除錯等等,這應該是每個線上專案,都必須直面且要認真思考的問題。
本來想自己寫的,但考慮到時間成本和系統複雜程度,一直在猶豫。這時正好看到swoole enterprise,發現swoole enterprise是一個非常好的解決方案。
呵呵··· 是不是有人以為我是這個專案的託?!其實我用的是 試用版 永久免費版(給力哦!!!),非付費使用者。
給大家上幾張圖,目前線上已經穩定執行。
不截圖了,打馬賽克太麻煩了~~
2.那如何接入呢?
- 這邊必須說個小插曲哈:之前我在伺服器安裝swoole_plus.so擴充,怎麼都不成功。最後通過聯絡swoole官網客服,並通過遠端才解決。發現是自己的php版本錯了(原始碼安裝的都可以留意下),好尷尬~ 這裡必須給客服點贊哈~~上圖
補充說下:我是伺服器直接安裝,沒有使用docker環境。你可以先看下官網安裝教程點選檢視
a.伺服器基礎部署:php(nts版,不支援zts)【不知道到nts與zts的區別?這個不重要。知道如何安裝即可。】、swoole4.4以上
b.進入swoole enterprise申請試用,下載客戶端包到伺服器。
c.解壓安裝包後,執行deploy_env.sh,會安裝基礎元件和複製sdk至/opt/swoole下。
d.複製對應php版本的swoole_plus7*.so至php的extensions檔案下。不知道這個目錄在哪裡?沒關係,看下面指令:
php -i|grep extension
e.配置php.ini
extension=swoole_plus.so
apm.enable=1 #開啟總開關
apm.sampling_rate=100 #取樣率 例如:100%
# 手動埋點時再新增
apm.enable_memcheck=1 #開啟記憶體洩漏檢測 預設0 關閉
f.回到自己的hyperf程式,安裝hyperf/swoole-enterprise擴充,並新增全域性中介軟體HttpServerMiddleware
i.最後重啟服務,即可通過後臺檢視相關資料了。
ps.我感覺這個後臺有幾點確實很有用,第一點,可以看到每個介面的呼叫成功、失敗情況和時長。我就通過這個後臺,發現一個redis的auth問題。第二點,可以檢視整個應用的呼叫鏈並能分析效能。第三點,可以直接分析線上介面效能。還有。。。 這是一個寶藏後臺,可挖掘的還有很多哦~~