您可以在与托管 CDC Replication Engine for Kafka的主机不同的主机上运行 Kafka 事务性一致的使用者应用程序。
关于本任务
要设置此配置,请将 Kafka 事务性一致使用者 Java 应用程序的 /lib 和 /jre64 目录及文件复制到远程主机。
在以下过程中,示例将托管 CDC Replication Engine for Kafka 的服务器标识为 host-1,并将运行应用程序的服务器标识为 host-2。
过程
- 在 host-1上,将 CDC_Kafka_installation_directory/lib 目录压缩为.tar.gz 格式。
$ tar -zcvf cdcKafkaLib.tar.gz CDC_Kafka_installation_directory/lib/
- 将 .tar.gz 文件复制到 host-2。
$ cp cdcKafkaLib.tar.gz /home/user
注: 如果您没有允许通过不同服务器访问同一目录的映射网络驱动器,那么可能需要使用安全复制 (SCP) 方法发送文件,例如:
$ scp cdcKafkaLib.tar.gz user@host-2:/home/user
- 在 host-1上,将 CDC_Kafka_installation_directory/jre64 目录压缩为.tar.gz 格式。
$ tar –zcvf cdcJRE.tar.gz CDC_Kafka_installation_directory/jre64
- 将 cdcJRE.tar.gz 文件复制到 host-2。
$ cp cdcJRE.tar.gz /home/user
- 将 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
- 在 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 事务性一致使用者应用程序
- 使用 IBM JDK 在 host-2 上编译应用程序。
$ javac -cp "lib/*" application.java
注: 该命令应在同一文件夹中创建 application.class 文件。
- 更改 JAVA_HOME 环境变量以指向 CDC Replication JRE。
$ export JAVA_HOME=/home/user/jre64/jre
$ export PATH=$JAVA_HOME/bin:$PATH
- 创建包含 Kafka 属性的使用者配置文件。
$ cat config.properties
bootstrap.servers=PLAINTEXT://kafka broker host name:port
schema.registry.url=HTTP://schema registry host name:port
- 启动应用程序。
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