一、大型高并發(fā)網(wǎng)站的日志架構(gòu)是什么樣子一般存儲(chǔ)哪些數(shù)據(jù)
簡(jiǎn)單介紹一下,主要思路就是把寫的log文件通過logstesh 格式化然后存到 Elasticsearch 里面,這樣多個(gè)節(jié)點(diǎn)產(chǎn)生的日志就可以統(tǒng)一集中管理了。而且還能快速全文檢索,搜索到你需要的信息。
至于日志要記錄什么,當(dāng)然跟業(yè)務(wù)邏輯有關(guān)系了,不能泛泛而論吧。
比如一些函數(shù)的運(yùn)行條件啊,輸入檢查啊,但是這只是開發(fā)拍錯(cuò)方面的。
還可以做一些有意義的統(tǒng)計(jì)數(shù)據(jù),用這個(gè)elasticsearch 配合ELK 提供的dashboard,還可以做報(bào)表,用來(lái)吹逼KPI。 比如日志可以記錄用戶的訪問時(shí)間,ip,等等信息,那你很容易就可以做一個(gè)報(bào)表來(lái)說明這個(gè)月的流量比上個(gè)月增長(zhǎng)了多少,這個(gè)記錄可以細(xì)化到模塊,那你自己開發(fā)的模塊貢獻(xiàn)了主要的流量增長(zhǎng)那不就可以吹逼KPI了么,這就是所謂數(shù)據(jù)挖掘了,elasticsearch還可以配合hadoop之類的使用,說到這里大家應(yīng)該知道怎么繼續(xù)科學(xué)裝逼了吧。
基于這個(gè)還能做更多有想象力的事兒,主要是集中管理大量node上產(chǎn)生的日志帶來(lái)的好處。另外logstesh支持多種input,你也可以自己給它寫input plugin,所以日志產(chǎn)生其實(shí)就很隨性了,第三方庫(kù)非標(biāo)準(zhǔn)化的日志也可以輕松的納入進(jìn)來(lái)給format成標(biāo)準(zhǔn)化日志。
進(jìn)一步的,如果你的應(yīng)用夠大型,這個(gè)elk stack也可以搞成一個(gè)云服務(wù)嘛,所有的應(yīng)用都可以接入,進(jìn)而你會(huì)有更科學(xué)的裝逼姿勢(shì)。
延伸閱讀:
二、字符集(Character set)是什么
是多個(gè)字符(英文字符,漢字字符,或者其他國(guó)家語(yǔ)言字符)的集合,字符集種類較多,每個(gè)字符集包含的字符個(gè)數(shù)不同。
特點(diǎn):
①字符編碼方式是用一個(gè)或多個(gè)字節(jié)表示字符集中的一個(gè)字符
②每種字符集都有自己特有的編碼方式,因此同一個(gè)字符,在不同字符集的編碼方式下,會(huì)產(chǎn)生不同的二進(jìn)制
常見字符集:
ASCII字符集:基于羅馬字母表的一套字符集,它采用1個(gè)字節(jié)的低7位表示字符,高位始終為0。
LATIN1字符集:相對(duì)于ASCII字符集做了擴(kuò)展,仍然使用一個(gè)字節(jié)表示字符,但啟用了高位,擴(kuò)展了字符集的表示范圍。
GBK字符集:支持中文,字符有一字節(jié)編碼和兩字節(jié)編碼方式。
UTF8字符集:Unicode字符集的一種,是計(jì)算機(jī)科學(xué)領(lǐng)域里的一項(xiàng)業(yè)界標(biāo)準(zhǔn),支持了所有國(guó)家的文字字符,utf8采用1-4個(gè)字節(jié)表示字符。