已采納回答 / 麥可同學
視頻中這樣是不行的,因為這里在goroutine中打開了文件句柄,相當于每個goroutine中的單獨維護了指針位置,不過這樣讀取讀取文件效率極高,通常不會存在瓶頸。非要使用多個goroutine去讀取的話,可以將讀取模塊中的rd放到全局變量中,不過bufio包貌似不是線程安全的,也會存在問題。
2018-05-05
已采納回答 / 麥可同學
是,生產環境有這么做的,不過也分場景。日志量太大,可能不太適合?;蛘咭龀闃?/div>
2018-05-02
已采納回答 / 麥可同學
1,這個問題其實我在最后一節課有提到,如果產生了新的日志文件,你需要再讀取模塊里檢查當前文件的inode是否改變,有變化就重新打開文件句柄即可。2,可以考慮先將日志做統一搜集,比如都發送到隊列中或者落地,然后讀取模塊消費這些數據,有很多開源的解決方案,flume?,scribe什么的。如果日志量巨大,只用于監控的話,這樣做的成本比較高,可以使用prometheus這類拉取模式的解決方案。
2018-05-01
- 課程須知
- 1、課程難度屬于中級 2、有一定的編程經驗,了解Golang基本語法
- 老師告訴你能學到什么?
- 1、常見的并發編程模型 2、并發與并行的異同 3、Golang的面向對象 4、Golang并發編程知識和設計 5、實現一個簡單的日志監控程序
微信掃碼,參與3人拼團