Azure Event Hubs Java 开发技能
帮助 Java 开发者构建高吞吐、可 checkpoint 的 Azure 事件流应用。
示例同时提供连接字符串和 DefaultAzureCredential/Managed Identity,并建议生产环境使用特定凭据,体现了一定的认证分层;但未说明密钥保管、日志脱敏、最小 RBAC 权限、敏感事件数据处理、外部发送/存储确认或回滚,因此扣分。
覆盖生产处理器、批量发送、异步接收、错误处理和资源关闭,主路径较清晰;但仅有静态代码和文档,没有针对该技能的可见测试复现,两个示例的 SDK 版本不一致,部分代码片段缺少 imports、边界失败处理或生命周期说明,因此按静态上限保守扣分。
名称、受众和触发短语明确,覆盖生产/本地、同步/异步、分区和检查点场景;但未清楚界定不适用场景、输入输出契约、网络/权限前置条件或中文使用说明,且依赖 Azure 服务可达性,故扣分。
SKILL.md 采用安装、客户端、模式、错误处理、清理和最佳实践分层,并有 references/examples.md、MIT 许可证、作者和版本元数据;但版本在主文档与参考文档间不一致,缺少变更日志、维护责任/更新路径、FAQ、故障排查和已知限制,故未满分。
直接提供生产级 EventProcessorClient、批量发送、分区路由、检查点、事件位置和错误处理模板,核心编码任务大体可完成;但静态审查无法验证 API 编译、版本兼容性或完整可运行性,示例仍需用户补齐配置、权限、导入和业务处理,因此受静态上限限制。
文件包含具体 Maven 坐标、版本、代码样例、环境变量和仓库 CI/测试材料,具备一定审计线索;但没有该技能专属测试、执行结果或多来源交叉证据,且本次未执行任何代码,因此按静态上限给分。
- 主文档使用 azure-messaging-eventhubs 5.19.0 和 checkpointstore 1.20.0,而 references/examples.md 使用 5.21.0 和 1.21.0;应先统一并验证兼容版本。
- 连接字符串和存储连接字符串示例可能包含长期凭据;应改用安全机密存储、托管身份和最小权限,并避免输出事件内容或凭据。
- 代码片段未形成完整可编译项目,生产使用前需验证导入、API 签名、异常重试、关闭流程、检查点语义和权限配置。
它能做什么 & 适用场景
该技能面向使用 Azure Event Hubs SDK for Java 构建实时流处理和事件驱动应用的开发者。它覆盖生产者、消费者、异步客户端、批量发送、分区路由、事件属性和事件位置。生产场景可使用 EventProcessorClient 与 Blob checkpoint store 实现负载均衡和检查点。内容还包括 Entra ID 凭据、错误处理、资源清理及常用环境变量。
提供 Maven 依赖配置和 Java 代码模式,用于创建同步或异步生产者与消费者、发送单个事件或批量事件、按分区或分区键发送、读取事件及其序列号和偏移量、运行带 Blob 检查点存储的 EventProcessorClient、批量处理事件、查询 Event Hub 和分区属性、选择事件起始位置、处理暂态 AMQP 错误,以及关闭客户端资源。
- 需要用 Java 将高吞吐数据写入 Azure Event Hubs 的后端开发者,可使用生产者和 EventDataBatch 模式。
- 需要按分区读取实时事件的应用开发者,可使用同步或异步消费者。
- 构建生产级事件处理服务的团队,可使用 EventProcessorClient、Blob checkpoint store 和检查点。
- 需要保持同一客户或业务实体事件顺序的开发者,可使用 partition key。
- 需要从最早事件、最新事件、指定 offset、sequence number 或时间点开始消费的开发者,可使用 EventPosition。
优缺点一览
- 覆盖生产者、消费者、异步客户端和 EventProcessorClient 等主要 Java SDK 模式。
- 包含批量发送、分区键、检查点、错误处理和资源清理等实用实践。
- 同时给出连接字符串和 DefaultAzureCredential 两类认证方式。
- 提供具体 Maven 坐标、版本号和可复制的 Java 示例。
- 使用示例依赖 Azure Event Hubs 网络服务及相应凭据,不能脱离 Azure 服务独立运行。
- 生产级 checkpoint store 还需要 Azure Blob Storage 依赖和配置。
- 源材料没有提供该单项技能的独立测试场景或完整可运行项目。
如何安装
在项目中运行 npx skills add microsoft/skills,在向导中选择该技能。集合会安装到所选 Agent 的目录,例如 GitHub Copilot 使用 .github/skills/;源技能位于 .github/plugins/azure-sdk-java/skills/azure-eventhub-java/SKILL.md。项目还需加入 com.azure:azure-messaging-eventhubs:5.19.0;生产级检查点另需 com.azure:azure-messaging-eventhubs-checkpointstore-blob:1.20.0。
如何使用
将技能安装到 Agent 配置目录后,用类似“请用 Event Hubs Java SDK 构建一个带 Blob checkpoint store 的 EventProcessorClient”或“实现 Java Event Hubs 分区批量发送”这样的请求触发它。根据场景配置连接字符串或 DefaultAzureCredential,并设置事件中心名称;生产环境还需配置检查点存储。