• • • • • • • Integrated w/ WCF programming model Using Outbound Connections Only Frontend Nodes 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 Service Bus Ctrl NLB Ctrl Forwarder Sender Receiver Subs ? Retail Points of Sale Real Time Retail Analytics Inventory and Fulfillment Centers Business Operations Service Bus Store Queue Inventory Service Bus Store Queue Load Leveling Inventory Store Service Bus Store Queue Inventory Store Store Load Balancing Inventory Audit Service Bus Store Data Collection Topic Audit Taps Sub Sub Inventory Audit Service Bus Store Data Collection Topic Sub Sub Inventory Sub Dashboard Real-Time Observation Audit Service Bus Data Collection Topic Store Sub MartVue Analyzer Analysis Topic Real-Time Analysis Sub Sub Inventory Sub Sub Dashboard Audit Service Bus Data Collection Topic Store Sub Scale-Out Eventing MartVue Analyzer Analysis Topic Sub Sub Sub Inventory Sub Sub Catalog Topic Dashboard QueueDescription destinationQ = new QueueDescription("myQ2"); QueueDescription sourceQ = new QueueDescription("myQ1"); sourceQ.ForwardTo = “myQ2"; QueueClient queueClient = QueueClient.Create("myQ"); BrokeredMessage message = queueClient.Receive(); message.RenewLock(); message.LockedUntilUtc; // check to see when you need to renew QueueDescription qd = namespaceManager.GetQueue("myQ"); qd.Status = EntityStatus.Disabled; namespaceManager.UpdateQueue(qd); qd.Status = EntityStatus.Active; namespaceManager.UpdateQueue(qd); TopicDescription td = new TopicDescription("Topic"); td.EnableFilteringMessagesBeforePublishing = true; // throws NoMatchingSubscriptionException on send NamespaceManager nm = NamespaceManager.Create(); QueueDescription myQ = nm.GetQueue("myQ"); var active = myQ.MessageCountDetails.ActiveMessageCount; var deadLettered = myQ.MessageCountDetails.DeadLetterMessageCount; var scheduled = myQ.MessageCountDetails.ScheduledMessageCount; var transfer = myQ.MessageCountDetails.TransferMessageCount; Onpremise Cloud On-Premises pub-sub Develop& Deploy Develop On-premise Develop Deploy Flexible Deployment Deploy Deploy Tiered Deployment Data App Why & What •Enterprise applications developed and deployed on-premise. •Scale ; HA ; Manageability ; Rich messaging feature set •High fidelity develop, test, debug experience •DevBox deployment (HW&SF pre-reqs) ; Tools (VS); debug mode ; symmetry •Driven by enterprise desire for deployment choice •Full symmetry ; Ease of migration •Maintain control of mission critical data / systems •Unable/unwilling to migrate legacy systems •Gradual migration to cloud •Message Federation PS C:\Program Files\Service Bus\1.0> Get-SBClientConfiguration Endpoint=sb://hostName/ServiceBusDefaultNamespace; StsEndpoint=https://hostName:9355/ServiceBusDefaultNamespace; RuntimePort=9354;ManagementPort=9355 <appSettings> <add key="Microsoft.ServiceBus.ConnectionString" value="Endpoint=sb://hostName/ServiceBusDefaultNamespace; StsEndpoint=https://hostName:9355/ServiceBusDefaultNamespace; RuntimePort=9354;ManagementPort=9355"/> </appSettings> string connectionString = ConfigurationManager.AppSettings["Microsoft.ServiceBus.ConnectionString"]; MessagingFactory factory = MessagingFactory.CreateFromConnectionString(connectionString); NamespaceManager namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString); Language C# Java C PHP Python Library Service Bus .NET Client Library Apache Qpid Java Message Service (JMS) client IIT SwiftMQ Java client Apache Qpid Proton-C Apache Qpid Proton-PHP Apache Qpid Proton-Python Ruby Apache Qpid Proton-Ruby (coming soon) Perl Apache Qpid Proton-Perl (coming soon) JavaScript Apache Qpid Proton-JavaScript (coming soon) Linux (Azure) SwiftMQ Broker Monitor Service Bus Windows (on-prem) Transformer Archiver Twitter
© Copyright 2024