170 likes | 313 Views
Windows Azure Service Bus. Bill Chesnut Microsoft BizTalk Virtual Technical Specialist BizTalk Server MVP Principal Consultant for Mexia Bill@mexia.com.au. Windows Azure Service Bus. Connectivity Service Relay Protocol Tunnel Eventing, Push. Messaging Queuing Pub/Sub
E N D
Windows Azure Service Bus Bill Chesnut Microsoft BizTalk Virtual Technical Specialist BizTalk Server MVP Principal Consultant for Mexia Bill@mexia.com.au
Windows Azure Service Bus Connectivity Service Relay Protocol Tunnel Eventing, Push Messaging Queuing Pub/Sub Reliable Transfer Reliable,.
Windows Azure Service Bus Connectivity Service Relay Protocol Tunnel Eventing, Push Messaging Queuing Pub/Sub Reliable Transfer Reliable, .
Service Bus Relay Service Bus • Integrated w/ WCF programming model • Using Outbound Connections Only • No open inbound firewall/NAT ports • Outbound connections default to TCP • Fall back to HTTP when needed • Guarded by Datacenter Firewall • Secured with Access Control Frontend Nodes Ctrl NLB outbound socket connect outbound socket rendezvous Ctrl Forwarder Sender Receiver
Windows Azure Service Bus Connectivity Service Relay Protocol Tunnel Eventing, Push Messaging Queuing Pub/Sub Reliable Transfer Reliable,.
Messages Broker Message • Brokered messaging properties are not SOAP headers • Properties are key/value pairs that may very well carry payloads • It’s not uncommon to have messages with empty message bodies • Message bodies are useful for a single opaque payload not exposed to the broker (e.g. encrypted content) Properties Value Key Value Key Value Key Value Key Body Body
Brokered Transfer • Load Leveling • Receiver receives and processes at its own pace. Can never be overloaded. Can add receivers as queue length grows, reduce receiver if queue length is low or zero. Gracefully handles traffic spikes by never stressing out the backend. • Offline/Batch • Allows taking the receiver offline for servicing or other reasons. Requests are buffered up until the receiver is available again. R S Queue
Competing Consumer R • Load Balancing • Multiple receivers compete for messages on the same queue (or subscription). Provides automatic load balancing of work to receivers volunteering for jobs. • Observing the queue length allows to determine whether more receivers are required. S R Queue R
Fan-In S • Concentrator • Fan information into a single queue from a range of data sources • Multi-Stage Aggregation / Rollup • Fan into a set of queues, perform aggregation/roll-up/reduction and fan further. S R Queue S
Taps and Fan-Out R • Message Distribution • Each receiver gets its own copy of each message. Subscriptions are independent. Allows for many independent ‘taps’ into a message stream. Subscriber can filter down by interest. • Constrained Message Distribution (Partitioning) • Receiver get mutually exclusive slices of the message stream by creating appropriate filter expressions. Sub S R Sub Topic Sub R
Filtering R • Up to 2000 rules per subscription • Each matched rule yields a message copy • SQL’92 expressions over message properties Sub S R Sub Topic Sub Name LIKE ‘V%’ R
PartId > 0 AND PartId <= 272 Partitioning R • Rule conditions form mutually exclusive ranges • Allows partitioning-aware message distribution • No need for sender to be aware of partitioning PartId > 272 AND PartId <= 567 Sub S R Sub Topic Sub R PartId > 567 AND PartId <= 791
References • http://channel9.msdn.com/Events/BUILD/BUILD2011/SAC-862T • http://channel9.msdn.com/posts/ServiceBusTopicsAndQueues • http://blogs.msdn.com/b/windowsazure/