Can I distribute traffic across three Premium Event Hubs namespaces with a load balancer?
Asked by
MellowCedar42
I'm working on a system that may ingest a massive amount of data. A Premium Event Hubs namespace with 16 processing units and 100 partitions may not provide enough capacity. Could I place an Azure Load Balancer in front of three Premium Event Hubs namespaces and distribute producers across them? The clients use TCP connections on port 9093, so I'm also wondering whether that creates any issues. Are there ingress-rate limits or other Azure Load Balancer constraints that would prevent this design?
Answers
An Azure Load Balancer probably isnโt suitable for this. TCP port 9093 isnโt the main issue; Event Hubs namespaces or their private endpoints canโt be used as backend targets in a Load Balancer pool. Azure Load Balancer is primarily designed for IaaS resources such as virtual machines and VM scale sets. For very large workloads, Event Hubs Dedicated is the option worth evaluating first. Another approach is to use multiple Premium namespaces and shard producers across them in your application, but that adds routing, monitoring, and operational complexity.
Reply to this answer
A load balancer wonโt provide a transparent way to combine several Event Hubs namespaces. If you stay with Premium, the usual design is to shard producers explicitly across separate namespaces and make sure consumers know which namespace contains each stream. Benchmark that setup against Event Hubs Dedicated, since the right choice depends on your throughput, partitioning, latency, and operational requirements.
Reply to this answer
Add your answer
Answers are reviewed before publication.
MellowCedar42: That matches my concern. Iโm also considering Dedicated, but the hourly price appears to be several times higher than Premium. The relationship between processing units and capacity units isnโt very clear, so Iโm not sure how to compare them. If we use multiple Premium namespaces, we could assign specific producers to particular namespaces and similarly route consumers to the relevant partitions. Iโm trying to determine whether that architecture is practical before committing to the added complexity.