
关于
使用 Azure Event Grid Java SDK 构建事件驱动应用。用于发布事件、实现发布/订阅模式和事件路由。
name: azure-eventgrid-java description: "使用 Azure Event Grid SDK for Java 构建事件驱动应用。在发布事件、实现发布/订阅模式或通过事件与 Azure 服务集成时使用。" risk: unknown source: community date_added: "2026-02-27"
Azure Event Grid SDK for Java
使用 Azure Event Grid SDK for Java 构建事件驱动应用。
安装
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-messaging-eventgrid</artifactId>
<version>4.27.0</version>
</dependency>
客户端创建
EventGridPublisherClient
import com.azure.messaging.eventgrid.EventGridPublisherClient;
import com.azure.messaging.eventgrid.EventGridPublisherClientBuilder;
import com.azure.core.credential.AzureKeyCredential;
// With API Key
EventGridPublisherClient<EventGridEvent> client = new EventGridPublisherClientBuilder()
.endpoint("<topic-endpoint>")
.credential(new AzureKeyCredential("<access-key>"))
.buildEventGridEventPublisherClient();
// For CloudEvents
EventGridPublisherClient<CloudEvent> cloudClient = new EventGridPublisherClientBuilder()
.endpoint("<topic-endpoint>")
.credential(new AzureKeyCredential("<access-key>"))
.buildCloudEventPublisherClient();
使用 DefaultAzureCredential
import com.azure.identity.DefaultAzureCredentialBuilder;
EventGridPublisherClient<EventGridEvent> client = new EventGridPublisherClientBuilder()
.endpoint("<topic-endpoint>")
.credential(new DefaultAzureCredentialBuilder().build())
.buildEventGridEventPublisherClient();
异步客户端
import com.azure.messaging.eventgrid.EventGridPublisherAsyncClient;
EventGridPublisherAsyncClient<EventGridEvent> asyncClient = new EventGridPublisherClientBuilder()
.endpoint("<topic-endpoint>")
.credential(new AzureKeyCredential("<access-key>"))
.buildEventGridEventPublisherAsyncClient();
事件类型
| 类型 | 描述 |
|------|------|
| EventGridEvent | Azure Event Grid 原生 schema |
| CloudEvent | CNCF CloudEvents 1.0 规范 |
| BinaryData | 自定义 schema 事件 |
核心模式
发布 EventGridEvent
import com.azure.messaging.eventgrid.EventGridEvent;
import com.azure.core.util.BinaryData;
EventGridEvent event = new EventGridEvent(
"resource/path", // subject
"MyApp.Events.OrderCreated", // eventType
BinaryData.fromObject(new OrderData("order-123", 99.99)), // data
"1.0" // dataVersion
);
client.sendEvent(event);
发布多个事件
List<EventGridEvent> events = Arrays.asList(
new EventGridEvent("orders/1", "Order.Created",
BinaryData.fromObject(order1), "1.0"),
new EventGridEvent("orders/2", "Order.Created",
BinaryData.fromObject(order2), "1.0")
);
client.sendEvents(events);
发布 CloudEvent
import com.azure.core.models.CloudEvent;
import com.azure.core.models.CloudEventDataFormat;
CloudEvent cloudEvent = new CloudEvent(
"/myapp/orders", // source
"order.created", // type
BinaryData.fromObject(orderData), // data
CloudEventDataFormat.JSON // dataFormat
);
cloudEvent.setSubject("orders/12345");
cloudEvent.setId(UUID.randomUUID().toString());
cloudClient.sendEvent(cloudEvent);
批量发布 CloudEvents
List<CloudEvent> cloudEvents = Arrays.asList(
new CloudEvent("/app", "event.type1", BinaryData.fromObject(data1), CloudEventDataFormat.JSON),
new CloudEvent("/app", "event.type2", BinaryData.fromObject(data2), CloudEventDataFormat.JSON)
);
cloudClient.sendEvents(cloudEvents);
兼容工具
Claude CodeCursor
标签
后端开发
