簡體   English   中英

如何在nodejs中檢測客戶端與redis的斷開連接?

[英]How to detect client disconnect from redis in nodejs?

我正在使用庫node_redis作為我正在編寫的微服務消息客戶端的客戶端。 客戶端從他們的發件箱中獲取需要發送到其他服務的消息。 一切都很好,但我正在嘗試在使用redis客戶端與redis-server通信的應用程序上構建一些彈性。

我的想法是redis客戶端 - 服務器連接狀態應該對客戶端高度可用。 我的意思是,如果連接斷開,我想知道在第二個而不是300秒的默認超時。 目前我正在使用AWS上托管的免費redislabs層,但我應該將其移動到我的kubernetes集群上的自己的容器中運行。

我需要知道網絡中客戶端連接的狀態,因為我不希望在網絡條件不正確時發送消息,而不依賴於錯誤處理來處理這種事件。 了解這些高延遲事件發生的頻率和時間也將有助於我診斷和改進我的網絡和我的微服務。

注意:我想在客戶端選項中設置connect_timeout值,但這被列為已棄用。

那樣的東西?

var redis = require('redis');
var client = redis.createClient();
var reconnectAfter = 15000;

client.on( 'error', function () {
  console.log( (new Date()) + " Redis: disconnect");
  setTimeout( connect, reconnectAfter);
});

connect = function(){
  client = redis.createClient();
}

暫無
暫無

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

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