SlideShare a Scribd company logo
1 of 22
Download to read offline
Comment choisir son
broker de message
Guillaume Arnaud
@guillarnaud
• EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC
Offtopic
2
commercial
products
low latency
benchmarks ESB
• EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC
Benchmarks
3
• EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC
Exchange information !
4
notifications
RPC
log
centralized
dashboard
synchronization
worker
metrics
• EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC
Once upon a time JMS…
5
API (!=protocol)
JMS ∈ JEE
100% Java
JMS 2.02001
Transaction
decoupling
• EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC
JMS: client side
6
connexion
session
broker
client
clientsessiontcp!
transport
buffer
buffer
• 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);
• 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
• 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
• EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC
AMQP: le challenger
10
100% Protocol
interoperability
routing
2006
0.9.1 vs 1.0
• 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
• 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
• EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC
STOMP: light messaging
13
textual
light
Simple Text Orientated
Messaging Protocol
2010 (?)
incompatibility
heartbeat
js + ws
security
• 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
^@
• EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC
MQTT
15
Device
QoSCompact
2007
Last Known Good
semantic
Highly constrained
• 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
• EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC
Kafka
17
distributed
complexity
MessageSet
ZeroCopy
2011
consumer oriented
ordering
append only
LinkedIn
λ & μ-service
architecture
• 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
• 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
• 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
• EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC
My subjective solutions
21
• EBIA ALLIANCE = XEBIA + XEBIALABS + THIGA + UX REPUBLIC
Conclusion
22
decoupling
semantic buffer
routingheartbeat
ordering
batch/prefetch exit strategy
idempotency flow control

More Related Content

Similar to Mix it14

How to run a bank on Apache CloudStack
How to run a bank on Apache CloudStackHow to run a bank on Apache CloudStack
How to run a bank on Apache CloudStackgjdevos
 
Adding serverless to legacy applications
Adding serverless to legacy applicationsAdding serverless to legacy applications
Adding serverless to legacy applicationsbrettflorio
 
Different I/O Access Methods for Linux, What We Chose for ScyllaDB, and Why
Different I/O Access Methods for Linux, What We Chose for ScyllaDB, and WhyDifferent I/O Access Methods for Linux, What We Chose for ScyllaDB, and Why
Different I/O Access Methods for Linux, What We Chose for ScyllaDB, and WhyScyllaDB
 
WSO2Con USA 2015: An Introduction to the WSO2 Integration Platform
WSO2Con USA 2015: An Introduction to the WSO2 Integration PlatformWSO2Con USA 2015: An Introduction to the WSO2 Integration Platform
WSO2Con USA 2015: An Introduction to the WSO2 Integration PlatformWSO2
 
Journée DevOps : Un outil de monitoring applicatif
Journée DevOps : Un outil de monitoring applicatifJournée DevOps : Un outil de monitoring applicatif
Journée DevOps : Un outil de monitoring applicatifPublicis Sapient Engineering
 
Accelerating and Securing your Applications in AWS. In-depth look at Solving ...
Accelerating and Securing your Applications in AWS. In-depth look at Solving ...Accelerating and Securing your Applications in AWS. In-depth look at Solving ...
Accelerating and Securing your Applications in AWS. In-depth look at Solving ...Amazon Web Services
 
BIS and COM in Action
BIS and COM in ActionBIS and COM in Action
BIS and COM in ActionJerry Merrill
 
John Davies Last Minute Fill In For Sick Speaker
John Davies Last Minute Fill In For Sick SpeakerJohn Davies Last Minute Fill In For Sick Speaker
John Davies Last Minute Fill In For Sick Speakerdeimos
 
From AWS/STUPS to Kubernetes on AWS @Zalando - Berlin Kubernetes Meetup
From AWS/STUPS to Kubernetes on AWS @Zalando - Berlin Kubernetes MeetupFrom AWS/STUPS to Kubernetes on AWS @Zalando - Berlin Kubernetes Meetup
From AWS/STUPS to Kubernetes on AWS @Zalando - Berlin Kubernetes MeetupHenning Jacobs
 
Anton Moldovan "Building an efficient replication system for thousands of ter...
Anton Moldovan "Building an efficient replication system for thousands of ter...Anton Moldovan "Building an efficient replication system for thousands of ter...
Anton Moldovan "Building an efficient replication system for thousands of ter...Fwdays
 
Transaction preview of Apache Pulsar
Transaction preview of Apache PulsarTransaction preview of Apache Pulsar
Transaction preview of Apache PulsarStreamNative
 
How bol.com makes sense of its logs, using the Elastic technology stack.
How bol.com makes sense of its logs, using the Elastic technology stack.How bol.com makes sense of its logs, using the Elastic technology stack.
How bol.com makes sense of its logs, using the Elastic technology stack.Renzo Tomà
 
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
 The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ... The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...Josef Adersberger
 
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...QAware GmbH
 
XMPP In Real Time
XMPP In Real TimeXMPP In Real Time
XMPP In Real Timeguest488a24
 
Convergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency WooConvergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency WooTriNimbus
 
Scylla Summit 2022: Operating at Monstrous Scales: Benchmarking Petabyte Work...
Scylla Summit 2022: Operating at Monstrous Scales: Benchmarking Petabyte Work...Scylla Summit 2022: Operating at Monstrous Scales: Benchmarking Petabyte Work...
Scylla Summit 2022: Operating at Monstrous Scales: Benchmarking Petabyte Work...ScyllaDB
 
NoSQL afternoon in Japan Kumofs & MessagePack
NoSQL afternoon in Japan Kumofs & MessagePackNoSQL afternoon in Japan Kumofs & MessagePack
NoSQL afternoon in Japan Kumofs & MessagePackSadayuki Furuhashi
 
NoSQL afternoon in Japan kumofs & MessagePack
NoSQL afternoon in Japan kumofs & MessagePackNoSQL afternoon in Japan kumofs & MessagePack
NoSQL afternoon in Japan kumofs & MessagePackSadayuki Furuhashi
 

Similar to Mix it14 (20)

How to run a bank on Apache CloudStack
How to run a bank on Apache CloudStackHow to run a bank on Apache CloudStack
How to run a bank on Apache CloudStack
 
Adding serverless to legacy applications
Adding serverless to legacy applicationsAdding serverless to legacy applications
Adding serverless to legacy applications
 
Different I/O Access Methods for Linux, What We Chose for ScyllaDB, and Why
Different I/O Access Methods for Linux, What We Chose for ScyllaDB, and WhyDifferent I/O Access Methods for Linux, What We Chose for ScyllaDB, and Why
Different I/O Access Methods for Linux, What We Chose for ScyllaDB, and Why
 
WSO2Con USA 2015: An Introduction to the WSO2 Integration Platform
WSO2Con USA 2015: An Introduction to the WSO2 Integration PlatformWSO2Con USA 2015: An Introduction to the WSO2 Integration Platform
WSO2Con USA 2015: An Introduction to the WSO2 Integration Platform
 
Journée DevOps : Un outil de monitoring applicatif
Journée DevOps : Un outil de monitoring applicatifJournée DevOps : Un outil de monitoring applicatif
Journée DevOps : Un outil de monitoring applicatif
 
Accelerating and Securing your Applications in AWS. In-depth look at Solving ...
Accelerating and Securing your Applications in AWS. In-depth look at Solving ...Accelerating and Securing your Applications in AWS. In-depth look at Solving ...
Accelerating and Securing your Applications in AWS. In-depth look at Solving ...
 
BIS and COM in Action
BIS and COM in ActionBIS and COM in Action
BIS and COM in Action
 
CoAP Talk
CoAP TalkCoAP Talk
CoAP Talk
 
John Davies Last Minute Fill In For Sick Speaker
John Davies Last Minute Fill In For Sick SpeakerJohn Davies Last Minute Fill In For Sick Speaker
John Davies Last Minute Fill In For Sick Speaker
 
From AWS/STUPS to Kubernetes on AWS @Zalando - Berlin Kubernetes Meetup
From AWS/STUPS to Kubernetes on AWS @Zalando - Berlin Kubernetes MeetupFrom AWS/STUPS to Kubernetes on AWS @Zalando - Berlin Kubernetes Meetup
From AWS/STUPS to Kubernetes on AWS @Zalando - Berlin Kubernetes Meetup
 
Anton Moldovan "Building an efficient replication system for thousands of ter...
Anton Moldovan "Building an efficient replication system for thousands of ter...Anton Moldovan "Building an efficient replication system for thousands of ter...
Anton Moldovan "Building an efficient replication system for thousands of ter...
 
Transaction preview of Apache Pulsar
Transaction preview of Apache PulsarTransaction preview of Apache Pulsar
Transaction preview of Apache Pulsar
 
How bol.com makes sense of its logs, using the Elastic technology stack.
How bol.com makes sense of its logs, using the Elastic technology stack.How bol.com makes sense of its logs, using the Elastic technology stack.
How bol.com makes sense of its logs, using the Elastic technology stack.
 
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
 The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ... The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
 
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
 
XMPP In Real Time
XMPP In Real TimeXMPP In Real Time
XMPP In Real Time
 
Convergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency WooConvergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency Woo
 
Scylla Summit 2022: Operating at Monstrous Scales: Benchmarking Petabyte Work...
Scylla Summit 2022: Operating at Monstrous Scales: Benchmarking Petabyte Work...Scylla Summit 2022: Operating at Monstrous Scales: Benchmarking Petabyte Work...
Scylla Summit 2022: Operating at Monstrous Scales: Benchmarking Petabyte Work...
 
NoSQL afternoon in Japan Kumofs & MessagePack
NoSQL afternoon in Japan Kumofs & MessagePackNoSQL afternoon in Japan Kumofs & MessagePack
NoSQL afternoon in Japan Kumofs & MessagePack
 
NoSQL afternoon in Japan kumofs & MessagePack
NoSQL afternoon in Japan kumofs & MessagePackNoSQL afternoon in Japan kumofs & MessagePack
NoSQL afternoon in Japan kumofs & MessagePack
 

Recently uploaded

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 

Recently uploaded (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 

Mix it14

  • 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