java.net.SocketでsetSoTimeoutを使用するか、ExecutorServiceを使用して別のクラスでHttp呼び出しを行うサービスをラップし、Futuresを使用してメソッドのタイムアウトを管理する方がよいでしょうか。
ベターは現在、グッドプラクティス/より信頼性が高い/正確であると定義されています。かなりの場合を除いて、必ずしもパフォーマンスへの影響を考慮する必要はありません。
編集:より明確にするために、java.net.Socketのconnect(SocketAddressエンドポイント、intタイムアウト)メソッドについても言及する必要があります。