2

サービススタック API で ServiceStack.Redis プール クライアントを使用しています。約 3000rpm で数時間のトラフィックの後、プール マネージャーから接続タイムアウト例外を受け取ります。実装は次のとおりです。

AppStart で:

 container.Register<IRedisClientsManager>(
                    p => new RedisManagerPool(Configuration.Config.Instance.RedisConfig.Server)
                    {
                        MaxPoolSize = 10000,
                        PoolTimeoutMs = 2000
                    }).ReusedWithin(ReuseScope.Container);

サービス内:

Pool = (RedisManagerPool) GetResolver().TryResolve<IRedisClientsManager>();
            RedisClient = (RedisClient)Pool.GetClient();

....

RedisClient.Dispose();

また、クライアントをプールに戻すために Pool.DisposeClient(RedisClient) を使用してクライアントを破棄しようとしましたが、同じ結果が表示されます。

Redis サーバーもチェックしましたが、CPU 使用率、メモリ使用率、接続の拒否などに問題はありませんでした。

誰かがこれに遭遇した場合はお知らせください。

ありがとうございました

4

1 に答える 1