Gestire i cicli di vita dei client nelle librerie client Java Cloud

Le istanze delle librerie client sono riutilizzabili e progettate per essere longeve. In genere, le applicazioni mantengono una singola istanza di una libreria client, anziché creare una libreria per ogni richiesta.

Utilizzando Java-KMS come esempio, il seguente snippet mostra più richieste richiamate con la stessa istanza del client:

// Create one instance of KMS's KeyManagementServiceClient
KeyManagementServiceClient keyManagementServiceClient =
 KeyManagementServiceClient.create();
keyManagementServiceClient.listKeyRings();
keyManagementServiceClient.asymmetricSign();
keyManagementServiceClient.createCryptoKey();
// ... other code ...

// Create one instance of KMS's AutokeyClient
AutokeyClient autokeyClient = AutokeyClient.create();
autokeyClient.listKeyHandles();
autokeyClient.getKeyHandle();

Chiudere un client

La modalità di gestione del ciclo di vita di un client può dipendere dal caso d'uso e dalla libreria client specifica. Ad esempio, se utilizzi un framework, segui le linee guida del framework per la gestione dei client. Sebbene alcuni scenari possano utilizzare try-with-resources per i client di durata inferiore, in genere è consigliabile riutilizzare un'istanza del client di lunga durata per l'efficienza

La chiamata a close() su un client tenta un arresto ordinato e garantisce che le attività esistenti continuino fino al completamento. Il client non accetterà nuove attività. Se non chiudi il client, le relative risorse continuano a esistere e la tua applicazione genera perdite di memoria.

L'esempio seguente utilizza Java-KMS e mostra la chiusura del client:

KeyManagementServiceClient keyManagementServiceClient =
  KeyManagementServiceClient.create(keyManagementServiceSettings);
// ... other code ...