共用方式為

迁移到用于 Apache Kafka 的 Azure 事件中心

本指南提供了将 Apache Kafka 应用程序迁移到 Azure 事件中心的明确路径。 事件中心公开了一个与 Kafka 兼容的终结点,允许您仅通过更改配置来连接现有的 Kafka 客户端,无需修改代码。

迁移之前

验证功能兼容性

事件中心支持大多数 Kafka 客户端操作,但某些功能不可用。 查看此表以确保工作负荷兼容:

功能 / 特点 已支持 注释
生成消息 ✅ 是 标准生成者 API
消费消息 ✅ 是 标准使用者 API
使用者组 ✅ 是 偏移管理已支持
压缩 (gzip) ✅ 是 仅支持 gzip
架构注册表 ✅ 是 使用 Azure 架构注册表
Kafka Connect ✅ 是 请参阅 Kafka Connect 集成
压缩 (snappy, lz4, zstd) ✅ 是 使用 gzip 或 none
Kafka 事务 ✅ 是 目前为预览版。

有关支持的操作的完整列表,请参阅 Apache Kafka 事件中心

评估当前的 Kafka 设置

在迁移之前,请记录现有配置:

Item 要注意的内容 事件中心等效项
主题数 正在使用的主题总数 事件中心 (1:1 映射)
每个主题的分区数 分区计数 每个事件中心的分区数(可以在高级/专用层上创建后增加,但不能减少)
保留期 当前保留策略 1-7 天(标准),1-90 天(高级/专用)
Throughput 峰值 MB/秒 吞吐量单位或处理单位
邮件大小 最大消息大小 1 MB(标准/高级版),20 MB(专用)
压缩类型 snappy、lz4、gzip 等。 如果使用的是其他类型,请更改为 gzip 或 none

选择你的 Event Hubs 层

根据要求选择层:

Requirement 推荐级别
开发/测试,低吞吐量 标准
生产 Kafka 工作负载、区域冗余、完整的 Kafka 协议支持 高级
高吞吐量、大型消息(>1 MB)、专用资源 专属

重要

若要获得完整的 Kafka 协议兼容性,请使用 高级 层或 专用 层。 标准层具有可能影响某些 Kafka 工作负荷的限制。

有关详细层比较,请参阅 事件中心定价配额

迁移步骤

步骤 1:创建事件中心资源

  1. 创建命名空间:遵循 创建事件中心命名空间
  2. 创建事件中心:为每个要迁移的 Kafka 主题创建一个事件中心
  3. 获取连接字符串:请按照获取连接字符串的步骤进行。

请注意连接字符串中的命名空间 FQDN:

Endpoint=sb://NAMESPACE.servicebus.chinacloudapi.cn/;SharedAccessKeyName=...

FQDN 为: NAMESPACE.servicebus.chinacloudapi.cn

步骤 2:更新客户端配置

更新 Kafka 客户端配置以连接到事件中心。 在应用程序中找到定义的位置 bootstrap.servers 并应用以下设置:

bootstrap.servers=NAMESPACE.servicebus.chinacloudapi.cn:9093
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="YOUR_CONNECTION_STRING";

替换为:

  • NAMESPACE 使用您的事件中心命名空间名称
  • YOUR_CONNECTION_STRING 包含完整连接字符串

有关特定于框架的配置和建议的设置,请参阅 Apache Kafka 客户端配置

步骤 3:迁移现有数据(可选)

如果需要将历史数据从现有 Kafka 群集迁移到事件中心,请使用 Kafka MirrorMaker:

对于正在进行的复制或混合方案,MirrorMaker 可以持续运行,以使两个系统在分阶段迁移期间保持同步。

步骤 4:更新使用者偏移量

当使用者首次连接到事件中心时,它们不会有现有的偏移量。 根据需求进行配置 auto.offset.reset

设置 行为
earliest 从可用数据的开头开始读取
latest 开始仅读取新消息

验证迁移

验证生产者连接

  1. 使用更新的配置启动生成者应用程序
  2. 将测试消息发送到事件中心
  3. 确认消息到达 Azure 门户:
    • 导航到事件中心命名空间
    • 选择 “概述>指标>”消息

验证使用者连接

  1. 使用更新的配置启动使用者应用程序
  2. 确认正在接收消息
  3. 使用 Azure Monitor 或应用程序指标监视使用者滞后时间

性能验证

将性能与基线进行比较:

指标 如何验证
吞吐量(MB/秒) 在 Azure 门户中监视传入/传出字节数
延迟 测量应用程序中的端到端消息传递时间
消费者延迟 在 Azure 门户中或通过 Kafka 使用者指标检查使用者组滞后时间

有关性能优化,请参阅 Apache Kafka 客户端配置

停用 Kafka 群集

验证成功后:

  1. 并行监视:在稳定期间运行这两个系统
  2. 重定向所有流量:更新所有生成者和使用者以使用事件中心
  3. 验证没有流量:确认 Kafka 群集没有活动连接
  4. 停用:关闭和删除 Kafka 基础结构

Troubleshooting

如果在迁移过程中遇到问题:

問题 Resource
连接或身份验证错误 Apache Kafka 故障排除指南
配置问题 Apache Kafka 客户端配置
一般问题 常见问题解答