An organization runs a C# (.NET) microservice to ingest IoT telemetry. The service utilizes the `Azure.Messaging.EventHubs.Processor` library and deploys multiple instances of `EventProcessorClient` that share a common Azure Blob Storage container as a checkpoint store. During peak loads, you observe partition thrashing where consumer instances continuously claim and release partition ownership from each other, resulting in excessive duplicate processing. Upon reviewing the client configuration, you find the following setup:
csharp
var options = new EventProcessorClientOptions
{
LoadBalancingUpdateInterval = TimeSpan.FromSeconds(15),
PartitionOwnershipExpirationInterval = TimeSpan.FromSeconds(10)
};
Which of the following actions should you perform to resolve the partition thrashing?
- AImplement a custom BlobCheckpointStore that manually acquires and releases exclusive leases on the individual partition blobs using a BlobLeaseClient to prevent concurrent ownership modifications.
- Increase the PartitionOwnershipExpirationInterval to a value that is significantly greater than the LoadBalancingUpdateInterval, such as 45 seconds.Cevap
- CChange the authentication of the EventProcessorClient from a system-assigned managed identity to a user-assigned managed identity to prevent instances from sharing lease credentials.
- DMigrate the event consumption workload to an Azure Service Bus Queue and configure the client to receive messages in ReceiveAndDelete mode.