你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
了解 Azure Spring Apps 上运行的 Spring Boot 应用程序如何访问 Confluent Cloud 上的 Apache Kafka。 在本教程中,请完成以下任务:
- 在 Confluent Cloud 上创建 Apache Kafka
- 创建 Spring Cloud 应用程序
- 生成和部署 Spring Boot 应用
- 使用服务连接器将 Confluent Cloud 上的 Apache Kafka 连接到 Azure Spring Apps
注意
基本计划、标准计划和企业计划于 2025 年 3 月 17 日进入停用期。 有关详细信息,请参阅 Azure Spring Apps 停用公告。
标准消耗和专用计划于 2024 年 9 月 30 日进入停用期,并将在 2025 年 3 月底之前完全关闭。 有关详细信息,请参阅将 Azure Spring Apps 标准消耗和专用计划迁移到 Azure 容器应用。
警告
Microsoft 建议使用最安全的可用身份验证流。 本过程中介绍的身份验证流程需要非常高的信任度,并携带其他流中不存在的风险。 请仅在无法使用其他更安全的流(例如托管标识)时才使用此流。
先决条件
具有活动订阅的 Azure 帐户。 免费创建帐户。
具有长期支持 (LTS) 1 的 Java 8 或更新版本。
在 Azure Cloud Shell 中使用 Bash 环境。 有关详细信息,请参阅 Azure Cloud Shell 入门。
如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
如果使用的是本地安装,请使用 az login 命令登录 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅 使用 Azure CLI 向 Azure 进行身份验证。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展的详细信息,请参阅 使用和管理 Azure CLI 中的扩展。
运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
克隆或下载示例应用
克隆示例存储库:
git clone https://github.com/Azure-Samples/serviceconnector-springcloud-confluent-springboot/导航到以下文件夹:
cd serviceconnector-springcloud-confluent-springboot
准备云服务
为 Confluent Cloud 创建 Apache Kafka 实例
遵照本指导为 Confluent Cloud 创建 Apache Kafka 实例。
在 Confluent Cloud 上创建 Kafka 群集和架构注册表
使用 Azure 提供的 SSO 登录到 Confluent Cloud
使用默认环境或创建新环境
使用以下信息创建 Kafka 群集:
- 群集类型:标准
- 区域:美国东部(弗吉尼亚),单个区域
- 群集名称:
cluster_1或任何其他名称。
在“群集概述”-“群集设置”中,记下 Kafka 启动服务器 URL>。
在“数据集成”-“API 密钥”->“+ 添加密钥”中,为群集创建具有“全局访问权限”的 API 密钥。 记下密钥和机密。
在“主题”-
test“+ 添加主题”中,创建包含分区 6 的名为 的主题。在默认环境中,选择“架构注册表”选项卡。启用架构注册表并记下“API 终结点”。
为架构注册表创建 API 密钥。 保存密钥和机密。
创建 Azure Spring Apps 实例
按照 Java 中的 Spring Apps 快速入门创建 Azure Spring Apps 的实例。 请确保在支持服务连接器的区域中创建 Azure Spring Apps 实例。
生成并部署应用
生成示例应用并创建新的 Spring 应用
登录到 Azure 并选择订阅。
az login az account set --subscription <Name or ID of your subscription>使用 Gradle 生成项目。
./gradlew build创建已分配公共终结点的应用。 如果在生成 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 门户,主题页将显示生产吞吐量。
后续步骤
参考下面列出的教程来详细了解服务连接器。