
关于
Azure Event Hubs Rust SDK。用于发送和接收事件、流式数据摄入。
name: azure-eventhub-rust description: Azure Event Hubs SDK for Rust。用于发送和接收事件、流式数据摄取。 risk: unknown source: community date_added: '2026-02-27'
Azure Event Hubs SDK for Rust
Azure Event Hubs 客户端库 — 大数据流式平台和事件摄取服务。
安装
cargo add azure_messaging_eventhubs azure_identity
环境变量
EVENTHUBS_HOST=<namespace>.servicebus.windows.net
EVENTHUB_NAME=<eventhub-name>
核心概念
- 命名空间 — Event Hubs 的容器
- Event Hub — 分区的事件流,用于并行处理
- 分区 — 有序的事件序列
- 生产者 — 向 Event Hub 发送事件
- 消费者 — 从分区接收事件
生产者客户端
创建生产者
use azure_identity::DeveloperToolsCredential;
use azure_messaging_eventhubs::ProducerClient;
let credential = DeveloperToolsCredential::new(None)?;
let producer = ProducerClient::builder()
.open("<namespace>.servicebus.windows.net", "eventhub-name", credential.clone())
.await?;
发送单个事件
producer.send_event(vec![1, 2, 3, 4], None).await?;
发送批次
let batch = producer.create_batch(None).await?;
batch.try_add_event_data(b"event 1".to_vec(), None)?;
batch.try_add_event_data(b"event 2".to_vec(), None)?;
producer.send_batch(batch, None).await?;
消费者客户端
创建消费者
use azure_messaging_eventhubs::ConsumerClient;
let credential = DeveloperToolsCredential::new(None)?;
let consumer = ConsumerClient::builder()
.open("<namespace>.servicebus.windows.net", "eventhub-name", credential.clone())
.await?;
接收事件
// 为特定分区打开接收器
let receiver = consumer.open_partition_receiver("0", None).await?;
// 接收事件
let events = receiver.receive_events(100, None).await?;
for event in events {
println!("Event data: {:?}", event.body());
}
获取 Event Hub 属性
let properties = consumer.get_eventhub_properties(None).await?;
println!("Partitions: {:?}", properties.partition_ids);
获取分区属性
let partition_props = consumer.get_partition_properties("0", None).await?;
println!("Last sequence number: {}", partition_props.last_enqueued_sequence_number);
最佳实践
- 复用客户端 — 创建一次,发送多个事件
- 使用批次 — 比单独发送更高效
- 检查批次容量 —
try_add_event_data满时返回 false - 并行处理分区 — 每个分区可独立消费
- 使用消费者组 — 隔离不同的消费应用
- 处理检查点 — 使用
azure_messaging_eventhubs_checkpointstore_blob用于分布式消费者
检查点存储(可选)
用于带检查点的分布式消费者:
cargo add azure_messaging_eventhubs_checkpointstore_blob
参考链接
| 资源 | 链接 | |------|------| | API 参考 | https://docs.rs/azure_messaging_eventhubs | | 源代码 | https://github.com/Azure/azure-sdk-for-rust/tree/main/sdk/eventhubs/azure_messaging_eventhubs | | crates.io | https://crates.io/crates/azure_messaging_eventhubs |
何时使用
此技能适用于执行概述中描述的工作流或操作。
限制
- 仅在任务明确匹配上述范围时使用此技能。
- 不要将输出视为特定环境验证、测试或专家审查的替代品。
- 如果缺少必要的输入、权限、安全边界或成功标准,请停下来寻求澄清。
兼容工具
Claude CodeCursor
标签
前端开发