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