你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:在 Azure Spring Apps 中部署使用服务连接器连接到 Confluent Cloud 上 Apache Kafka 的 Spring Boot 应用

了解 Azure Spring Apps 上运行的 Spring Boot 应用程序如何访问 Confluent Cloud 上的 Apache Kafka。 在本教程中,请完成以下任务:

  • 在 Confluent Cloud 上创建 Apache Kafka
  • 创建 Spring Cloud 应用程序
  • 生成和部署 Spring Boot 应用
  • 使用服务连接器将 Confluent Cloud 上的 Apache Kafka 连接到 Azure Spring Apps

警告

Microsoft 建议使用最安全的可用身份验证流。 本过程中介绍的身份验证流程需要非常高的信任度,并携带其他流中不存在的风险。 请仅在无法使用其他更安全的流(例如托管标识)时才使用此流。

先决条件

  • 具有活动订阅的 Azure 帐户。 免费创建帐户

  • 具有长期支持 (LTS) 1 的 Java 8 或更新版本。

克隆或下载示例应用

  1. 克隆示例存储库:

    git clone https://github.com/Azure-Samples/serviceconnector-springcloud-confluent-springboot/
    
  2. 导航到以下文件夹:

    cd serviceconnector-springcloud-confluent-springboot
    

准备云服务

为 Confluent Cloud 创建 Apache Kafka 实例

遵照本指导为 Confluent Cloud 创建 Apache Kafka 实例。

在 Confluent Cloud 上创建 Kafka 群集和架构注册表

  1. 使用 Azure 提供的 SSO 登录到 Confluent Cloud

    使用 Azure 门户的 Confluent Cloud SSO 登录链接

  2. 使用默认环境或创建新环境

    Confluent Cloud 上的 Apache Kafka 云环境

  3. 使用以下信息创建 Kafka 群集:

    • 群集类型:标准
    • 区域:美国东部(弗吉尼亚),单个区域
    • 群集名称:cluster_1 或任何其他名称。
  4. 在“群集概述”->“群集设置”中,记下 Kafka 启动服务器 URL

    Confluent Cloud 上的 Apache Kafka 群集设置

  5. 在“数据集成”->“API 密钥”->“+ 添加密钥”中,为群集创建具有“全局访问权限”的 API 密钥。 记下密钥和机密。

  6. 在“主题”->“+ 添加主题”中,创建包含分区 6 的名为 test 的主题。

  7. 在默认环境中,选择“架构注册表”选项卡。启用架构注册表并记下“API 终结点”。

  8. 为架构注册表创建 API 密钥。 保存密钥和机密。

创建 Azure Spring Apps 实例

按照 Java 中的 Spring Apps 快速入门创建 Azure Spring Apps 的实例。 请确保在支持服务连接器的区域中创建 Azure Spring Apps 实例。

生成并部署应用

生成示例应用并创建新的 Spring 应用

  1. 登录到 Azure 并选择订阅。

    az login
    
    az account set --subscription <Name or ID of your subscription>
    
  2. 使用 Gradle 生成项目。

    ./gradlew build
    
  3. 创建已分配公共终结点的应用。 如果在生成 Spring Cloud 项目时选择了 Java 版本 11,请包含 --runtime-version=Java_11 开关。

    az spring app create -n hellospring -s <service-instance-name> -g <your-resource-group-name> --assign-endpoint true
    

使用服务连接器创建服务连接

运行以下命令将 Confluent Cloud 上的 Apache Kafka 连接到 Spring Cloud 应用。

az spring connection create confluent-cloud -g <your-spring-cloud-resource-group> --service <your-spring-cloud-service> --app <your-spring-cloud-app> --deployment <your-spring-cloud-deployment> --bootstrap-server <kafka-bootstrap-server-url> --kafka-key <cluster-api-key> --kafka-secret <cluster-api-secret> --schema-registry <kafka-schema-registry-endpoint> --schema-key <registry-api-key> --schema-secret <registry-api-secret>

将以下占位符文本替换为你自己的数据:

  • <your-resource-group-name> 替换为创建 Apps Spring Apps 实例使用的资源组名称。
  • <kafka-bootstrap-server-url> 替换为 Kafka 启动服务器 URL。 例如:pkc-xxxx.eastus.azure.confluent.cloud:9092
  • <cluster-api-key><cluster-api-secret> 替换为群集 API 密钥和机密。
  • <kafka-schema-registry-endpoint> 替换为 Kafka 架构注册表终结点。 例如:https://psrc-xxxx.westus2.azure.confluent.cloud
  • <registry-api-key><registry-api-secret> 替换为 Kafka 架构注册表 API 密钥和机密。

注意

如果看到错误消息“该订阅未注册为使用 Microsoft.ServiceLinker”,请运行 az provider register -n Microsoft.ServiceLinker 注册服务连接器资源提供程序,然后再次运行连接命令。

部署 JAR 文件

运行以下命令将 JAR 文件 (build/libs/java-springboot-0.0.1-SNAPSHOT.jar) 上传到 Spring Cloud 应用。

az spring app deploy -n hellospring -s <service-instance-name> -g <your-resource-group-name>  --artifact-path build/libs/java-springboot-0.0.1-SNAPSHOT.jar

验证 Kafka 数据引入

从 Azure 门户导航到 Spring Cloud 应用的终结点,然后选择应用程序 URL。 你将看到“主题测试生成了 10 条消息”。

然后转到 Confluent 门户,主题页将显示生产吞吐量。

示例指标

后续步骤

参考下面列出的教程来详细了解服务连接器。