在远程主机上运行事务性一致的 Kafka Java 应用程序

您可以在与托管 CDC Replication Engine for Kafka的主机不同的主机上运行 Kafka 事务性一致的使用者应用程序。

关于本任务

要设置此配置,请将 Kafka 事务性一致使用者 Java 应用程序的 /lib/jre64 目录及文件复制到远程主机。

在以下过程中,示例将托管 CDC Replication Engine for Kafka 的服务器标识为 host-1,并将运行应用程序的服务器标识为 host-2。

过程

  1. 在 host-1上,将 CDC_Kafka_installation_directory/lib 目录压缩为.tar.gz 格式。
    $ tar -zcvf cdcKafkaLib.tar.gz CDC_Kafka_installation_directory/lib/
  2. 将 .tar.gz 文件复制到 host-2。
    $ cp cdcKafkaLib.tar.gz /home/user
    注: 如果您没有允许通过不同服务器访问同一目录的映射网络驱动器,那么可能需要使用安全复制 (SCP) 方法发送文件,例如:
    $ scp cdcKafkaLib.tar.gz user@host-2:/home/user
  3. 在 host-1上,将 CDC_Kafka_installation_directory/jre64 目录压缩为.tar.gz 格式。
    $ tar –zcvf cdcJRE.tar.gz CDC_Kafka_installation_directory/jre64
  4. cdcJRE.tar.gz 文件复制到 host-2。
    $ cp cdcJRE.tar.gz /home/user
  5. 将 Kafka 事务性一致使用者应用程序复制到 host-2。
    $ cd CDC_Kafka_installation_directory/lib
    $ cat txnconsumer-applications-samples-*.jar | jar -xv
    $ cp CDC_Kafka_installation_directory/lib/com/datamirror/ts/kafka/txconsistentconsumer/sampleapplications/application.java /home/user
    
  6. 在 host-2 上,解压缩这两个 .tar.gz 文件。
    $ gunzip < cdcKafkaLib.tar.gz | tar xvf –
    $ gunzip < cdcJRE.tar.gz | tar xvf -
    
    此时,host-2 应该包含 CDC_Kafka_installation_directory 中的以下各项:
    • lib 文件夹
    • jre64 文件夹
    • Kafka 事务性一致使用者应用程序
  7. 使用 IBM JDK 在 host-2 上编译应用程序。
    $ javac -cp "lib/*" application.java
    注: 该命令应在同一文件夹中创建 application.class 文件。
  8. 更改 JAVA_HOME 环境变量以指向 CDC Replication JRE。
    $ export JAVA_HOME=/home/user/jre64/jre
    $ export PATH=$JAVA_HOME/bin:$PATH
    
  9. 创建包含 Kafka 属性的使用者配置文件。
    $ cat config.properties
    bootstrap.servers=PLAINTEXT://kafka broker host name:port
    schema.registry.url=HTTP://schema registry host name:port 
    
  10. 启动应用程序。
    java –cp "lib/*" application name -cs commit stream topic name -c config.properties –d
    注: 如果此命令导致以下错误: "错误: 找不到或无法装入主类" ,请重新运行带有包详细信息的命令:
    java –cp "lib/*" com.datamirror.ts.kafka.txconsistentconsumer.sampleapplications.application name -cs commit stream topic name -c config.properties –d