Connessione ad Apache Kafka

Verrà descritto come creare una connessione ad Apache Kafka da utilizzare come origine o destinazione OCI GoldenGate.

Prima di iniziare

Prima di creare la connessione, assicurarsi di:
  • Rivedere il modo in cui OCI GoldenGate si connette all'origine e alle destinazioni.

  • Configurare i criteri necessari per abilitare l'accesso sicuro a vault e segreti, ad esempio l'uso di segreti, l'uso di vault e la lettura di bundle di segreti. Per ulteriori informazioni, vedere Criteri consigliati minimi.

  • Se si utilizza TLS/mTLS, convertire il truststore o il truststore e il keystore JKS in formato PKCS12 da utilizzare nella connessione.
    1. Utilizzare la utility keytool nel JDK per eseguire la conversione nel formato PKCS12.

      Per il keystore, la utility Keytool richiede una password, come mostrato nell'esempio riportato di seguito.
      keytool -importkeystore -srckeystore [MY_KEYSTORE.jks] -destkeystore [MY_KEYSTORE.p12] -srcstoretype JKS -deststoretype PKCS12 -deststorepass [PASSWORD_PKCS12]
      Per il truststore, la utility keytool richiede una password, come mostrato nell'esempio riportato di seguito.
      keytool -importkeystore -srckeystore [MY_TRUSTSTORE.jks] -destkeystore [MY_TRUSTSTORE.p12] -srcstoretype JKS -deststoretype PKCS12 -deststorepass [PASSWORD_PKCS12]
    2. Dopo aver convertito il keystore e il truststore, aggiungere le righe seguenti al file delle proprietà del producer Kafka, quindi salvare le modifiche:
      ssl.truststore.type=PKCS12
      ssl.keystore.type=PKCS12
    3. Caricare il file nelle proprietà del producer della connessione nella sezione Impostazioni di Opzioni avanzate.

Crea una connessione di origine

Per creare una connessione Apache Kafka di origine, procedere come segue.
  1. Nella pagina Panoramica di OCI GoldenGate, fare clic su Connessioni.
    È inoltre possibile fare clic su Crea connessione nella sezione Inizia e andare al passo 3.
  2. Nella pagina Connessioni fare clic su Crea connessione.
  3. Nella pagina Crea connessione, completare i campi come indicato di seguito.
    1. Per Nome, immettere un nome per la connessione.
    2. (Facoltativo) In Descrizione, immettere una descrizione che consenta di distinguere questa connessione dagli altri.
    3. (Solo per GoldenGate nel multicloud) Selezionare la propria sottoscrizione, quindi completare i campi seguenti.
      1. Nell'elenco a discesa Compartimento selezionare il compartimento in cui risiede l'ancora risorsa.
      2. Selezionare l'area partner multicloud.
      3. Seleziona la tua zona di disponibilità dei partner. Le opzioni disponibili vengono popolate in base all'area partner multicloud selezionata.
    4. Per il compartimento, selezionare il compartimento in cui creare la connessione.
    5. Dal menu a discesa Tipo, selezionare Apache Kafka.
    6. Sotto i server Bootstrap:
      1. Immettere il numero Host e Porta per il server Bootstrap. Immettere l'IP privato solo se il nome host non è risolvibile dalla subnet o se utilizza SSL/TLS.

        Nota

        Se si immette un IP privato, OCI GoldenGate riscrive l'IP privato nel formato ip-10-0-0-0.ociggsvc.oracle.vcn.com.

        Suggerimento

        Tutti i nodi nel cluster devono disporre di nomi FQDN per consentire il passaggio su endpoint privati.
      2. (Opzionale) Fare clic su + server bootstrap per aggiungere un altro server bootstrap.
    7. Per Protocollo di sicurezza, selezionare uno dei seguenti campi, quindi completare i campi corrispondenti:
      • Testo non codificato
      • SASL su testo non codificato
      • SASL su SSL
      • SSL
    8. Espandere l'area Mostra opzioni avanzate. È possibile configurare le opzioni seguenti:
      • Sicurezza
        • Deselezionare Usa segreti vault per non utilizzare segreti password per questa connessione. Se l'opzione non viene selezionata:
          • Selezionare Usa chiave di cifratura gestita da Oracle per lasciare tutta la gestione delle chiavi di cifratura a Oracle.
          • Selezionare Usa chiave di cifratura gestita dal cliente per selezionare una chiave di cifratura specifica memorizzata nel vault OCI per cifrare le credenziali di connessione.
      • Connettività di rete
        • Endpoint condiviso, per condividere un endpoint con la distribuzione assegnata. È necessario consentire la connettività dall'IP in entrata della distribuzione.
        • Endpoint dedicato, per il traffico di rete tramite un endpoint dedicato nella subnet assegnata nella VCN. È necessario consentire la connettività dagli IP in entrata di questa connessione.

          Nota

          • Se una connessione dedicata rimane non assegnata per sette giorni, il servizio la converte in una connessione condivisa.
          • Ulteriori informazioni sulla connettività di Oracle GoldenGate.
      • Impostazioni
        • Se si utilizza questa connessione per Extract, trascinare o selezionare il file delle proprietà Consumer o Producer (.properties).
        • Per acquisire da Kafka, creare un file delle proprietà del consumer Kafka (.properties) con uno dei deserializzatori o convertitori seguenti:
          • Proprietà consumer Kafka per il deserializzatore JSON:
            key.deserializer=org.apache.kafka.common.serialization.ByteArrayDeserializer
            value.deserializer=org.apache.kafka.common.serialization.ByteArrayDeserializer
          • Proprietà consumer Kafka per il convertitore JSON:
            key.converter=org.apache.kafka.connect.json.JsonConverter
            value.converter=org.apache.kafka.connect.json.JsonConverter
          • Kafka Proprietà consumer per il convertitore Avro:
            key.converter=io.confluent.connect.avro.AvroConverter
            value.converter=io.confluent.connect.avro.AvroConverter
      • Attributi di sicurezza: aggiungere attributi di sicurezza per controllare l'accesso a questa connessione utilizzando Zero Trust Packet Routing (ZPR).
      • Tag: aggiunge tag per organizzare le risorse.
  4. Fare clic su Crea.
Una volta creata, la connessione viene visualizzata nell'elenco Connessioni. Assicurarsi di assegnare la connessione a una distribuzione per utilizzarla come origine o destinazione in una replica.

Creare la connessione di destinazione

Per creare una connessione Apache Kafka di destinazione, procedere come segue.
  1. Nella pagina Panoramica di OCI GoldenGate, fare clic su Connessioni.
    È inoltre possibile fare clic su Crea connessione nella sezione Inizia e andare al passo 3.
  2. Nella pagina Connessioni fare clic su Crea connessione.
  3. Nella pagina Crea connessione, completare i campi come indicato di seguito.
    1. Per Nome, immettere un nome per la connessione.
    2. (Facoltativo) In Descrizione, immettere una descrizione che consenta di distinguere questa connessione dagli altri.
    3. (Solo per GoldenGate nel multicloud) Selezionare la propria sottoscrizione, quindi completare i campi seguenti.
      1. Nell'elenco a discesa Compartimento selezionare il compartimento in cui risiede l'ancora risorsa.
      2. Selezionare l'area partner multicloud.
      3. Seleziona la tua zona di disponibilità dei partner. Le opzioni disponibili vengono popolate in base all'area partner multicloud selezionata.
    4. Per il compartimento, selezionare il compartimento in cui creare la connessione.
    5. Dal menu a discesa Tipo, selezionare Apache Kafka.
    6. Sotto i server Bootstrap:
      1. Immettere il numero Host e Porta per il server Bootstrap. Immettere l'IP privato solo se il nome host non è risolvibile dalla subnet o se utilizza SSL/TLS.

        Nota

        Se si immette un IP privato, OCI GoldenGate riscrive l'IP privato nel formato ip-10-0-0-0.ociggsvc.oracle.vcn.com.

        Suggerimento

        Tutti i nodi nel cluster devono disporre di nomi FQDN per consentire il passaggio su endpoint privati.
      2. (Opzionale) Fare clic su + server bootstrap per aggiungere un altro server bootstrap.
    7. Per Protocollo di sicurezza, selezionare uno dei seguenti campi, quindi completare i campi corrispondenti:
      • Testo non codificato
      • SASL su testo non codificato
      • SASL su SSL
      • SSL
    8. Espandere l'area Mostra opzioni avanzate. È possibile configurare le opzioni seguenti:
      • Sicurezza
        • Deselezionare Usa segreti vault per non utilizzare segreti password per questa connessione. Se l'opzione non viene selezionata:
          • Selezionare Usa chiave di cifratura gestita da Oracle per lasciare tutta la gestione delle chiavi di cifratura a Oracle.
          • Selezionare Usa chiave di cifratura gestita dal cliente per selezionare una chiave di cifratura specifica memorizzata nel vault OCI per cifrare le credenziali di connessione.
      • Connettività di rete
        • Endpoint condiviso, per condividere un endpoint con la distribuzione assegnata. È necessario consentire la connettività dall'IP in entrata della distribuzione.
        • Endpoint dedicato, per il traffico di rete tramite un endpoint dedicato nella subnet assegnata nella VCN. È necessario consentire la connettività dagli IP in entrata di questa connessione.

          Nota

          • Se una connessione dedicata rimane non assegnata per sette giorni, il servizio la converte in una connessione condivisa.
          • Ulteriori informazioni sulla connettività di Oracle GoldenGate.
      • ImpostazioniPer utilizzare la compressione Snappy nella replica Kafka, trascinare o selezionare Proprietà del producer e modificare le impostazioni di replica come descritto in Utilizzo della replica Kafka di Compression OCI GoldenGate (Confluent).
      • Attributi di sicurezza: aggiungere attributi di sicurezza per controllare l'accesso a questa connessione utilizzando Zero Trust Packet Routing (ZPR).
      • Tag: aggiunge tag per organizzare le risorse.
  4. Fare clic su Crea.
Una volta creata, la connessione viene visualizzata nell'elenco Connessioni. Assicurarsi di assegnare la connessione a una distribuzione per utilizzarla come origine o destinazione in una replica.

Risolvere gli errori di connessione a Kafka

La maggior parte dei problemi di connessione genera errori TimeoutException. Ad esempio:

A failure occurred sending a message to Kafka to topic [ggstest] org.apache.kafka.common.errors.TimeoutException: Topic ggstest not  present in metadata after 60000/120000 ms.

Se questo messaggio viene visualizzato nel file del report Replicat, è possibile:

  • Assicurarsi che l'argomento di destinazione sia presente o verificare che la creazione automatica dell'argomento sia abilitata nelle impostazioni Kafka di destinazione.
  • Assicurarsi che non vi siano regole firewall che bloccano il traffico.
  • Se si esegue Kafka su OCI con un endpoint privato, assicurarsi di utilizzare il nome FQDN interno come server di bootstrap in server.properties e nella connessione Kafka.
  • Se ti stai connettendo a un cloud Confluent con endpoint privati:
    • Assicurarsi che le zone DNS e i record DNS siano configurati correttamente sia nel cloud OCI che nel cloud di terze parti di destinazione.
    • Assicurarsi che la connessione di rete tra OCI e il cloud di destinazione funzioni correttamente.
    • Eseguire il test per connettersi al cloud di destinazione Confluent con OpenSSL (openssl s_client -connect <bootstrap>) da una VM OCI in esecuzione nella stessa subnet connessa al cloud di terze parti.
    • Test che puoi pubblicare o utilizzare i messaggi di un client Kafka in esecuzione su OCI all'interno della stessa subnet connessa al cloud di terze parti. In caso di errore, controlla le impostazioni di rete sia su OCI che sul cloud di terze parti.