10

我正在评估 Azure Event Hub 与 Kafka 作为服务代理的使用。我希望我能够并排创建两个本地应用程序,一个使用 Kafka 使用消息,另一个使用 Azure Event Hub。我已经设置了一个 Docker 容器,它是一个 Kafka 实例,我正在使用我的 Azure 帐户设置 Azure 事件中心(据我所知,没有其他方法可以为 Azure 创建本地/开发实例事件中心)。

有没有人有关于这两者的任何信息在比较它们的功能时可能有用?

4

5 回答 5

7

无法直接添加评论,但当前评分最高的答案有

Kafka 可以有多个主题,每个 Azure 事件中心都是一个主题。

这是一种误导,因为它听起来好像您不能拥有多个主题,而您可以。根据https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-for-kafka-ecosystem-overview#kafka-and-event-hub-conceptual-mapping一个“事件中心”是一个主题,而“事件中心命名空间”是 Kafka 集群。

于 2021-05-11T14:50:54.417 回答
6

Kafka 可以有多个主题,每个 Azure 事件中心都是一个主题。Kafka 在容器内运行意味着您必须对其进行管理。Azure 事件中心是一个 PaaS,这意味着他们管理平台端。如果您不知道如何使 Kafka 变得冗余、可靠和可扩展,您可能希望使用 Azure 事件中心或任何提供类似发布/订阅模型的 PaaS。事件中心平台已经具备可扩展性、可靠性和冗余性。

于 2020-09-18T16:51:15.027 回答
6

如果您选择 azure 作为您的 iaas 和 paas 解决方案,则此决定通常是由更广泛的架构选择驱动的,那么事件中心在 azure 生态系统中提供了很好的集成,但如果您不希望供应商锁定 kafka 是更好的选择。

在操作上,如果您想要完全托管的服务,那么使用事件中心它是开箱即用的,但使用 kafka 您也可以通过融合平台获得它。

成熟的 kafka 比较老,社区很大,你有更大的支持。

功能方面,kafka 生态系统提供的功能 azure 生态系统有这些东西,但如果你只谈论事件中心,那么与 kafka 相比,它缺乏一些功能

我认为此链接可以帮助您扩展您的理解https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-for-kafka-ecosystem-overview

于 2021-01-06T00:09:07.273 回答
5

虽然 Apache Kafka 是您通常需要安装和操作的软件,但事件中心是一项完全托管的云原生服务。从来没有需要管理和监控的服务器、磁盘或网络,也没有需要考虑或配置的代理。您创建一个命名空间,这是一个具有完全限定域名的终结点,然后在该命名空间中创建事件中心(主题)。有关事件中心和命名空间的详细信息,请参阅事件中心功能。作为一种云服务,事件中心使用单个稳定的虚拟 IP 地址作为端点,因此客户端不需要了解集群中的代理或机器。即使事件中心实现相同的协议,这种差异意味着所有分区的所有 Kafka 流量都可预测地通过这一端点路由,而不需要对集群的所有代理进行防火墙访问。事件中心的扩展由您购买的吞吐量单位数控制,每个吞吐量单位使您有权获得每秒 1 兆字节,或每秒 1000 个事件的入口和两倍的出口量。如果您使用 Auto-Inflate 功能,事件中心可以在达到吞吐量限制时自动扩展吞吐量单位;此功能也适用于 Apache Kafka 协议支持。如果您使用 Auto-Inflate 功能,事件中心可以在达到吞吐量限制时自动扩展吞吐量单位;此功能也适用于 Apache Kafka 协议支持。如果您使用 Auto-Inflate 功能,事件中心可以在达到吞吐量限制时自动扩展吞吐量单位;此功能也适用于 Apache Kafka 协议支持。

您可以在此处找到有关功能比较的更多信息 - https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-for-kafka-ecosystem-overview

于 2020-09-18T16:54:09.023 回答
1

你应该比较

  • 管理能力/努力(如前所述)
  • 竞争客户和发布/订阅模式等功能性能力
  • 性能:如果您计划超过活动中心配额,则应考虑使用 kafka
于 2021-01-05T16:06:07.863 回答