簡體   English   中英

每秒從C程序記錄3000個事件

[英]Logging 3000 events per second from c program

我每秒從ac文件記錄3k事件的最佳選擇是什么? 以下是我想到的選擇。 無法確定哪種故障點少,可靠性高,延遲少的魯棒解決方案。

  1. 使用消息傳遞服務器在事件發生時進行中繼

  2. 使用syslog進行日志記錄

  3. 使用Unix管道

  4. 使用流利的日志記錄代理,它將事件發送到分析服務器

  5. 在本地寫入日志文件,然后定期旋轉,使用rsync之類的文件將其旋轉到分析服務器

嘗試syslog。 沒有理由使其過於復雜。 使用syslog-ng,您可以通過UDP進行本地日志記錄,然后設置本地syslogd以通過TCP將所有內容轉發到中央syslog服務器。 您可能需要在中央syslog服務器上不使用fsync來運行,以跟上該負載(但首先進行測試),但是可以通過將所有內容轉發到兩台單獨的計算機來減輕這種情況。 這為您提供了本地的異步性能以及足夠的可靠性,幾乎不會丟失任何事件。

我做過的另一個選擇是將事件記錄到Redis,Riak或其他nosql數據存儲中(我通常不建議將它們用於任何復雜的事情,但是事件記錄正好在他們的小巷中)。 設置鏡像以實現冗余,並且它們應該能夠每秒處理超過3k個事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM