SlideShare a Scribd company logo
Data Migration at Scale with 
RabbitMQ and Spring Integration 
By Álvaro Videla and Félix López 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Álvaro Videla 
• Developer Advocate at Pivotal / RabbitMQ 
• Co-Author of RabbitMQ in Action 
• Creator of the RabbitMQ Simulator 
• Blogs about RabbitMQ Internals: http://videlalvaro.github.io/ 
internals.html 
• @old_sound — alvaro@rabbitmq.com — github.com/videlalvaro 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
2
Álvaro Videla 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
3 
Co-authored 
! 
RabbitMQ in Action 
http://bit.ly/rabbitmq
What is RabbitMQ 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
4
RabbitMQ 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
5
RabbitMQ 
• Multi Protocol Messaging Server 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
6
RabbitMQ 
• Multi Protocol Messaging Server 
• Open Source (MPL) 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
7
RabbitMQ 
• Multi Protocol Messaging Server 
• Open Source (MPL) 
• Polyglot 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
8
RabbitMQ 
• Multi Protocol Messaging Server 
• Open Source (MPL) 
• Polyglot 
• Written in Erlang/OTP 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
9
Multi Protocol 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
10 
http://bit.ly/rmq-protocols
Polyglot 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
11
Polyglot 
• Java 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
12
Polyglot 
• Java 
• node.js 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
13
Polyglot 
• Java 
• node.js 
• Erlang 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
14
Polyglot 
• Java 
• node.js 
• Erlang 
• PHP 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
15
Polyglot 
• Java 
• node.js 
• Erlang 
• PHP 
• Ruby 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
16
Polyglot 
• Java 
• node.js 
• Erlang 
• PHP 
• Ruby 
• .Net 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
17
Polyglot 
• Java 
• node.js 
• Erlang 
• PHP 
• Ruby 
• .Net 
• Haskell 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
18
Polyglot 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
19 
Even COBOL!!!11
http://www.rabbitmq.com/download.html 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
20 
Unix - Mac - Windows
Messaging with RabbitMQ 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
21 
A demo with the RabbitMQ Simulator 
https://github.com/RabbitMQSimulator
RabbitMQ Simulator 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
22
http://www.rabbitmq.com/blog/2012/05/11/some-queuing-theory-throughput- 
latency-and-bandwidth/ 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
23
RabbitMQ Basic Qos Simulator 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
24
Prevent Unbound Buffers 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
25 
λ = mean arrival time 
μ = mean service rate 
if λ > μ what happens?
Prevent Unbound Buffers 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
26 
λ = mean arrival time 
μ = mean service rate 
if λ > μ what happens? 
Queue length goes to infinity over time.
Prevent Unbound Buffers 
λ = mean arrival time 
μ = mean service rate 
if λ > μ what happens? 
Queue length goes to infinity over time. 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
27 
https://www.rabbitmq.com/blog/2014/01/23/preventing-unbounded-buffers- 
with-rabbitmq/
Recommended Reading 
Performance Modeling and 
Design of Computer Systems: 
Queueing Theory in Action 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
28
What you get out of the box 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
29
Some RabbitMQ Features 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
30
Some RabbitMQ Features 
• Persistent Messages 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
31
Some RabbitMQ Features 
• Persistent Messages 
• Publisher Confirms 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
32
Some RabbitMQ Features 
• Persistent Messages 
• Publisher Confirms 
• Message Acknowledgment 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
33
Some RabbitMQ Features 
• Persistent Messages 
• Publisher Confirms 
• Message Acknowledgment 
• Mirrored Queues 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
34
Some RabbitMQ Features 
• Persistent Messages 
• Publisher Confirms 
• Message Acknowledgment 
• Mirrored Queues 
• Message Ordering 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
35
Some RabbitMQ Features 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
36
Some RabbitMQ Features 
• Dead Letter Exchanges 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
37
Some RabbitMQ Features 
• Dead Letter Exchanges 
• Alternate Exchanges 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
38
Some RabbitMQ Features 
• Dead Letter Exchanges 
• Alternate Exchanges 
• Message and Queues TTLs 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
39
Some RabbitMQ Features 
• Dead Letter Exchanges 
• Alternate Exchanges 
• Message and Queues TTLs 
• Consumer Priorities 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
40
Some RabbitMQ Features 
• Dead Letter Exchanges 
• Alternate Exchanges 
• Message and Queues TTLs 
• Consumer Priorities 
• Federation 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
41
Some RabbitMQ Features 
• Dead Letter Exchanges 
• Alternate Exchanges 
• Message and Queues TTLs 
• Consumer Priorities 
• Federation 
• Shovel 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
42
Some RabbitMQ Features 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
43
Some RabbitMQ Features 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
44 
• SSL Connections
Some RabbitMQ Features 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
45 
• SSL Connections 
• User Authentication
Some RabbitMQ Features 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
46 
• SSL Connections 
• User Authentication 
• Per resource authorisation
Some RabbitMQ Features 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
47 
• SSL Connections 
• User Authentication 
• Per resource authorisation 
• Different kinds of users
Some RabbitMQ Features 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
48 
• SSL Connections 
• User Authentication 
• Per resource authorisation 
• Different kinds of users 
• Various authentication mechanisms via plugins (LDAP)
Management Interface / REST API 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
49
RabbitMQ 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
50
RabbitMQ 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
51 
Flexibility
Questions? 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 
52
Learn More. Stay Connected 
@old_sound @flopezluis 
@springcentral | spring.io/video 
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a 
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 53

More Related Content

PDF
State of Securing Restful APIs s12gx2015
PDF
Containers Were Never Your End State
PDF
Reactive Web Applications
PPTX
High performance stream processing
PDF
Reactive frontends with RxJS and Angular
PDF
Reactor 3.0, a reactive foundation for java 8 and Spring
PDF
Implementing Raft in RabbitMQ
PDF
Introduction to Reactive Streams and Reactor 2.5
State of Securing Restful APIs s12gx2015
Containers Were Never Your End State
Reactive Web Applications
High performance stream processing
Reactive frontends with RxJS and Angular
Reactor 3.0, a reactive foundation for java 8 and Spring
Implementing Raft in RabbitMQ
Introduction to Reactive Streams and Reactor 2.5

What's hot (9)

PPT
Building an HTML5 Video Player
PDF
Intro To Reactive Programming
PDF
Intro to Reactive Programming
PDF
SpringOnePlatform2017 recap
PPTX
Webinar–Reviewing Modern JavaScript Applications
PPTX
Developing rich multimedia applications with Kurento: a tutorial for Java Dev...
PPTX
The future of multimedia communications and services: Kurento and it's role
PPTX
The next generation of protocols and APIs that could change streaming video
PPTX
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
Building an HTML5 Video Player
Intro To Reactive Programming
Intro to Reactive Programming
SpringOnePlatform2017 recap
Webinar–Reviewing Modern JavaScript Applications
Developing rich multimedia applications with Kurento: a tutorial for Java Dev...
The future of multimedia communications and services: Kurento and it's role
The next generation of protocols and APIs that could change streaming video
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
Ad

Similar to Data Migration at Scale with RabbitMQ and Spring Integration (20)

PPTX
Zuul @ Netflix SpringOne Platform
PPTX
Crossing the CI/CD/DevOps Chasm
PDF
Implementing microservices tracing with spring cloud and zipkin (spring one)
PDF
Consumer Driven Contracts and Your Microservice Architecture
PDF
Cloud-Native Streaming Platform: Running Apache Kafka on PKS (Pivotal Contain...
PDF
Cloud Native Java with Spring Cloud Services
PDF
S1P: Spring Cloud on PKS
PPTX
Avoiding that $1M Dollar AWS Bill
PDF
Continuous Delivery for Microservice Architectures with Concourse & Cloud Fou...
PDF
Resource Handling in Spring MVC 4.1
PDF
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
PDF
Experiences using grails in a Microservice Architecture SpringOne2gx 2014
PDF
Migrating to Angular 4 for Spring Developers
PDF
Migrating to Angular 5 for Spring Developers
PDF
Lattice: A Cloud-Native Platform for Your Spring Applications
PDF
JHipster for Spring Boot webinar
PPTX
Ratpack - SpringOne2GX 2015
PDF
riffing on Knative - Scott Andrews
PPTX
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
PDF
Extending the Platform
Zuul @ Netflix SpringOne Platform
Crossing the CI/CD/DevOps Chasm
Implementing microservices tracing with spring cloud and zipkin (spring one)
Consumer Driven Contracts and Your Microservice Architecture
Cloud-Native Streaming Platform: Running Apache Kafka on PKS (Pivotal Contain...
Cloud Native Java with Spring Cloud Services
S1P: Spring Cloud on PKS
Avoiding that $1M Dollar AWS Bill
Continuous Delivery for Microservice Architectures with Concourse & Cloud Fou...
Resource Handling in Spring MVC 4.1
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
Experiences using grails in a Microservice Architecture SpringOne2gx 2014
Migrating to Angular 4 for Spring Developers
Migrating to Angular 5 for Spring Developers
Lattice: A Cloud-Native Platform for Your Spring Applications
JHipster for Spring Boot webinar
Ratpack - SpringOne2GX 2015
riffing on Knative - Scott Andrews
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
Extending the Platform
Ad

More from Alvaro Videla (20)

PDF
Improvements in RabbitMQ
PDF
RabbitMQ Data Ingestion at Craft Conf
PDF
Scaling applications with RabbitMQ at SunshinePHP
PDF
Unit Test + Functional Programming = Love
PDF
RabbitMQ Data Ingestion
PDF
Dissecting the rabbit: RabbitMQ Internal Architecture
PDF
Introduction to RabbitMQ | Meetup at Pivotal Labs
PDF
Writing testable code
PDF
RabbitMQ Hands On
PDF
Rabbitmq Boot System
PDF
Cloud Foundry Bootcamp
PDF
Cloud Messaging With Cloud Foundry
PDF
Taming the rabbit
PDF
PDF
Código Fácil De Testear
PDF
Desacoplando aplicaciones
PDF
Messaging patterns
PDF
Theres a rabbit on my symfony
PDF
Scaling Web Apps With RabbitMQ - Erlang Factory Lite
PDF
Integrating php withrabbitmq_zendcon
Improvements in RabbitMQ
RabbitMQ Data Ingestion at Craft Conf
Scaling applications with RabbitMQ at SunshinePHP
Unit Test + Functional Programming = Love
RabbitMQ Data Ingestion
Dissecting the rabbit: RabbitMQ Internal Architecture
Introduction to RabbitMQ | Meetup at Pivotal Labs
Writing testable code
RabbitMQ Hands On
Rabbitmq Boot System
Cloud Foundry Bootcamp
Cloud Messaging With Cloud Foundry
Taming the rabbit
Código Fácil De Testear
Desacoplando aplicaciones
Messaging patterns
Theres a rabbit on my symfony
Scaling Web Apps With RabbitMQ - Erlang Factory Lite
Integrating php withrabbitmq_zendcon

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Approach and Philosophy of On baking technology
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
A Presentation on Artificial Intelligence
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
KodekX | Application Modernization Development
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
NewMind AI Weekly Chronicles - August'25 Week I
Approach and Philosophy of On baking technology
Empathic Computing: Creating Shared Understanding
Understanding_Digital_Forensics_Presentation.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
Mobile App Security Testing_ A Comprehensive Guide.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
A Presentation on Artificial Intelligence
Advanced methodologies resolving dimensionality complications for autism neur...
Building Integrated photovoltaic BIPV_UPV.pdf
Review of recent advances in non-invasive hemoglobin estimation
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Network Security Unit 5.pdf for BCA BBA.
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
KodekX | Application Modernization Development
Digital-Transformation-Roadmap-for-Companies.pptx
Unlocking AI with Model Context Protocol (MCP)

Data Migration at Scale with RabbitMQ and Spring Integration

  • 1. Data Migration at Scale with RabbitMQ and Spring Integration By Álvaro Videla and Félix López Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
  • 2. Álvaro Videla • Developer Advocate at Pivotal / RabbitMQ • Co-Author of RabbitMQ in Action • Creator of the RabbitMQ Simulator • Blogs about RabbitMQ Internals: http://videlalvaro.github.io/ internals.html • @old_sound — alvaro@rabbitmq.com — github.com/videlalvaro Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 2
  • 3. Álvaro Videla Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 3 Co-authored ! RabbitMQ in Action http://bit.ly/rabbitmq
  • 4. What is RabbitMQ Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 4
  • 5. RabbitMQ Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 5
  • 6. RabbitMQ • Multi Protocol Messaging Server Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 6
  • 7. RabbitMQ • Multi Protocol Messaging Server • Open Source (MPL) Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 7
  • 8. RabbitMQ • Multi Protocol Messaging Server • Open Source (MPL) • Polyglot Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 8
  • 9. RabbitMQ • Multi Protocol Messaging Server • Open Source (MPL) • Polyglot • Written in Erlang/OTP Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 9
  • 10. Multi Protocol Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 10 http://bit.ly/rmq-protocols
  • 11. Polyglot Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 11
  • 12. Polyglot • Java Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 12
  • 13. Polyglot • Java • node.js Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 13
  • 14. Polyglot • Java • node.js • Erlang Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 14
  • 15. Polyglot • Java • node.js • Erlang • PHP Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 15
  • 16. Polyglot • Java • node.js • Erlang • PHP • Ruby Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 16
  • 17. Polyglot • Java • node.js • Erlang • PHP • Ruby • .Net Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 17
  • 18. Polyglot • Java • node.js • Erlang • PHP • Ruby • .Net • Haskell Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 18
  • 19. Polyglot Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 19 Even COBOL!!!11
  • 20. http://www.rabbitmq.com/download.html Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 20 Unix - Mac - Windows
  • 21. Messaging with RabbitMQ Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 21 A demo with the RabbitMQ Simulator https://github.com/RabbitMQSimulator
  • 22. RabbitMQ Simulator Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 22
  • 23. http://www.rabbitmq.com/blog/2012/05/11/some-queuing-theory-throughput- latency-and-bandwidth/ Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 23
  • 24. RabbitMQ Basic Qos Simulator Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 24
  • 25. Prevent Unbound Buffers Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 25 λ = mean arrival time μ = mean service rate if λ > μ what happens?
  • 26. Prevent Unbound Buffers Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 26 λ = mean arrival time μ = mean service rate if λ > μ what happens? Queue length goes to infinity over time.
  • 27. Prevent Unbound Buffers λ = mean arrival time μ = mean service rate if λ > μ what happens? Queue length goes to infinity over time. Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 27 https://www.rabbitmq.com/blog/2014/01/23/preventing-unbounded-buffers- with-rabbitmq/
  • 28. Recommended Reading Performance Modeling and Design of Computer Systems: Queueing Theory in Action Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 28
  • 29. What you get out of the box Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 29
  • 30. Some RabbitMQ Features Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 30
  • 31. Some RabbitMQ Features • Persistent Messages Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 31
  • 32. Some RabbitMQ Features • Persistent Messages • Publisher Confirms Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 32
  • 33. Some RabbitMQ Features • Persistent Messages • Publisher Confirms • Message Acknowledgment Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 33
  • 34. Some RabbitMQ Features • Persistent Messages • Publisher Confirms • Message Acknowledgment • Mirrored Queues Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 34
  • 35. Some RabbitMQ Features • Persistent Messages • Publisher Confirms • Message Acknowledgment • Mirrored Queues • Message Ordering Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 35
  • 36. Some RabbitMQ Features Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 36
  • 37. Some RabbitMQ Features • Dead Letter Exchanges Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 37
  • 38. Some RabbitMQ Features • Dead Letter Exchanges • Alternate Exchanges Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 38
  • 39. Some RabbitMQ Features • Dead Letter Exchanges • Alternate Exchanges • Message and Queues TTLs Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 39
  • 40. Some RabbitMQ Features • Dead Letter Exchanges • Alternate Exchanges • Message and Queues TTLs • Consumer Priorities Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 40
  • 41. Some RabbitMQ Features • Dead Letter Exchanges • Alternate Exchanges • Message and Queues TTLs • Consumer Priorities • Federation Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 41
  • 42. Some RabbitMQ Features • Dead Letter Exchanges • Alternate Exchanges • Message and Queues TTLs • Consumer Priorities • Federation • Shovel Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 42
  • 43. Some RabbitMQ Features Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 43
  • 44. Some RabbitMQ Features Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 44 • SSL Connections
  • 45. Some RabbitMQ Features Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 45 • SSL Connections • User Authentication
  • 46. Some RabbitMQ Features Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 46 • SSL Connections • User Authentication • Per resource authorisation
  • 47. Some RabbitMQ Features Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 47 • SSL Connections • User Authentication • Per resource authorisation • Different kinds of users
  • 48. Some RabbitMQ Features Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 48 • SSL Connections • User Authentication • Per resource authorisation • Different kinds of users • Various authentication mechanisms via plugins (LDAP)
  • 49. Management Interface / REST API Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 49
  • 50. RabbitMQ Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 50
  • 51. RabbitMQ Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 51 Flexibility
  • 52. Questions? Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 52
  • 53. Learn More. Stay Connected @old_sound @flopezluis @springcentral | spring.io/video Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 53