Mix it14
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Mix it14

on

  • 201 views

 

Statistics

Views

Total Views
201
Views on SlideShare
201
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Mix it14 Presentation Transcript

  • 1. Comment choisir son broker de message Guillaume Arnaud @guillarnaud
  • 2. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC Offtopic 2 commercial products low latency benchmarks ESB
  • 3. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC Benchmarks 3
  • 4. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC Exchange information ! 4 notifications RPC log centralized dashboard synchronization worker metrics
  • 5. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC Once upon a time JMS… 5 API (!=protocol) JMS ∈ JEE 100% Java JMS 2.02001 Transaction decoupling
  • 6. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC JMS: client side 6 connexion session broker client clientsessiontcp! transport buffer buffer
  • 7. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC Beware of wrong asynchronism 7 connection = new ActiveMQConnectionFactory( "failover:(tcp://localhost:61616)?timeout=1000") .createConnection(); … producer.send(queue,message);
  • 8. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC Exit strategy 8 bounded ABC A consumer queue dead letter queue B C Time To Live 10 seconds =10 seconds
  • 9. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC JMS: queue vs topic 9 ABC A B C consumer 1 queue consumer 2 consumer 3 ABC A C consumer 1 topic consumer 2 consumer 3 BC ABC B consumer 3
  • 10. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC AMQP: le challenger 10 100% Protocol interoperability routing 2006 0.9.1 vs 1.0
  • 11. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC broker AMQP 11 exchange queue publisher subscriber subscriberqueue queue.a.b queue.a.c queue.a.* binding virtual host
  • 12. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC AMQP: topology 12 exchange queue queue queue queuefanout exchange queue.a.b fanout direct exchange queue.*.# queue topic exchange queue.a.b (ignored) queue header1: value1 header2: value2 … headers
  • 13. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC STOMP: light messaging 13 textual light Simple Text Orientated Messaging Protocol 2010 (?) incompatibility heartbeat js + ws security
  • 14. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC STOMP: message structure 14 COMMAND header1:value1 header2:value2 ! Body^@ CONNECT accept-version:1.0,1.2 host:myhost heart-beat: 10,20 ! ^@ CONNECTED version:1.2 heart-beat:10,20 ! ^@ SEND destination:/queue/a content-type:text/plain ! hello ^@ SUBSCRIBE id:0 destination:/queue/a ack:client ! ^@ MESSAGE subscription:0 message-id:003 destination: /queue/a content-type:text/plain ! hello ^@
  • 15. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC MQTT 15 Device QoSCompact 2007 Last Known Good semantic Highly constrained
  • 16. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC MQTT 16 sender server publish QoS 0: at most once delivery client server publish ack QoS 1: at least once delivery QoS 2: exactly one delivery receiver receiver publish publish client server publish receive receiver publish complete release id id id id
  • 17. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC Kafka 17 distributed complexity MessageSet ZeroCopy 2011 consumer oriented ordering append only LinkedIn λ & μ-service architecture
  • 18. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC Kafka 18 producer consumer consumer partitionpartition partition partition serveur serveur consumer consumer consumer consumer consumer group consumer group topic:partition topic:partition zookeeper
  • 19. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC Distribution/high availability 19 broker 1 broker 2 shared fs/db load balancing High Availability! actif/actif! actif/passif broker 1 broker 2 broker 3 broker 4 P1 C1 Network of brokers! (a topology example) failover Zookeeper! (robust distribution) idempotency
  • 20. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC Performance 20 persistance mandatory ? filesystemdatabase distribution yes no batch prefetch ack no serialization headers specialized queue flow control
  • 21. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC My subjective solutions 21
  • 22. • EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC Conclusion 22 decoupling semantic buffer routingheartbeat ordering batch/prefetch exit strategy idempotency flow control