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

Apache Kafka 迁移到 Azure

Azure HDInsight
Azure Cosmos DB
Azure Data Lake Storage
Azure 流分析

Apache Kafka 是实现发布-订阅体系结构的高度可缩放且容错的分布式消息传送系统。 它在实时流式处理方案中用作引入层,例如物联网和实时日志监视系统。 它还越来越多地用作 Kappa 体系结构中不可变的仅追加数据存储。

Apache®、Apache Spark®、Apache Hadoop、Apache HBaseApache Storm®、Apache Sqoop®®Apache Kafka® 和火焰徽标是美国和/或其他国家/地区 Apache Software Foundation 的注册商标或商标。 使用这些标记并不暗示获得 Apache Software Foundation 的认可。

迁移方法

本文介绍了将 Kafka 迁移到 Azure 的各种策略:

下面是决定要使用的策略的决策流程图。

此图显示了用于确定将 Kafka 迁移到 Azure 的策略的决策图表。

将 Kafka 迁移到 Azure IaaS

有关将 Kafka 迁移到 Azure IaaS 的一种方法,请参阅 Ubuntu 虚拟机上的 Kafka

将 Kafka 迁移到 Kafka 的事件中心

事件中心提供与 Apache Kafka 生成者和使用者 API 兼容的终结点。 大多数 Apache Kafka 客户端应用程序都可以使用此终结点,因此可以使用它作为在 Azure 上运行 Kafka 群集的替代方法。 终结点支持使用 API 版本 1.0 及更高版本的客户端。 有关此功能的详细信息,请参阅 Apache Kafka 事件中心概述

若要了解如何迁移 Apache Kafka 应用程序以使用事件中心,请参阅 迁移到 Apache Kafka 生态系统的事件中心

Kafka 和事件中心的功能

Kafka 与事件中心之间的相似性 Kafka 和事件中心的差异
使用分区 平台即服务与软件
分区是独立的 分区
使用客户端游标概念 应用程序接口
可以扩展到非常高的工作负荷 运行时
在概念上几乎完全相同 协议
两者都不使用 HTTP 协议接收 持续性
安全
限制
分区差异
卡 夫 卡 事件中心
分区计数管理缩放。 吞吐量单位管理缩放。
必须跨计算机对分区进行负载均衡。 负载均衡是自动的。
必须使用拆分和合并手动重新分片。 不需要重新分区。
持续性差异
卡 夫 卡 事件中心
默认情况下可变 始终持久
在收到确认后复制 (ACK) 在发送 ACK 之前复制
取决于磁盘和仲裁 存储提供
安全差异
卡 夫 卡 事件中心
安全套接字层 (SSL) 和简单身份验证和安全层 (SASL) 共享访问签名(SAS)和 SASL 或 PLAIN RFC 4618
类似于文件的访问控制列表 政策
可选的传输加密 强制传输层安全性 (TLS)
基于用户的 基于令牌(无限制)
其他差异
卡 夫 卡 事件中心
不限制 支持限制
使用专有协议 使用 AMQP 1.0 协议
不使用 HTTP 进行发送 使用 HTTP 发送和批处理发送

迁移 Kafka on HDInsight

可以将 Kafka 迁移到 Kafka on HDInsight。 有关详细信息,请参阅 HDInsight 中的 Apache Kafka 是什么?

将 AKS 与 Kafka on HDInsight 配合使用

有关详细信息,请参阅 将 AKS 与 Apache Kafka on HDInsight 配合使用

将 Kafka on AKS 与 Strimzi 运算符配合使用

有关详细信息,请参阅 使用 Strimzi 在 AKS 上部署 Kafka 群集

Kafka 数据迁移

可以使用 Kafka 的 MirrorMaker 工具 将主题从一个群集复制到另一个群集。 在预配 Kafka 群集后,此方法可帮助你迁移数据。 有关详细信息,请参阅 使用 MirrorMaker 通过 Kafka on HDInsight 复制 Apache Kafka 主题

以下迁移方法使用镜像:

  1. 首先移动生成者。 迁移生成者时,会阻止在源 Kafka 上生成新消息。

  2. 源 Kafka 使用所有剩余的消息后,可以迁移使用者。

实现包括以下步骤:

  1. 将生成者客户端的 Kafka 连接地址更改为指向新的 Kafka 实例。

  2. 重启生成者业务服务,并将新消息发送到新的 Kafka 实例。

  3. 等待源 Kafka 中的数据被使用。

  4. 将使用者客户端的 Kafka 连接地址更改为指向新的 Kafka 实例。

  5. 重启使用者业务服务以使用来自新 Kafka 实例的消息。

  6. 验证使用者是否成功从新的 Kafka 实例获取数据。

监视 Kafka 群集

可以使用 Azure Monitor 日志分析 Apache Kafka on HDInsight 生成的日志。 有关详细信息,请参阅分析 Apache Kafka on HDInsight 的日志

Apache Kafka Streams API

通过 Kafka Streams API,可以近乎实时地处理数据并联接和聚合数据。 有关详细信息,请参阅 Kafka 流简介:流处理变得简单 - Confluent

Microsoft和 Confluent 伙伴关系

Confluent 为 Apache Kafka 提供云原生服务。 Microsoft和康弗伦特有战略联盟。 有关详细信息,请参阅以下资源:

供稿人

Microsoft维护本文。 以下参与者撰写了本文。

主要作者:

其他参与者:

若要查看非公开的LinkedIn个人资料,请登录LinkedIn。

后续步骤

Azure 产品简介

Azure 产品参考

其他