连接到 Confluent Kafka
了解如何创建与 Confluent Kafka 的连接。Confluent Kafka 与 Confluent Schema Registry 连接一起使用,可作为 OCI GoldenGate 大数据部署中的源或目标。
开始之前
确保:
-
配置所需的策略以启用安全 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 Schema Registry 的连接以与此连接一起使用。然后,您必须将两个连接分配给同一 OCI GoldenGate 大数据部署。
创建源连接
要创建源 Confluent Kafka 连接,请执行以下操作:
-
从 OCI GoldenGate 概览页面中,选择连接。
您还可以在“入门”部分下选择创建连接,然后跳至步骤 3。
-
在“连接”页上,选择创建连接。
-
在“Create Connection(创建连接)”页面上,按如下方式填写字段:
-
对于名称,输入连接的名称。
-
(可选)对于说明,输入有助于将此连接与其他连接区分开来的说明。
-
(仅限 GoldenGate on Multicloud )选择您的订阅,然后填写以下字段。
-
从区间下拉列表中,选择资源锚点所在的区间。
-
选择多云合作伙伴区域。
-
选择您的合作伙伴可用性区域。可用选项根据所选的多云合作伙伴区域进行填充。
-
-
对于区间,选择要在其中创建连接的区间。
-
从 Type(类型)下拉列表中,选择 Confluent Kafka 。
-
在引导服务器下:
-
为引导服务器输入 Host 和 Port 编号。仅当无法从您的子网解析主机名或该主机名使用 SSL/TLS 时,才输入专用 IP。
注:如果您输入专用 IP,则 OCI GoldenGate 将以
ip-10-0-0-0.ociggsvc.oracle.vcn.com格式重写专用 IP。提示:群集中的所有节点都必须具有 FQDN 才能通过专用端点进行遍历。
-
(可选)选择 + Bootstrap server 以添加其他引导服务器。
-
-
对于安全协议,从以下选项中进行选择:
-
明文
-
基于纯文本的 SASL,然后提供用户名和密码。
-
基于 SSL 的 SASL,然后根据需要提供 "Username"(用户名)、"Password"(密码)、"Truststore"(信任库)和 "Keystore"(密钥库)值。
-
SSL,然后根据需要提供信任库和密钥库值。
-
-
展开 Show advanced options 。您可以配置以下选项:
-
安全
-
取消选择您不希望为此连接使用密码密钥的使用 Vault 密钥。如果未选择:
-
选择使用 Oracle 管理的加密密钥可将所有加密密钥管理保留给 Oracle。
-
选择使用客户管理的加密密钥以选择存储在 OCI Vault 中的特定加密密钥来加密连接身份证明。
-
-
-
网络连接
-
共享端点:与分配的部署共享端点。必须允许从部署的入站 IP 进行连接。
-
专用端点:通过 VCN 中已分配子网中的专用端点传输的网络流量。您必须允许从此连接的入站 IP 进行连接。
注:
- 如果专用连接在七天内保持未分配状态,则服务会将其转换为共享连接。
- 详细了解 Oracle GoldenGate 连接。
-
-
设置:要从 Kafka 捕获,请使用以下反序列化器或转换器之一创建 Kafka 使用者属性文件:
-
JSON 反序列化器的 Kafka 使用者属性:
key.deserializer=org.apache.kafka.common.serialization.ByteArrayDeserializer value.deserializer=org.apache.kafka.common.serialization.ByteArrayDeserializer -
JSON 转换器的 Kafka 使用者属性:
key.converter=org.apache.kafka.connect.json.JsonConverter value.converter=org.apache.kafka.connect.json.JsonConverter -
适用于 Avro 转换器的 Kafka 使用者属性:
key.converter=io.confluent.connect.avro.AvroConverter value.converter=io.confluent.connect.avro.AvroConverter
-
-
安全属性:添加安全属性以使用 Zero Trust Packet Routing (ZPR) 控制对此连接的访问。
-
标记:添加标记来组织资源。
-
-
-
选择创建。
连接将显示在“Connections(连接)”列表中,您可以在其中选择该连接以查看其详细信息。确保还创建到 Confluent Schema Registry 的连接,然后将两个连接分配给大数据部署。
创建目标连接
要创建目标 Confluent Kafka 连接,请执行以下操作:
-
从 OCI GoldenGate 概览页面中,选择连接。
您还可以在“入门”部分下选择创建连接,然后跳至步骤 3。
-
在“连接”页上,选择创建连接。
-
在“Create Connection(创建连接)”页面上,按如下方式填写字段:
-
对于名称,输入连接的名称。
-
(可选)对于说明,输入有助于将此连接与其他连接区分开来的说明。
-
(仅限 GoldenGate on Multicloud )选择您的订阅,然后填写以下字段。
-
从区间下拉列表中,选择资源锚点所在的区间。
-
选择多云合作伙伴区域。
-
选择您的合作伙伴可用性区域。可用选项根据所选的多云合作伙伴区域进行填充。
-
-
对于区间,选择要在其中创建连接的区间。
-
从 Type(类型)下拉列表中,选择 Confluent Kafka 。
-
在引导服务器下:
-
选择流量路由方法:
-
为引导服务器输入 Host 和 Port 编号。仅当无法从您的子网解析主机名或该主机名使用 SSL/TLS 时,才输入专用 IP。
注:如果您输入专用 IP,则 OCI GoldenGate 将以
ip-10-0-0-0.ociggsvc.oracle.vcn.com格式重写专用 IP。提示:群集中的所有节点都必须具有 FQDN 才能通过专用端点进行遍历。
-
(可选)选择 + Bootstrap server 以添加其他引导服务器。
-
-
对于安全协议,从以下选项中进行选择:
-
明文
-
基于纯文本的 SASL,然后提供用户名和密码。
-
基于 SSL 的 SASL,然后根据需要提供 "Username"(用户名)、"Password"(密码)、"Truststore"(信任库)和 "Keystore"(密钥库)值。
-
SSL,然后根据需要提供信任库和密钥库值。
-
-
展开 Show advanced options 。您可以配置以下选项:
-
安全
-
取消选择您不希望为此连接使用密码密钥的使用 Vault 密钥。如果未选择:
-
选择使用 Oracle 管理的加密密钥可将所有加密密钥管理保留给 Oracle。
-
选择使用客户管理的加密密钥以选择存储在 OCI Vault 中的特定加密密钥来加密连接身份证明。
-
-
-
网络连接
-
共享端点:与分配的部署共享端点。必须允许从部署的入站 IP 进行连接。
-
专用端点:通过 VCN 中已分配子网中的专用端点传输的网络流量。您必须允许从此连接的入站 IP 进行连接。
注:
- 如果专用连接在七天内保持未分配状态,则服务会将其转换为共享连接。
- 详细了解 Oracle GoldenGate 连接。
-
-
设置:要在 Kafka 复制中使用 Snappy 压缩,请拖放或选择生成器属性,并更改复制设置,如使用压缩 OCI GoldenGate(Confluent) Kafka 复制中所述。
-
安全属性:添加安全属性以使用 Zero Trust Packet Routing (ZPR) 控制对此连接的访问。
-
标记:添加标记来组织资源。
-
-
-
选择创建。
连接将显示在“Connections(连接)”列表中,您可以在其中选择该连接以查看其详细信息。确保还创建到 Confluent Schema Registry 的连接,然后将两个连接分配给大数据部署。
使用专用链接创建与 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.
如果在 Replicat 报告文件中遇到此消息,您可以:
-
确保目标主题存在,或者检查是否在目标 Kafka 设置中启用了自动主题创建。
-
确保没有防火墙规则阻止流量。
-
如果您使用专用端点在 OCI 上运行 Kafka,请确保在 server.properties 和 Kafka 连接中使用内部 FQDN 作为引导服务器。
-
如果您使用专用端点连接到 Confluent Cloud:
-
确保在 OCI 和目标第三方云中正确配置了 DNS 区域和 DNS 记录。
-
确保 OCI 与目标云之间的网络连接正常运行。
-
测试您是否可以从连接到第三方云的同一子网中运行的 OCI VM 连接到目标 Confluent Cloud with OpenSSL (
openssl s_client -connect <bootstrap>)。 -
测试您是否可以在连接到第三方云的同一子网中,从在 OCI 上运行的 Kafka 客户端发布或使用消息。如果失败,请检查 OCI 和第三方云上的网络设置。
-