Skip to main content 首页 创作者 beko2210 firstbrain azure-eventhub-java
azure-eventhub-java Build real-time streaming applications with Azure Event Hubs SDK for Java. Use when implementing event streaming, high-throughput data ingestion, or building event-driven architectures.
跳到安装 Skills Marketplace 发现并探索由社区构建的 Agent Skills
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/BEKO2210/Firstbrain --skill azure-eventhub-java命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
下载 Zip 下载中... name azure-eventhub-java description Build real-time streaming applications with Azure Event Hubs SDK for Java. Use when implementing event streaming, high-throughput data ingestion, or building event-driven architectures. type skill created 2026-02-27T00:00:00.000Z domain cloud-infrastructure category azure risk unknown source community tags ["skill","cloud-infrastructure","azure","eventhub"]
Azure Event Hubs SDK for Java
Build real-time streaming applications using the Azure Event Hubs SDK for Java.
Installation
<dependency >
<groupId > com.azure</groupId >
<artifactId > azure-messaging-eventhubs</artifactId >
<version > 5.19.0</version >
</dependency >
<dependency >
<groupId > com.azure</groupId >
<artifactId > azure-messaging-eventhubs-checkpointstore-blob</artifactId >
<version > 1.20.0</version >
</dependency >
Client Creation
EventHubProducerClient
import com.azure.messaging.eventhubs.EventHubProducerClient;
import com.azure.messaging.eventhubs.EventHubClientBuilder;
EventHubProducerClient producer = new EventHubClientBuilder ()
.connectionString("<connection-string>" , "<event-hub-name>" )
.buildProducerClient();
EventHubProducerClient producer = ()
.connectionString( )
.buildProducerClient();
new
EventHubClientBuilder
"<connection-string-with-entity-path>"
With DefaultAzureCredential import com.azure.identity.DefaultAzureCredentialBuilder;
EventHubProducerClient producer = new EventHubClientBuilder ()
.fullyQualifiedNamespace("<namespace>.servicebus.windows.net" )
.eventHubName("<event-hub-name>" )
.credential(new DefaultAzureCredentialBuilder ().build())
.buildProducerClient();
EventHubConsumerClient import com.azure.messaging.eventhubs.EventHubConsumerClient;
EventHubConsumerClient consumer = new EventHubClientBuilder ()
.connectionString("<connection-string>" , "<event-hub-name>" )
.consumerGroup(EventHubClientBuilder.DEFAULT_CONSUMER_GROUP_NAME)
.buildConsumerClient();
Async Clients import com.azure.messaging.eventhubs.EventHubProducerAsyncClient;
import com.azure.messaging.eventhubs.EventHubConsumerAsyncClient;
EventHubProducerAsyncClient asyncProducer = new EventHubClientBuilder ()
.connectionString("<connection-string>" , "<event-hub-name>" )
.buildAsyncProducerClient();
EventHubConsumerAsyncClient asyncConsumer = new EventHubClientBuilder ()
.connectionString("<connection-string>" , "<event-hub-name>" )
.consumerGroup("$Default" )
.buildAsyncConsumerClient();
Core Patterns
Send Single Event import com.azure.messaging.eventhubs.EventData;
EventData eventData = new EventData ("Hello, Event Hubs!" );
producer.send(Collections.singletonList(eventData));
Send Event Batch import com.azure.messaging.eventhubs.EventDataBatch;
import com.azure.messaging.eventhubs.models.CreateBatchOptions;
EventDataBatch batch = producer.createBatch();
for (int i = 0 ; i < 100 ; i++) {
EventData event = new EventData ("Event " + i);
if (!batch.tryAdd(event)) {
producer.send(batch);
batch = producer.createBatch();
batch.tryAdd(event);
}
}
if (batch.getCount() > 0 ) {
producer.send(batch);
}
Send to Specific Partition CreateBatchOptions options = new CreateBatchOptions ()
.setPartitionId("0" );
EventDataBatch batch = producer.createBatch(options);
batch.tryAdd(new EventData ("Partition 0 event" ));
producer.send(batch);
Send with Partition Key CreateBatchOptions options = new CreateBatchOptions ()
.setPartitionKey("customer-123" );
EventDataBatch batch = producer.createBatch(options);
batch.tryAdd(new EventData ("Customer event" ));
producer.send(batch);
Event with Properties EventData event = new EventData ("Order created" );
event.getProperties().put("orderId" , "ORD-123" );
event.getProperties().put("customerId" , "CUST-456" );
event.getProperties().put("priority" , 1 );
producer.send(Collections.singletonList(event));
Receive Events (Simple) import com.azure.messaging.eventhubs.models.EventPosition;
import com.azure.messaging.eventhubs.models.PartitionEvent;
Iterable<PartitionEvent> events = consumer.receiveFromPartition(
"0" ,
10 ,
EventPosition.earliest(),
Duration.ofSeconds(30 )
);
for (PartitionEvent partitionEvent : events) {
EventData event = partitionEvent.getData();
System.out.println("Body: " + event.getBodyAsString());
System.out.println("Sequence: " + event.getSequenceNumber());
System.out.println("Offset: " + event.getOffset());
}
EventProcessorClient (Production) import com.azure.messaging.eventhubs.EventProcessorClient;
import com.azure.messaging.eventhubs.EventProcessorClientBuilder;
import com.azure.messaging.eventhubs.checkpointstore.blob.BlobCheckpointStore;
import com.azure.storage.blob.BlobContainerAsyncClient;
import com.azure.storage.blob.BlobContainerClientBuilder;
BlobContainerAsyncClient blobClient = new BlobContainerClientBuilder ()
.connectionString("<storage-connection-string>" )
.containerName("checkpoints" )
.buildAsyncClient();
EventProcessorClient processor = new EventProcessorClientBuilder ()
.connectionString("<eventhub-connection-string>" , "<event-hub-name>" )
.consumerGroup("$Default" )
.checkpointStore(new BlobCheckpointStore (blobClient))
.processEvent(eventContext -> {
EventData event = eventContext.getEventData();
System.out.println("Processing: " + event.getBodyAsString());
eventContext.updateCheckpoint();
})
.processError(errorContext -> {
System.err.println("Error: " + errorContext.getThrowable().getMessage());
System.err.println("Partition: " + errorContext.getPartitionContext().getPartitionId());
})
.buildEventProcessorClient();
processor.start();
Thread.sleep(Duration.ofMinutes(5 ).toMillis());
processor.stop();
Batch Processing EventProcessorClient processor = new EventProcessorClientBuilder ()
.connectionString("<connection-string>" , "<event-hub-name>" )
.consumerGroup("$Default" )
.checkpointStore(new BlobCheckpointStore (blobClient))
.processEventBatch(eventBatchContext -> {
List<EventData> events = eventBatchContext.getEvents();
System.out.printf("Received %d events%n" , events.size());
for (EventData event : events) {
System.out.println(event.getBodyAsString());
}
eventBatchContext.updateCheckpoint();
}, 50 )
.processError(errorContext -> {
System.err.println("Error: " + errorContext.getThrowable());
})
.buildEventProcessorClient();
Async Receiving asyncConsumer.receiveFromPartition("0" , EventPosition.latest())
.subscribe(
partitionEvent -> {
EventData event = partitionEvent.getData();
System.out.println("Received: " + event.getBodyAsString());
},
error -> System.err.println("Error: " + error),
() -> System.out.println("Complete" )
);
Get Event Hub Properties
EventHubProperties hubProps = producer.getEventHubProperties();
System.out.println("Hub: " + hubProps.getName());
System.out.println("Partitions: " + hubProps.getPartitionIds());
PartitionProperties partitionProps = producer.getPartitionProperties("0" );
System.out.println("Begin sequence: " + partitionProps.getBeginningSequenceNumber());
System.out.println("Last sequence: " + partitionProps.getLastEnqueuedSequenceNumber());
System.out.println("Last offset: " + partitionProps.getLastEnqueuedOffset());
Event Positions
EventPosition.earliest()
EventPosition.latest()
EventPosition.fromOffset(12345L )
EventPosition.fromSequenceNumber(100L )
EventPosition.fromEnqueuedTime(Instant.now().minus(Duration.ofHours(1 )))
Error Handling import com.azure.messaging.eventhubs.models.ErrorContext;
.processError(errorContext -> {
Throwable error = errorContext.getThrowable();
String partitionId = errorContext.getPartitionContext().getPartitionId();
if (error instanceof AmqpException) {
AmqpException amqpError = (AmqpException) error;
if (amqpError.isTransient()) {
System.out.println("Transient error, will retry" );
}
}
System.err.printf("Error on partition %s: %s%n" , partitionId, error.getMessage());
})
Resource Cleanup
try {
producer.send(batch);
} finally {
producer.close();
}
try (EventHubProducerClient producer = new EventHubClientBuilder ()
.connectionString(connectionString, eventHubName)
.buildProducerClient()) {
producer.send(events);
}
Environment Variables EVENT_HUBS_CONNECTION_STRING=Endpoint=sb://<namespace>.servicebus.windows.net/;SharedAccessKeyName=...
EVENT_HUBS_NAME=<event-hub-name>
STORAGE_CONNECTION_STRING=<for-checkpointing>
Best Practices
Use EventProcessorClient : For production, provides load balancing and checkpointing
Batch Events : Use EventDataBatch for efficient sending
Partition Keys : Use for ordering guarantees within a partition
Checkpointing : Checkpoint after processing to avoid reprocessing
Error Handling : Handle transient errors with retries
Close Clients : Always close producer/consumer when done
Trigger Phrases
"Event Hubs Java"
"event streaming Azure"
"real-time data ingestion"
"EventProcessorClient"
"event hub producer consumer"
"partition processing"
When to Use This skill is applicable to execute the workflow or actions described in the overview.
Connections
Domain: [[Cloud & Infrastruktur]]
Kategorie: [[Microsoft Azure]]
Navigation: [[Skills Uebersicht]], [[Home]]