已采納回答 / 麥可同學(xué)
視頻中這樣是不行的,因?yàn)檫@里在goroutine中打開了文件句柄,相當(dāng)于每個(gè)goroutine中的單獨(dú)維護(hù)了指針位置,不過(guò)這樣讀取讀取文件效率極高,通常不會(huì)存在瓶頸。非要使用多個(gè)goroutine去讀取的話,可以將讀取模塊中的rd放到全局變量中,不過(guò)bufio包貌似不是線程安全的,也會(huì)存在問(wèn)題。
2018-05-05
已采納回答 / 麥可同學(xué)
是,生產(chǎn)環(huán)境有這么做的,不過(guò)也分場(chǎng)景。日志量太大,可能不太適合?;蛘咭龀闃?/div>
2018-05-02
講師回答 / 麥可同學(xué)
微服務(wù),我個(gè)人理解是對(duì)服務(wù)進(jìn)行解耦,拆分部署的一種方案,golang部署方便,天然適合微服務(wù)架構(gòu),后續(xù)的web課程中會(huì)有微服務(wù)相關(guān)的部分,敬請(qǐng)期待哦~
2018-05-02
已采納回答 / 麥可同學(xué)
1,這個(gè)問(wèn)題其實(shí)我在最后一節(jié)課有提到,如果產(chǎn)生了新的日志文件,你需要再讀取模塊里檢查當(dāng)前文件的inode是否改變,有變化就重新打開文件句柄即可。2,可以考慮先將日志做統(tǒng)一搜集,比如都發(fā)送到隊(duì)列中或者落地,然后讀取模塊消費(fèi)這些數(shù)據(jù),有很多開源的解決方案,flume?,scribe什么的。如果日志量巨大,只用于監(jiān)控的話,這樣做的成本比較高,可以使用prometheus這類拉取模式的解決方案。
2018-05-01
- 課程須知
- 1、課程難度屬于中級(jí) 2、有一定的編程經(jīng)驗(yàn),了解Golang基本語(yǔ)法
- 老師告訴你能學(xué)到什么?
- 1、常見(jiàn)的并發(fā)編程模型 2、并發(fā)與并行的異同 3、Golang的面向?qū)ο? 4、Golang并發(fā)編程知識(shí)和設(shè)計(jì) 5、實(shí)現(xiàn)一個(gè)簡(jiǎn)單的日志監(jiān)控程序
微信掃碼,參與3人拼團(tuán)