日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

NoSQL 是否可以用来做日志中心 ?

發布時間:2023/12/4 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NoSQL 是否可以用来做日志中心 ? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

咨詢區

  • ikrain

請問大家在分布式程序中用 nosql 來做日志中心的經驗?我做了一些研究,發現用 Mongodb 做日志中心是一個非常好的選擇,而且我發現 log4net 對它也是直接集成的,比如: log4mongo-net 。

不知道大家可推薦這種方式?或者有其他一些類似的方式嗎?

回答區

  • yamen

其實在可擴展程序中用 mongodb 做日志中心不是一個推薦的做法,嚴格來說日志中心整體解決方案中,它只是解決了存儲這個單一case的問題。

一個強大的日志中心需要解決如下幾個問題:

  • 數據采集

  • 數據轉運

  • 數據清洗

  • 數據存儲

  • 數據查詢

  • 數據可視化

  • 再回頭看看mongodb只解決了第4點,針對這六點,我推薦的相關落地產品為:

  • Filebeat

  • 它解決了對數據源的采集和轉運,如日志文件。

  • Logstash

  • 它解決了數據清洗,你可以用正則表達式。

  • ElasticSearch

  • 它解決了數據的存儲和查詢。

  • Kibana

  • 它解決了數據的可視化問題

    值得一提的是,ElasticSearch 為了記錄日志底層就用了當前最流行的nosql方式,這整體就是 Elastic 家族給出的解決方案。

    • Kazuki Ohta

    我見過很多公司都用 Mongodb 來記錄應用程序的日志,畢竟它的 無模式 真的是太吸引人了,而且 mongodb 還提供了 Capped Collection 特性,它的固定大小模式可以周期性的用新數據替換老數據。

    為了能夠對日志進行精細化分析,一般大家都會采用 Grouping 和 MapReduce,但它不是很快,尤其是 js 的單線程引擎決定了 MapReduce 只能跑在單線程上,所以這種開銷是巨大的。

    當用 mongodb 記錄日志時,還有一個不可避免的問題就是 鎖競爭,畢竟日志場景是海量寫,即使 mongodb 是一種 fire-and-forget (發送即丟棄) 的模式,也會造成大量的寫鎖競爭,從而影響應用程序的性能并在一定程序上影響 aggregate 和 filter 這些查詢操作。

    一個通用做法是采用 日志采集組件,比如:Fluentd,Logstash,Flume,這些組件需要部署在每一個應用程序節點,并從攝取應用程序產生的日志,參考如下圖:

    這些框架會緩沖日志并將日志批量寫入到比如 Mongodb,PostgreSQL 等數據庫中,這種做法相比直寫的方式要高效的多。

    Mongodb 還有一個問題在于當數據卷達到內存上限時,它的性能會急劇下降,可替換方案就是 Apache Hadoop 或 Cassandra。

    點評區

    其實在 mongodb 盛行的 14,15 年,曾經確實把 mongodb 當作緩存用,造成的后果就是特別吃內存,那時候還是 mongodb 3.0 之前的內存映射模式,后來被迫寫了一個自動釋放內存的服務。

    總結

    以上是生活随笔為你收集整理的NoSQL 是否可以用来做日志中心 ?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。