View
198
Download
8
Category
Preview:
Citation preview
RethinkingMessageBrokeringwithWSO2MessageBroker
RamithJayasingheSeniorTechnicalLeadWSO2
Overview
• MessagingConcepts• MBFeatures,Roadmap• Q/A
WhatisMessaging?• WeoEendesigndistributedsystemswithRPCstyle
communicaIon(E.g.WebServices,ThriE,REST)
• RPCcommunicaIonis,
Request/Response(thereisalwaysaresponse)Synchronous(clientwaitsforresponse)Non-persistent(messageislostifsomethingfailed)
• Butthereareother7possibiliIes.Undermessagingwesupportthose.
MessagingConcepts-Queues
• VerifytheOrder• ShiptoAddress• UpdateStocks• AcknowledgeMessage
MessagingConcepts-Publish/Subscribe
MessagingConcepts–DurableSubscripIons
SameastopicsubscripIonsSubscriberoffline-MessagesgetqueuedSubscriberbackonline-MessagesgetdeliveredUn-subscrip7onneededtoremovequeuing
OnlineStore
TopicName:Orders
OrderProcessor3 OrderProcessor2 OrderProcessor1Warehouse
DurableSubscription
Subscription1(nondurable)
Subscription2(nondurable)
DataArchives
AnalyticsSystem
MessagingConcepts–Delivery&Acknowledgements
Atmostonce:Messagescouldbelost.HigherPerformanceAtleastonce:Receiveracknowledgemessages.Exactlyonce:Veryhardtoimplement.Considermakingmessagesidempotent(orsystemscanhandlemessageduplicaIons)
OnlineStore
TopicName:Orders
OrderProcessor3 OrderProcessor2 OrderProcessor1Warehouse
Atleastonce
Atmostonce
Atleastonce
DataArchives
AnalyticsSystem
Transactional
MessagingConcepts–DeadLeYerChannel
Receiverrejectsmessage(e.g.invalidorder,outofstock,brokenhardware)DeadLeIerChannel–brokerkeepproblemaIcmessagesinthisQueue.PoisonMessage–MessagehasexceededthemaximumnumberofdeliveryaYempts.
Warehouse OrderProcessor3 OrderProcessor2 OrderProcessor1
AnalyticsSystem
DataArchives
InvalidOrderè
OrderRejectedè
SendtoDLCaftermaximumdelivery
attemptsè
DeadLetterChannel(DLC)
è
MessagingConcepts–HierarchicalTopics
• MaprelaIonshipsbetweendatabeingpublishedontodifferenttopics.
• Cansubscribetopartofthehierarchy.
MessagingConcepts–DistributedQueues
• Providesstrictorbesteffortsupportforinorderdelivery
• Therearenoguarantee
abouttheglobalorderseenacrosssubscribers
MessagingConcepts–DistributedQueues
OrderProcessor3 OrderProcessor2 OrderProcessor1
OnlineStore
Warehouse
Broker1
Broker2Broker3
M1 M2 M3
M1M2
M3
A1 A2 A3
A1
A2
A3
DistributedQueue
• Providesstrictorbesteffortsupportforinorderdelivery
• Therearenoguarantee
abouttheglobalorderseenacrosssubscribers
MessagingConcepts–SharedSubscripIons
ExtensiontoJMS1.1,unIlJMS2.0supportisreleased.Purpose:Abilitytoloadbalancewithinconsumerclusters.
MessagingConcepts–SharedSubscripIons
SharedSubscrip7on!
• ‘Orderprocessors’ineachwarehouseshareasinglesubscripIon.• Anymessagewillbedeliveredtoasingleorderprocessor.
SharedSubscrip7onOnlineStore
OrderProcessor3 OrderProcessor2 OrderProcessor1Warehouse:London
SharedSubscription(orders.*.london)
SharedSubscription
SharedSubscription
DataArchives
AnalyticsSystem
M1 M2 M3
M2M1 M3
M2M1 M3
M2M1 M3
UseCase–WSO2ESB+MB
• GuaranteesIn-OrderDelivery.• ThroYlemessages(forslowconsumers/systems).• Ensurereliablemessaging
WSO2MessageBroker(Design)
• AvoidrouIngmessagesoverthenetworkmulIplehops• Usestoragetosharemessagesbetweennodes.• UsedistributedcoordinaIontocontrolthebehavior(i.e.Hazelcast)• Leanerdeploymentlayout(andclusteringstory)
WSO2MessageBroker(Features)
• Protocols/SpecificaIons:JMS1.1,AMQP0-9-1,MQTT3.1.1• SimplifiedClusteringStory(andrelatedconcepts)• Databases:MySQL,MSSQL,Oracle,PostgreSQL,H2• RealImestaIsIcs
- QuicklyfigureoutboYlenecksinaproducIondeployments.- Databaseread/writelatencies- Inbound/Outboundeventrates- NumberofConnecIons/Channelsetc.
Roadmap
• SupportforAMQP1.0andJMS2.0• ImprovementstoStorageScheme,Performanceimprovements• AnalyIcsforMB• MoveCarbon5• ImprovedGUI• MQTT+Websockets
WSO2MBdifferenIator• Simplifiedclusteringstory(-Queues/Topics)
– Usersdon’thavetoworryabouthowbrokerstransmitmessagesinthecluster.
• RDBMSforpersistence→Easytomanageanduse• SimplerClusterdeployments→Minimumdeploymenteffort+
maintenance.
ThankYou!
#WSO2ConEU
Shareyourfeedbackforthissessionwso2con.com/app
Recommended