0
因此,當使用AmazonKinesisFireHoseClient將記錄放入kinesis時,我的網站在高負載時崩潰。使用Amazon Kinesis客戶端時,在使用Amazon Kinesis客戶端時發生高負載網站崩潰問題,並打開連接數
我沒有得到任何例外記錄它只是有點死,你需要重新啓動應用程序,讓它再次運行,有時它只是在崩潰後開始自行工作。
我知道它與打開的連接數有關,但我不知道如何解決它。
這是我的記錄,我作爲實例化一個單身
public class KinesisFirehoseLogger<T>
{
private string streamName;
private AmazonKinesisFirehoseClient client;
protected ILogger logger;
public KinesisFirehoseLogger(IKinesisLogConfig config, ILogger logger)
{
this.streamName = config.StreamName;
this.logger = logger;
this.PartitionKey = config.PartitionKey;
AWSCredentials credentials = new BasicAWSCredentials(config.AccessKey, config.SecretKey);
this.client = new AmazonKinesisFirehoseClient(credentials, config.Region);
}
public async Task<bool> WriteToKinesisAsync(T logObject)
{
using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(logObject) + "\n")))
{
PutRecordRequest putRecordRequest = new PutRecordRequest() { DeliveryStreamName = this.streamName, Record = new Record() { Data = ms } };
// Put record into the DeliveryStream
return (await client.PutRecordAsync(putRecordRequest)).HttpStatusCode == HttpStatusCode.OK;
}
}
}
我應該使用處置的AmazonKinesisFirehoseClient某處()方法?我怎麼知道該什麼時候打電話。