连接到 Confluent Kafka
开始之前
在创建连接之前,请确保:
-
配置所需的策略以启用安全 Vault 和密钥访问,例如使用密钥、使用 Vault 和读取密钥包。有关详细信息,请参阅建议的最低策略。
-
如果使用 TLS/mTLS,请将 JKS 信任库或信任库和密钥库转换为
PKCS12格式以用于连接。-
使用 JDK 中的 keytool 实用程序可转换为 PKCS12 格式。
对于密钥库,keytool 实用程序会提示您输入密码,如以下示例中所示:keytool -importkeystore -srckeystore [MY_KEYSTORE.jks] -destkeystore [MY_KEYSTORE.p12] -srcstoretype JKS -deststoretype PKCS12 -deststorepass [PASSWORD_PKCS12]对于信任库,keytool 实用程序会提示输入密码,如以下示例中所示:keytool -importkeystore -srckeystore [MY_TRUSTSTORE.jks] -destkeystore [MY_TRUSTSTORE.p12] -srcstoretype JKS -deststoretype PKCS12 -deststorepass [PASSWORD_PKCS12] -
转换密钥库和信任库后,将以下行添加到 Kafka 生成器属性文件,然后保存所做的更改:
ssl.truststore.type=PKCS12 ssl.keystore.type=PKCS12 - 将文件上载到连接高级选项的设置部分中的生成器属性。
-
创建源连接
要创建源 Confluent Kafka 连接,请执行以下操作:
连接将显示在“连接”列表中,您可以在其中选择该连接以查看其详细信息。确保还创建与混合方案注册表的连接,然后将这两个连接分配给大数据部署。
创建目标连接
要创建目标 Confluent Kafka 连接,请执行以下操作:
连接将显示在“连接”列表中,您可以在其中选择该连接以查看其详细信息。确保还创建与混合方案注册表的连接,然后将这两个连接分配给大数据部署。
使用专用链接创建与 Confluent Cloud 的连接
通过专用链接,您可以通过虚拟网络中存在的专用端点访问在第三方云上运行的 Confluent Cloud 集群。
创建连接之前,请确保执行以下操作:
- 在 Oracle Cloud Infrastructure (OCI) 与目标第三方云之间创建专用网络连接。
- 在 Confluent Cloud 中为专用链接添加网络配置时,请确保选择专用 DNS 解析。
- 在配置 Confluent Cloud 和 OCI 的第三方云中配置 DNS 区域并设置 DNS 记录。在 OCI 中,您可以在 VCN 的专用视图中创建区域。在区域中,您可以添加所需的 DNS 记录。
可以使用上面的说明创建连接,但要代替步骤 5 和步骤 6,请执行以下操作:
- 对于步骤 3e:
- 提供引导服务器主机和端口详细信息。
- 可以添加多个 Bootstrap 服务器。
- 对于 3f:
- 对于安全协议,选择 SASL over Plaintext 。
- 输入用户名和口令。
排除 Kafka 连接错误
大多数连接问题都会导致 TimeoutException 错误。例如:
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.如果在复制报告文件中遇到此消息,您可以:
- 确保存在目标主题,或者检查是否在目标 Kafka 设置中启用了自动创建主题。
- 确保没有防火墙规则阻止流量。
- 如果您使用专用端点在 OCI 上运行 Kafka,请确保在 server.properties 和 Kafka 连接中使用内部 FQDN 作为引导服务器。
- 如果您要连接到具有专用端点的融合云:
- 确保在 OCI 和目标第三方云中正确配置了 DNS 区域和 DNS 记录。
- 确保 OCI 与目标云之间的网络连接正常工作。
- 测试您是否可以通过 OpenSSL (
openssl s_client -connect <bootstrap>) 从在连接到第三方云的同一子网中运行的 OCI VM 连接到目标 Confluent Cloud。 - 测试您是否可以在连接到第三方云的同一子网中发布或使用基于 OCI 运行的 Kafka 客户端的消息。如果失败,请检查 OCI 和第三方云上的网络设置。