我們有一個用C#編寫的用於在AWS中運行的.Net 4.0的WebApi json rest服務。該服務具有一個/ log端點,它接收日誌並通過tcp將日誌轉發到logstash進行存儲。ASP.Net WebApi Rest服務 - 使用Task.Factory.StartNew
/log端點使用Task.Factory.StartNew將日誌發送到logstash async並立即返回StatusCode.OK。這是因爲我們不希望客戶端等待將日誌發送到logstash。
觀察並處理了所有異常,我們也不關心由於服務關閉或不時重複使用而導致日誌丟失,因爲它們並不重要。
起初,原木流量非常低,在峯值時間可能是20或30個小時。然而,我們最近開始發送大量的日誌,可以超過每小時一千次。所以現在的問題是,通過使用Task.Factoring.StartNew,我們是否會生成大量線程,即對/ log端點的每個請求有1個線程,或者線程池以某種方式進行管理?
我們使用nLog進行內部日誌記錄,但是想知道我們是否可以將日誌從/ log端點傳遞給nlog以利用其異步批處理功能並讓它將日誌發送到logstash?我們有一個自定義的目標將發送日誌到一個TCP端口。
在此先感謝。