Sviluppo di user exit per le proprietà KCOP (UNIX e Linux )

Gli user exit forniscono al motore di replica CDC per l' Kafka e le proprietà KCOP. È possibile specificare queste proprietà tramite classi Java personalizzate passate al CDC in fase di esecuzione.

Informazioni su questa attività

È possibile specificare queste proprietà tramite file di configurazione oppure a livello di programmazione. Il motore di replica CDC per Kafka richiede le proprietà KCOP se si configurano gli abbonamenti per l'utilizzo dei KCOP.

Fornisci queste proprietà tramite una classe Java per ottenere maggiore flessibilità e gestire e crittografare in modo sicuro le informazioni sensibili.

Un user exit delle proprietà deve implementare l'interfaccia ` PropertiesExitIF `. La documentazione di riferimento dell'API è disponibile in formato Javadoc nella directory di installazione di CDC Replication. Per consultare la guida di riferimento dell'API, accedi al /docs/api/index.html file e apri la documentazione Javadoc nel tuo browser. L'implementazione di KcopPropertiesExitSample deve restituire gli stessi valori di configurazione definiti in un file di proprietà KCOP. Quando si abilita un'uscita delle proprietà KCOP, il motore di replica CDC per Kafka utilizza i valori restituiti dalla classe specificata.

Procedura

  1. Modificare e compilare uno o più KcopPropertiesExitSample.java file presenti nella CDC_Kafka_installation_directory/samples directory utilizzando l'SDK di IBM, Java Technology Edition, versione 17.
    $ cd CDC_Kafka_installation_directory/samples
    $ javac -classpath "CDC_Kafka_installation_directory/lib/*"
    CDC_Kafka_installation_directory/samples/KcopPropertiesExitSample.java
  2. Sposta la classe compilata utilizzando questo comando:
    $ mkdir CDC_Kafka_installation_directory/lib/com/ibm/cdc/kafka
    $ mv CDC_Kafka_installation_directory/samples/*.class CDC_Kafka_installation_directory/lib/com/ibm/cdc/kafka

    È inoltre possibile raggruppare le classi compilate in un file JAR. Se stai eseguendo il motore di replica CDC per l' Kafka e in un container, sposta i .class file o i JAR in CDC_Kafka_instance_directory/instance/<instance name>/lib. Copia anche tutte le dipendenze. Modifica la proprietà in modo che l'utente CDC sia il proprietario di queste librerie.

  3. Arrestare il motore di replica CDC per il datastore " Kafka ".
  4. Rendi la classe disponibile per CDC tramite un percorso di classe personalizzato.
    • Se stai utilizzando un classloader KCOP separato e hai già effettuato la configurazione instance/<instance name>/conf/user-classloader.cp come descritto nella sezione "Specificare un percorso di classe personalizzato per i KCOP ", aggiungi il percorso del file di classe a user-classloader.cp. Questo percorso è riservato esclusivamente alle librerie relative a KCOP e rimane isolato dal classloader di sistema.
    • Se non stai utilizzando un classloader KCOP separato, aggiungi il percorso del file di classe al file instance/<instance name>/conf/user.cp.
    • Se la classe è contenuta in un file JAR, specificare il percorso assoluto del file JAR (ad esempio, /path/to/file.jar). Aggiungere questo file a o user-classloader.cpuser.cp a, a seconda che si utilizzi o meno un caricatore di classi KCOP separato.
  5. Avvia il motore di replica CDC per il datastore di Kafka. Il motore di replica CDC per Kafka applica le modifiche al percorso delle classi.
  6. Terminare la replica per le sottoscrizioni attive per le quali si desidera utilizzare le proprietà KCOP.
  7. Configurare le proprietà disponibili nella Console di gestione.
  8. Creare un kcop.properties file e richiamarlo dalla finestra di user exit dell'abbonamento utilizzando -file:<kcop properties file path>

    Il kcop.properties file deve contenere solo questa voce: properties.exit.class=com.ibm.cdc.kafka.KcopPropertiesExitSample

    L'implementazione KcopPropertiesExitSample deve restituire gli stessi valori di configurazione definiti direttamente nel kcop.properties file. Quando si specifica il properties.exit.class, CDC utilizza i valori restituiti dalla classe di uscita. Il CDC restituisce un errore se nel kcop.properties file sono presenti proprietà aggiuntive.

  9. Avvia la replica per poter utilizzare l'exit della proprietà KCOP.

    Utilizzo della partizione automatica con un'uscita utente consumer dell' Kafka

    La partizionatura automatica richiede che il processore KCOP interroghi l'argomento « Kafka » per conoscere il numero di partizioni prima di inviare i record al cluster. Per eseguire questa operazione è necessario che le proprietà consumer dell' Kafka o siano disponibili per la query.

    Quando si utilizza un user exit Java per le proprietà dei consumatori, è necessario specificare la classe consumatore Kafka insieme a PART ITION _AUTO=true. Pertanto, l'user exit KCOP relativo alle proprietà deve includere le seguenti proprietà:
    KAFKACONSUMER_PROPERTIES_CLASS=com.ibm.cdc.kafka.KafkaConsumerPropertiesExitSample
    PARTITION_AUTO=true