

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Integra KPL con il codice del produttore
<a name="kinesis-kpl-integration"></a>

Amazon Kinesis Producer Library (KPL) viene eseguita in un processo separato e comunica con il processo utente principale tramite IPC. Questa architettura talvolta viene definita un [microservizio](http://en.wikipedia.org/wiki/Microservices) ed è scelta per due motivi:

**1) Il processo utente non si interrompe anche se la KPL riporta un arresto anomalo**  
Il processo può avere attività non correlate al flusso di dati Kinesis e può essere in grado di continuare l'operazione anche se la KPL si arresta in maniera anomala. È anche possibile che il processo dell'utente principale riavvi la KPL e passi a uno stato di funzionamento completo (questa funzionalità è nei wrapper ufficiali).

Un esempio è un server Web che invia i parametri al flusso di dati Kinesis; il server può continuare a servire le pagine anche se la parte del flusso di dati Kinesis ha smesso di funzionare. Interrompere l'intero server a causa di un bug nella KPL provocherebbe interruzioni inutili.

**2) I client arbitrari possono essere supportati**  
Ci sono sempre clienti che utilizzano linguaggi diversi da quelli ufficialmente supportati. Questi clienti dovrebbero essere in grado di utilizzare facilmente la KPL.

## Matrice di utilizzo consigliata
<a name="kinesis-kpl-integration-usage"></a>

La seguente matrice di utilizzo elenca le impostazioni consigliate per i diversi utenti e consiglia se e come utilizzare il KPL. Ricorda che se l'aggregazione è abilitata, la disaggregazione deve essere utilizzata per estrarre i record nel lato consumer. 


| Linguaggio lato producer | Linguaggio lato consumer | Versione della KCL | Logica di checkpoint | Puoi utilizzare la KPL? | Avvertenze | 
| --- | --- | --- | --- | --- | --- | 
| Tutto tranne Java | \$1 | \$1 | \$1 | No | N/D | 
| Java | Java | Utilizza Java SDK direttamente | N/D | Sì | Se l'aggregazione viene utilizzata, è necessario utilizzare la libreria di disaggregazione fornita dopo le chiamate GetRecords. | 
| Java | Tutto tranne Java | Utilizza SDK direttamente | N/D | Sì | È necessario disabilitare l'aggregazione.  | 
| Java | Java | 1.3.x | N/D | Sì | È necessario disabilitare l'aggregazione. | 
| Java | Java  | 1.4.x | Chiama il checkpoint senza alcun argomento | Sì | Nessuno | 
| Java | Java | 1.4.x | Chiama il checkpoint con un numero di sequenza esplicito | Sì | Disabilita l'aggregazione o modifica il codice per utilizzare numeri di sequenza estesi per il checkpoint. | 
| Java | Tutto tranne Java  | 1.3.x \$1 daemon multilingua \$1 wrapper specifici della lingua | N/D | Sì | È necessario disabilitare l'aggregazione.  | 