SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Decouple & Scale with Enterprise
Messaging
WHO AM I?
• Luis Majano - Computer Engineer	

• Born in El Salvador ------------------>	

• Architecture + Software Design	

• CEO of Ortus Solutions	

• Manager of the IECFUG
(www.iecfug.com)	

• Adobe Community Professional	

• Creator of all things Box: 

ColdBox, ContentBox,WireBox....
AGENDA
• RPC Calls	

• What is Messaging	

• Implementations	

• AMQP Protocol	

• RabbitMQ	

• Nice Demo
RPC STYLE CALLS
CFC CFC
CFC
• Blocks Request Usage	

• Even if you do them Asynchronous, messages only 1 receiver	

• Sender always knows about receiver	

• Receiver knows about sender	

• How can we decouple knowledge?	

• How can we apply messaging patterns to our apps?
PROBLEMS WITH RPC
Messaging (EMS)
Producer
Consumer Consumer Consumer
Messaging Bus
Can be
any system or
language
Can be
any system or
language
Doesn’t
care about
consumers
Asynchronous
Does not get a
response
• Producers don’t care about consumers -> Decouple	

• Cross platforms-technologies-OS, you name it -> Flexibility	

• Event Driven Programming -> Scalability	

• Queueing for later delivery	

• Asynchronous	

• Load balancing	

• Hulkyfied services
BENEFITS OF MESSAGING
Usages and Patterns
Work QueuesMessaging
Publish/Subscribe Topics/Routing
Protocols
JMS AMQP STOMP
AMQP - www.amqp.org
• Advanced Message Queuing Protocol	

• != JMS	

• Standard binary protocol	

• Exchanges	

• Queuing	

• Routing	

• Reliable	

• Secure	

• Several Implementations
RabbitMQ
ActiveMQ
Qpid
StormMQ
• AMQP Messaging Broker	

• www.rabbitmq.com	

• Built on erlang like Couchbase NoSQL	

• Extremely fast, reliable and secure	

• Languages: c#, erlang, java, python, ruby, node, etc	

• Simple concept	

• Accepts and forwards messages	

• Its like a post box, post office and postman
HOW IT WORKS?
Producer
Message	

(Body+Routing Key)
Exchange (Bindings via Routing Key)
Body = binary, json,
anything
stock.

prices
stock.

run
log.

error
cluster
Queues are bound to exchanges with patterns
Routing key =
Bindings
Queues
• Direct
• Routing key = queue name	

• No mapping or extra fluff just a passthrough	

• Similar to JMS	

• Topic
• Binding pattern (routing key) is match against the queue name	

• Not full regex	

• Ex: log.*, log#	

• Not like JMSTopics, forget JMS, this is not JMS	

• Fanout + More
EXCHANGETYPES
LOAD BALANCING + ACK
Worker
Queue
Consumer
Consumer
Consumer
Messages are
round-robin
to each
consumer
Consumer
need to ack
PUB-SUB EXAMPLE
DEMOTIME
• Java Producer	

• Java Consumer	

• CFML Consumer	

• NodeJS Consumer	

• JavaScript Consumer	

• CFML Producer
Q & A
• RabbitMQ In Action Book	

• http://www.rabbitmq.com	

• http://tryrabbitmq.com/ 	

• https://github.com/RabbitMQSimulator/RabbitMQSimulator	

• http://koo.fi/blog/2013/02/18/web-messaging-with-rabbitmq-web-stomp-and-
sockjs/	

• https://github.com/robharrop/presentations.git

Contenu connexe

Tendances

CPAN Gems From The Far East
CPAN Gems From The Far EastCPAN Gems From The Far East
CPAN Gems From The Far East
lestrrat
 
Beyond Apache: Faster Web Servers
Beyond Apache: Faster Web ServersBeyond Apache: Faster Web Servers
Beyond Apache: Faster Web Servers
webhostingguy
 
How to Make Your Code OSGi Friendly Without Depending on OSGi - Neil Bartlett
How to Make Your Code OSGi Friendly Without Depending on OSGi - Neil BartlettHow to Make Your Code OSGi Friendly Without Depending on OSGi - Neil Bartlett
How to Make Your Code OSGi Friendly Without Depending on OSGi - Neil Bartlett
mfrancis
 
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Atwix
 

Tendances (19)

CPAN Gems From The Far East
CPAN Gems From The Far EastCPAN Gems From The Far East
CPAN Gems From The Far East
 
Day 9 - PostgreSQL Application Architecture
Day 9 - PostgreSQL Application ArchitectureDay 9 - PostgreSQL Application Architecture
Day 9 - PostgreSQL Application Architecture
 
Bccon use notes objects in memory and other useful
Bccon   use notes objects in memory and other usefulBccon   use notes objects in memory and other useful
Bccon use notes objects in memory and other useful
 
Beyond Apache: Faster Web Servers
Beyond Apache: Faster Web ServersBeyond Apache: Faster Web Servers
Beyond Apache: Faster Web Servers
 
ZaloPay Merchant Platform on K8S on-premise
ZaloPay Merchant Platform on K8S on-premiseZaloPay Merchant Platform on K8S on-premise
ZaloPay Merchant Platform on K8S on-premise
 
Tomas Urbonaitis "Introduction to asynchronous persistent messaging with NSer...
Tomas Urbonaitis "Introduction to asynchronous persistent messaging with NSer...Tomas Urbonaitis "Introduction to asynchronous persistent messaging with NSer...
Tomas Urbonaitis "Introduction to asynchronous persistent messaging with NSer...
 
Linux Hosting Training Course Level 1-2
Linux Hosting Training Course Level 1-2Linux Hosting Training Course Level 1-2
Linux Hosting Training Course Level 1-2
 
Tech4Africa - Tuning LAMP, and beyond LAMP
Tech4Africa - Tuning LAMP, and beyond LAMPTech4Africa - Tuning LAMP, and beyond LAMP
Tech4Africa - Tuning LAMP, and beyond LAMP
 
How to Make Your Code OSGi Friendly Without Depending on OSGi - Neil Bartlett
How to Make Your Code OSGi Friendly Without Depending on OSGi - Neil BartlettHow to Make Your Code OSGi Friendly Without Depending on OSGi - Neil Bartlett
How to Make Your Code OSGi Friendly Without Depending on OSGi - Neil Bartlett
 
Rabbits, indians and... Symfony meets queueing brokers
Rabbits, indians and...  Symfony meets queueing brokersRabbits, indians and...  Symfony meets queueing brokers
Rabbits, indians and... Symfony meets queueing brokers
 
Asynchronous Programming in Kotlin with Coroutines
Asynchronous Programming in Kotlin with CoroutinesAsynchronous Programming in Kotlin with Coroutines
Asynchronous Programming in Kotlin with Coroutines
 
A Gentle Introduction to Functions-as-a-Service
A Gentle Introduction to Functions-as-a-ServiceA Gentle Introduction to Functions-as-a-Service
A Gentle Introduction to Functions-as-a-Service
 
JRuby deployments
JRuby deploymentsJRuby deployments
JRuby deployments
 
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
 
Node.js
Node.jsNode.js
Node.js
 
Building a bakery of Windows servers with Packer - London WinOps
Building a bakery of Windows servers with Packer - London WinOpsBuilding a bakery of Windows servers with Packer - London WinOps
Building a bakery of Windows servers with Packer - London WinOps
 
Save Time by Managing WordPress from the Command Line
Save Time by Managing WordPress from the Command LineSave Time by Managing WordPress from the Command Line
Save Time by Managing WordPress from the Command Line
 
Repeating History...On Purpose...with Elixir
Repeating History...On Purpose...with ElixirRepeating History...On Purpose...with Elixir
Repeating History...On Purpose...with Elixir
 
TSSJS 2011 - JRuby
TSSJS 2011 - JRubyTSSJS 2011 - JRuby
TSSJS 2011 - JRuby
 

En vedette

Apache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actionApache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in action
dejanb
 

En vedette (15)

Enterprise mobility
Enterprise mobilityEnterprise mobility
Enterprise mobility
 
Apache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actionApache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in action
 
Enterprise messaging with jms
Enterprise messaging with jmsEnterprise messaging with jms
Enterprise messaging with jms
 
A Practical Guide for Selecting an Enterprise Messaging Platforms
A Practical Guide for Selecting an Enterprise Messaging PlatformsA Practical Guide for Selecting an Enterprise Messaging Platforms
A Practical Guide for Selecting an Enterprise Messaging Platforms
 
Making communication across boundaries simple with Azure Service Bus
Making communication across boundaries simple with Azure Service BusMaking communication across boundaries simple with Azure Service Bus
Making communication across boundaries simple with Azure Service Bus
 
Communication et Collaboration en Entreprise
Communication et Collaboration en EntrepriseCommunication et Collaboration en Entreprise
Communication et Collaboration en Entreprise
 
AWS re:Invent 2016: Migrating Enterprise Messaging to the Cloud (ENT217)
AWS re:Invent 2016: Migrating Enterprise Messaging to the Cloud (ENT217)AWS re:Invent 2016: Migrating Enterprise Messaging to the Cloud (ENT217)
AWS re:Invent 2016: Migrating Enterprise Messaging to the Cloud (ENT217)
 
Are Enterprise Messaging Platforms à la Slack the Future Collaboration Platfo...
Are Enterprise Messaging Platforms à la Slack the Future Collaboration Platfo...Are Enterprise Messaging Platforms à la Slack the Future Collaboration Platfo...
Are Enterprise Messaging Platforms à la Slack the Future Collaboration Platfo...
 
MESSAGERIE EXCHANGE 2013 SOUS WINDOWS SERVEUR 2012
MESSAGERIE EXCHANGE 2013 SOUS WINDOWS SERVEUR 2012MESSAGERIE EXCHANGE 2013 SOUS WINDOWS SERVEUR 2012
MESSAGERIE EXCHANGE 2013 SOUS WINDOWS SERVEUR 2012
 
Decouple and scale with enterprise messaging
Decouple and scale with enterprise messagingDecouple and scale with enterprise messaging
Decouple and scale with enterprise messaging
 
Messaging is Eating the World (by Edith Yeung)
Messaging is Eating the World (by Edith Yeung)Messaging is Eating the World (by Edith Yeung)
Messaging is Eating the World (by Edith Yeung)
 
REST vs. Messaging For Microservices
REST vs. Messaging For MicroservicesREST vs. Messaging For Microservices
REST vs. Messaging For Microservices
 
Mobile Enterprise Trends 2015 - Emergence Capital
Mobile Enterprise Trends 2015 - Emergence CapitalMobile Enterprise Trends 2015 - Emergence Capital
Mobile Enterprise Trends 2015 - Emergence Capital
 
Conférence portant sur l'optimisation de l'usage de l'e-mail et sur le droit ...
Conférence portant sur l'optimisation de l'usage de l'e-mail et sur le droit ...Conférence portant sur l'optimisation de l'usage de l'e-mail et sur le droit ...
Conférence portant sur l'optimisation de l'usage de l'e-mail et sur le droit ...
 
Enterprise Mobility Solutions & Services
Enterprise Mobility Solutions & ServicesEnterprise Mobility Solutions & Services
Enterprise Mobility Solutions & Services
 

Similaire à Enterprise messaging

Enterprise Messaging with RabbitMQ.pdf
Enterprise Messaging with RabbitMQ.pdfEnterprise Messaging with RabbitMQ.pdf
Enterprise Messaging with RabbitMQ.pdf
Ortus Solutions, Corp
 
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new framework
Tomas Doran
 
Real time system_performance_mon
Real time system_performance_monReal time system_performance_mon
Real time system_performance_mon
Tomas Doran
 
The Future of Messaging: RabbitMQ and AMQP
The Future of Messaging: RabbitMQ and AMQP The Future of Messaging: RabbitMQ and AMQP
The Future of Messaging: RabbitMQ and AMQP
Eberhard Wolff
 
High scale flavour
High scale flavourHigh scale flavour
High scale flavour
Tomas Doran
 

Similaire à Enterprise messaging (20)

Multiply like rabbits with rabbit mq
Multiply like rabbits with rabbit mqMultiply like rabbits with rabbit mq
Multiply like rabbits with rabbit mq
 
Multi-platform Enterprise Messaging with RabbitMQ
Multi-platform Enterprise Messaging with RabbitMQMulti-platform Enterprise Messaging with RabbitMQ
Multi-platform Enterprise Messaging with RabbitMQ
 
Enterprise Messaging with RabbitMQ.pdf
Enterprise Messaging with RabbitMQ.pdfEnterprise Messaging with RabbitMQ.pdf
Enterprise Messaging with RabbitMQ.pdf
 
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new framework
 
Messaging with RabbitMQ and AMQP
Messaging with RabbitMQ and AMQPMessaging with RabbitMQ and AMQP
Messaging with RabbitMQ and AMQP
 
Real time system_performance_mon
Real time system_performance_monReal time system_performance_mon
Real time system_performance_mon
 
RabbitMQ
RabbitMQRabbitMQ
RabbitMQ
 
Messaging for IoT
Messaging for IoTMessaging for IoT
Messaging for IoT
 
The Future of Messaging: RabbitMQ and AMQP
The Future of Messaging: RabbitMQ and AMQP The Future of Messaging: RabbitMQ and AMQP
The Future of Messaging: RabbitMQ and AMQP
 
High Performance Systems in Go - GopherCon 2014
High Performance Systems in Go - GopherCon 2014High Performance Systems in Go - GopherCon 2014
High Performance Systems in Go - GopherCon 2014
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UK
 
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard WolffArchitecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
 
Follow the White Rabbit - Message Queues with PHP
Follow the White Rabbit - Message Queues with PHPFollow the White Rabbit - Message Queues with PHP
Follow the White Rabbit - Message Queues with PHP
 
Go: What's Different ?
Go: What's Different ?Go: What's Different ?
Go: What's Different ?
 
Life in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with djangoLife in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with django
 
EuroMPI 2013 presentation: McMPI
EuroMPI 2013 presentation: McMPIEuroMPI 2013 presentation: McMPI
EuroMPI 2013 presentation: McMPI
 
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de BruinITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
 
Multi-language/multi-OS communication using RabbitMQ
Multi-language/multi-OS communication using RabbitMQMulti-language/multi-OS communication using RabbitMQ
Multi-language/multi-OS communication using RabbitMQ
 
High scale flavour
High scale flavourHigh scale flavour
High scale flavour
 
Picking a message queue
Picking a  message queuePicking a  message queue
Picking a message queue
 

Plus de ColdFusionConference

Plus de ColdFusionConference (20)

Api manager preconference
Api manager preconferenceApi manager preconference
Api manager preconference
 
Cf ppt vsr
Cf ppt vsrCf ppt vsr
Cf ppt vsr
 
Building better SQL Server Databases
Building better SQL Server DatabasesBuilding better SQL Server Databases
Building better SQL Server Databases
 
API Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsAPI Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIs
 
Don't just pdf, Smart PDF
Don't just pdf, Smart PDFDon't just pdf, Smart PDF
Don't just pdf, Smart PDF
 
Crafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectCrafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an Architect
 
Security And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API ManagerSecurity And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API Manager
 
Monetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APISMonetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APIS
 
Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016
 
ColdFusion in Transit action
ColdFusion in Transit actionColdFusion in Transit action
ColdFusion in Transit action
 
Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016
 
Where is cold fusion headed
Where is cold fusion headedWhere is cold fusion headed
Where is cold fusion headed
 
ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
 
Restful services with ColdFusion
Restful services with ColdFusionRestful services with ColdFusion
Restful services with ColdFusion
 
Super Fast Application development with Mura CMS
Super Fast Application development with Mura CMSSuper Fast Application development with Mura CMS
Super Fast Application development with Mura CMS
 
Build your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webBuild your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and web
 
Why Everyone else writes bad code
Why Everyone else writes bad codeWhy Everyone else writes bad code
Why Everyone else writes bad code
 
Securing applications
Securing applicationsSecuring applications
Securing applications
 
Testing automaton
Testing automatonTesting automaton
Testing automaton
 

Dernier

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 

Dernier (20)

AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 

Enterprise messaging

  • 1. Decouple & Scale with Enterprise Messaging
  • 2. WHO AM I? • Luis Majano - Computer Engineer • Born in El Salvador ------------------> • Architecture + Software Design • CEO of Ortus Solutions • Manager of the IECFUG (www.iecfug.com) • Adobe Community Professional • Creator of all things Box: 
 ColdBox, ContentBox,WireBox....
  • 3. AGENDA • RPC Calls • What is Messaging • Implementations • AMQP Protocol • RabbitMQ • Nice Demo
  • 5. • Blocks Request Usage • Even if you do them Asynchronous, messages only 1 receiver • Sender always knows about receiver • Receiver knows about sender • How can we decouple knowledge? • How can we apply messaging patterns to our apps? PROBLEMS WITH RPC
  • 6. Messaging (EMS) Producer Consumer Consumer Consumer Messaging Bus Can be any system or language Can be any system or language Doesn’t care about consumers Asynchronous Does not get a response
  • 7. • Producers don’t care about consumers -> Decouple • Cross platforms-technologies-OS, you name it -> Flexibility • Event Driven Programming -> Scalability • Queueing for later delivery • Asynchronous • Load balancing • Hulkyfied services BENEFITS OF MESSAGING
  • 8. Usages and Patterns Work QueuesMessaging Publish/Subscribe Topics/Routing
  • 10. AMQP - www.amqp.org • Advanced Message Queuing Protocol • != JMS • Standard binary protocol • Exchanges • Queuing • Routing • Reliable • Secure • Several Implementations RabbitMQ ActiveMQ Qpid StormMQ
  • 11. • AMQP Messaging Broker • www.rabbitmq.com • Built on erlang like Couchbase NoSQL • Extremely fast, reliable and secure • Languages: c#, erlang, java, python, ruby, node, etc • Simple concept • Accepts and forwards messages • Its like a post box, post office and postman
  • 12. HOW IT WORKS? Producer Message (Body+Routing Key) Exchange (Bindings via Routing Key) Body = binary, json, anything stock.
 prices stock.
 run log.
 error cluster Queues are bound to exchanges with patterns Routing key = Bindings Queues
  • 13. • Direct • Routing key = queue name • No mapping or extra fluff just a passthrough • Similar to JMS • Topic • Binding pattern (routing key) is match against the queue name • Not full regex • Ex: log.*, log# • Not like JMSTopics, forget JMS, this is not JMS • Fanout + More EXCHANGETYPES
  • 14. LOAD BALANCING + ACK Worker Queue Consumer Consumer Consumer Messages are round-robin to each consumer Consumer need to ack
  • 16. DEMOTIME • Java Producer • Java Consumer • CFML Consumer • NodeJS Consumer • JavaScript Consumer • CFML Producer
  • 17. Q & A • RabbitMQ In Action Book • http://www.rabbitmq.com • http://tryrabbitmq.com/ • https://github.com/RabbitMQSimulator/RabbitMQSimulator • http://koo.fi/blog/2013/02/18/web-messaging-with-rabbitmq-web-stomp-and- sockjs/ • https://github.com/robharrop/presentations.git