There are times when you as cloud administrator, would want to scale Azure Service Bus Topic processing, but nodes may not powerful enough to handle 1000’s of requests/ second. Creating multiple message factories, sending and receiving asynchronously, doing batch send/receive and good ways to scale Azure Service Bus, but they are helpful only for publisher and subscriber mode. They won’t be much effective on a low power Topic Node.
So, how would you scale you Azure Service Bus to handle more than 10,000 transactions / second? Here are few tips to help you achieve that.
Partition Traffic across Multiple Queues & Topics
What do highway architects do when they need to increase / speed up flow of traffic? They add more lanes. More lanes means more traffic can flow through in less time. If you Azure Service Bus Topic traffic needs are increasing, partition your traffic across multiple queues and topics. You will get better traffic flow rates with more queues and topics to support large quantity of requests in a very short time. This will also let you send messages over multiple queues but they look like a single queue to you API – increasing the throughput of a Queue.
Use Azure Auto Scaling
With Azure auto scaling capabilities you can automatically monitor the messages in a queue (or CPU load) and add/remove instances to maintain that target.
You can use Azure Service Bus Automation and Monitoring by CloudMonix to help you scale and monitor queues. CloudMonix lets you Scale compute resources in real-time based on demand indicated by Service Bus queues or topics. Power up extra servers automatically as queue or topic depths increase and drop them when they decrease.
Cloudmonix keeps up with Service Bus queues, topics and event hubs every minute of every hour. You will also receive instant notification and alerts into Azure Service Bus queue problems. With CloudMonix, you can also monitor queue and topic depths, track dead-letter messages, get notified when messages are not processing and keep up with Event Hubs key performance indicators.