JSON-over-HTTP API (ServiceStack を使用) を公開するサービスがあり、現在、この API を抽象化してその上にドメイン固有のオブジェクト抽象化を基本的に提供する .NET クライアント (dll) を作成しています。このクライアントは、サービスに頻繁にアクセスする必要があるアプリで使用されるため、高スループットと低レイテンシーを実現することが重要です。サービスのスループットとレイテンシを許容レベルにするために、かなりの最適化作業を行いました ( JMeterを使用して測定)。当然、クライアントをできるだけ速くしたいと思います。
ServiceStack の ServiceClient ライブラリを使用してサービスとの通信を処理したいのですが、いくつか質問があります。
- JsonServiceClient スレッドは安全ですか?
- JsonServiceClient (または *ServiceClientBase の子のいずれか) は、HTTP v1.1 サーバーと通信するときに何らかの接続プールを行いますか? それとも、実行を求められたリクエストごとに個別の接続を開きますか?
また、サービスとの通信を最適化するために ServiceClient またはおそらく別のライブラリを使用する方法についての提案もいただければ幸いです (クライアント側のキャッシュは私の計画の一部であるため、既に作業中です)。