Azure 事件中心模拟器概述

Azure 事件中心 模拟器是一款本地开发工具,帮助您在离线、经济且隔离的环境中测试和原型 Event Hubs 应用。 模拟器在本地模拟事件中心服务,从而加快开发周期,消除与云相关的成本,并提供受控的测试环境。 本文概述了模拟器的优点、功能、限制和用法指南,以帮助你入门。

好处

使用仿真器的主要优点是:

  • 本地开发:模拟器提供本地开发体验,支持你脱机工作并避免网络延迟。
  • 成本效益:通过使用模拟器,你可以在不产生云使用成本的情况下测试应用。
  • 独立测试环境:可以单独测试代码,以帮助确保云中的其他活动不会影响测试。
  • 优化内部开发循环:利用模拟器快速原型和测试你的应用,然后再部署到云端。

功能

模拟器具备以下功能:

  • 容器化部署:作为 Docker 容器(基于 Linux)运行。
  • 跨平台兼容性:可在任何平台上使用,包括Windows、macOS和Linux。
  • 可配置性:通过使用JSON提供的配置管理活动中心、分区及其他实体的数量。
  • 流媒体支持:它通过使用 Kafka 和高级消息排队协议(AMQP)支持流式事件。
  • 可观测性:具备可观测性功能,包括控制台和文件日志记录。

已知限制

当前版本的模拟器存在以下限制:

  • 使用 Kafka 时,只有制作者和消费者 API 与 Event Hubs 模拟器兼容。

  • 在 Kafka 配置下,securityProtocolsaslmechanism 只能具有以下值:

      SecurityProtocol = SecurityProtocol.SaslPlaintext,
      SaslMechanism = SaslMechanism.Plain
    
  • 不支持通过客户端 SDK 进行实时管理操作。

注意

容器重启后,数据和实体不会保留在模拟器中。

模拟器与云服务之间的差异

由于Event Hubs模拟器仅用于开发和测试,模拟器和云服务之间存在功能差异。

模拟器不支持以下高级功能:

  • 虚拟网络集成、Microsoft Entra ID 集成、活动日志和 UI 门户等 Azure 功能
  • 事件中心捕获
  • 应用程序组等资源治理功能
  • 自动缩放功能
  • 异地灾难恢复功能
  • 架构注册表集成
  • 可视化指标和警报

注意

模拟器仅用于开发和测试方案。 请勿将其用于生产。 Microsoft 并未为该模拟器提供官方支持。

在模拟器的 GitHub 安装程序存储库中报告任何问题或建议。

使用配额

与 Azure 上的事件中心一样,模拟器提供以下使用情况配额:

属性 价值 用户可在限定范围内进行配置
支持的命名空间数 1
命名空间中事件中心的最大数目 10
事件中心内最大使用者组数 20
事件中心内的最大分区数 32
发布到事件中心的事件的最大大小(批处理/非批处理) 1 MB
最小事件保留时间 1 小时

模拟器会强制执行这些限制。 虽然有些数值可以通过使用 config.json来配置,但你不能超过列出的最大值。 在启动模拟器之前先做任何配置更改。

配额配置更改

默认情况下,系统使用 config.json 配置文件运行模拟器。 可以根据需要通过以下方式编辑此文件来配置与事件中心相关的配额:

  • 实体:您可以在支持的配额范围内添加更多实体(事件中心),并自定义分区数和使用者组数。
  • 记录:模拟器支持在控制台或文件上登录,或在两者上同时登录。 可以根据个人偏好进行选择。

重要

在运行模拟器之前,必须提供 JSON 配置中的任何更改。 不接受即时变更。 若要使更改生效,必须重启容器。

无法在配置文件中重命名预设命名空间 (name)。

用于调试的日志

在测试期间,控制台或文件日志有助于调试意外故障。 要查看日志,请使用以下步骤:

  • 控制台日志:在 Docker 桌面 UI 上,选择容器名称。
  • 文件日志:在容器中,转到 /home/app/EmulatorLogs

使用 Azure 事件中心模拟器在本地进行测试