wso2con eu 2016: rethinking message brokering with wso2 message broker

19
Rethinking Message Brokering with WSO2 Message Broker Ramith Jayasinghe Senior Technical Lead WSO2

Upload: wso2-inc

Post on 15-Apr-2017

198 views

Category:

Technology


8 download

TRANSCRIPT

Page 1: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

RethinkingMessageBrokeringwithWSO2MessageBroker

RamithJayasingheSeniorTechnicalLeadWSO2

Page 2: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

Overview

•  MessagingConcepts•  MBFeatures,Roadmap•  Q/A

Page 3: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

WhatisMessaging?•  WeoEendesigndistributedsystemswithRPCstyle

communicaIon(E.g.WebServices,ThriE,REST)

•  RPCcommunicaIonis,

Request/Response(thereisalwaysaresponse)Synchronous(clientwaitsforresponse)Non-persistent(messageislostifsomethingfailed)

•  Butthereareother7possibiliIes.Undermessagingwesupportthose.

Page 4: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

MessagingConcepts-Queues

•  VerifytheOrder•  ShiptoAddress•  UpdateStocks•  AcknowledgeMessage

Page 5: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

MessagingConcepts-Publish/Subscribe

Page 6: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

MessagingConcepts–DurableSubscripIons

SameastopicsubscripIonsSubscriberoffline-MessagesgetqueuedSubscriberbackonline-MessagesgetdeliveredUn-subscrip7onneededtoremovequeuing

OnlineStore

TopicName:Orders

OrderProcessor3 OrderProcessor2 OrderProcessor1Warehouse

DurableSubscription

Subscription1(nondurable)

Subscription2(nondurable)

DataArchives

AnalyticsSystem

Page 7: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

MessagingConcepts–Delivery&Acknowledgements

Atmostonce:Messagescouldbelost.HigherPerformanceAtleastonce:Receiveracknowledgemessages.Exactlyonce:Veryhardtoimplement.Considermakingmessagesidempotent(orsystemscanhandlemessageduplicaIons)

OnlineStore

TopicName:Orders

OrderProcessor3 OrderProcessor2 OrderProcessor1Warehouse

Atleastonce

Atmostonce

Atleastonce

DataArchives

AnalyticsSystem

Transactional

Page 8: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

MessagingConcepts–DeadLeYerChannel

Receiverrejectsmessage(e.g.invalidorder,outofstock,brokenhardware)DeadLeIerChannel–brokerkeepproblemaIcmessagesinthisQueue.PoisonMessage–MessagehasexceededthemaximumnumberofdeliveryaYempts.

Warehouse OrderProcessor3 OrderProcessor2 OrderProcessor1

AnalyticsSystem

DataArchives

InvalidOrderè

OrderRejectedè

SendtoDLCaftermaximumdelivery

attemptsè

DeadLetterChannel(DLC)

è

Page 9: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

MessagingConcepts–HierarchicalTopics

•  MaprelaIonshipsbetweendatabeingpublishedontodifferenttopics.

•  Cansubscribetopartofthehierarchy.

Page 10: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

MessagingConcepts–DistributedQueues

•  Providesstrictorbesteffortsupportforinorderdelivery

•  Therearenoguarantee

abouttheglobalorderseenacrosssubscribers

Page 11: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

MessagingConcepts–DistributedQueues

OrderProcessor3 OrderProcessor2 OrderProcessor1

OnlineStore

Warehouse

Broker1

Broker2Broker3

M1 M2 M3

M1M2

M3

A1 A2 A3

A1

A2

A3

DistributedQueue

•  Providesstrictorbesteffortsupportforinorderdelivery

•  Therearenoguarantee

abouttheglobalorderseenacrosssubscribers

Page 12: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

MessagingConcepts–SharedSubscripIons

ExtensiontoJMS1.1,unIlJMS2.0supportisreleased.Purpose:Abilitytoloadbalancewithinconsumerclusters.

Page 13: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

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

Page 14: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

UseCase–WSO2ESB+MB

•  GuaranteesIn-OrderDelivery.•  ThroYlemessages(forslowconsumers/systems).•  Ensurereliablemessaging

Page 15: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

WSO2MessageBroker(Design)

•  AvoidrouIngmessagesoverthenetworkmulIplehops•  Usestoragetosharemessagesbetweennodes.•  UsedistributedcoordinaIontocontrolthebehavior(i.e.Hazelcast)•  Leanerdeploymentlayout(andclusteringstory)

Page 16: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

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.

Page 17: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

Roadmap

•  SupportforAMQP1.0andJMS2.0•  ImprovementstoStorageScheme,Performanceimprovements•  AnalyIcsforMB•  MoveCarbon5•  ImprovedGUI•  MQTT+Websockets

Page 18: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

WSO2MBdifferenIator•  Simplifiedclusteringstory(-Queues/Topics)

–  Usersdon’thavetoworryabouthowbrokerstransmitmessagesinthecluster.

•  RDBMSforpersistence→Easytomanageanduse•  SimplerClusterdeployments→Minimumdeploymenteffort+

maintenance.

Page 19: WSO2Con EU 2016: Rethinking Message Brokering  with WSO2 Message Broker

ThankYou!

#WSO2ConEU

Shareyourfeedbackforthissessionwso2con.com/app