Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
本指南提供了将 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:创建事件中心资源
- 创建命名空间:遵循 创建事件中心命名空间
- 创建事件中心:为每个要迁移的 Kafka 主题创建一个事件中心
- 获取连接字符串:请按照获取连接字符串的步骤进行。
请注意连接字符串中的命名空间 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 |
开始仅读取新消息 |
验证迁移
验证生产者连接
- 使用更新的配置启动生成者应用程序
- 将测试消息发送到事件中心
- 确认消息到达 Azure 门户:
- 导航到事件中心命名空间
- 选择 “概述>指标>”消息
验证使用者连接
- 使用更新的配置启动使用者应用程序
- 确认正在接收消息
- 使用 Azure Monitor 或应用程序指标监视使用者滞后时间
性能验证
将性能与基线进行比较:
| 指标 | 如何验证 |
|---|---|
| 吞吐量(MB/秒) | 在 Azure 门户中监视传入/传出字节数 |
| 延迟 | 测量应用程序中的端到端消息传递时间 |
| 消费者延迟 | 在 Azure 门户中或通过 Kafka 使用者指标检查使用者组滞后时间 |
有关性能优化,请参阅 Apache Kafka 客户端配置。
停用 Kafka 群集
验证成功后:
- 并行监视:在稳定期间运行这两个系统
- 重定向所有流量:更新所有生成者和使用者以使用事件中心
- 验证没有流量:确认 Kafka 群集没有活动连接
- 停用:关闭和删除 Kafka 基础结构
Troubleshooting
如果在迁移过程中遇到问题:
| 問题 | Resource |
|---|---|
| 连接或身份验证错误 | Apache Kafka 故障排除指南 |
| 配置问题 | Apache Kafka 客户端配置 |
| 一般问题 | 常见问题解答 |