Your SlideShare is downloading. ×
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Polyglot Messaging with Apache ActiveMQ

1,353

Published on

Messaging is the backbone of many top enterprises. It affords reliable, asynchronous data passing to achieve loosely coupled, highly scalable distributed systems. As enterprises large and small become …

Messaging is the backbone of many top enterprises. It affords reliable, asynchronous data passing to achieve loosely coupled, highly scalable distributed systems. As enterprises large and small become more interconnected, demand for remote and limited devices to be integrated with enterprise systems is surging. Come see how the most widely used, open-source messaging broker, Apache ActiveMQ, fits nicely and how it supports polyglot messaging.

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,353
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
43
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Polyglot messaging with Apache ActiveMQ Christian Posta Principal Consultant and Architect 11/09/13 1
  • 2. Agenda •  Polyglot messaging •  Changing landscapes •  Apache ActiveMQ •  •  •  STOMP MQTT Network of Brokers •  Large-scale management •  Questions? 2
  • 3. Your speaker Christian Posta Blog: http://christianposta.com/blog Twitter: @christianposta Email: christian@redhat.com ceposta@apache.org •  Principal Consultant and Architect at Red Hat (FuseSource) •  Based in Phoenix, AZ •  Committer on Apache Camel, ActiveMQ, Apollo •  PMC on ActiveMQ •  Author: Essential Camel Components DZone Refcard 3
  • 4. Polyglot messaging 4 4
  • 5. Polyglot Messaging?! adjective: “knowing or using several languages” 5
  • 6. Messaging Message Broker P C C Message C 6
  • 7. Integration? 7
  • 8. Why is integration hard? •  Off the shelf? Home Grown? Acquisition? •  Platforms •  Protocols / Data Formats •  Data Formats •  Timing •  Organizational mismatch 8
  • 9. Integration Options •  Batch file transfers •  Shared Database •  RPC •  Messaging 9
  • 10. Why messaging? •  •  •  •  •  10 Asynchronous architectures Reliable message passing Loose coupling Heterogeneous integration Real-time data
  • 11. Changing landscapes 11 11
  • 12. Example of Distributed Application Integration Head Office STORE Broker Clusters 24 houra shop shop outlet STORE 12 STORE
  • 13. Ingestion for BigData Architecture Broker Cluster Camel HTTP Log Reader ESB Web Servers Camel HBase/HDFS Camel HTTP Log Reader Web Servers Broker Cluster Camel HTTP Log Reader Web Servers Camel Hbase/HDFS Camel HTTP Log Reader Web Servers 13 ESB HDFS
  • 14. M2M Deployments Arrival Airport 1 Connecting Things •  mobile devices •  meters •  industrial controls •  smart buildings •  asset tracking •  traffic control •  monitors •  sensors •  actuators 14 Broker Clusters
  • 15. Apache ActiveMQ 15 15
  • 16. Apache ActiveMQ •  The most widely used open-source messaging broker •  •  •  •  Highly configurable Friendly license (no license fees!) Vibrant community (TLP) Backbone of top enterprises in retail, e-retail, financial services, shipping, many others! 16
  • 17. Broker Architecture 17
  • 18. Broker Architecture 18
  • 19. Connectivity: Transports •  •  •  •  •  •  19 TCP, NIO UDP SSL, SSL+NIO VM HTTP WebSockets
  • 20. Connectivity: Protocols •  •  •  •  20 OpenWire STOMP 1.0, 1.1, 1.2 MQTT 3.1 AMQP 1.0
  • 21. STOMP 21 21
  • 22. STOMP – what it is? •  http://stomp.github.com •  Simple Text Orientated Messaging Protocol •  HTTP for the messaging realm
  • 23. STOMP •  “Simple!” •  A lot of “polyglot” APIs •  •  •  •  •  Ruby - https://rubygems.org/gems/stomp Python - https://pypi.python.org/pypi/stompy PHP - http://pecl.php.net/package/stomp JavaScript - http://jmesnil.net/stomp-websocket/doc/ Perl - http://search.cpan.org/dist/Net-STOMP-Client/ •  Implemented •  ActiveMQ •  Apollo •  HornetQ •  RabbitMQ
  • 24. STOMP Connect CONNECT! login: ceposta! passcode: ActiveMQRocks! ! ^@!
  • 25. STOMP Sending SEND! destination: /queue/order.books! reply-to: /tempQueue/Christian! correlation-id: 900145! amazonSecurityToken: 1bc2345! amazonCustomerRating: gold! ! <order id=“123” customer=“ceposta”>! <book isbn=“1234” />! <book isbn=“4567” />! </order>! ^@!
  • 26. STOMP Subscribe SUBSCRIBE! destination: /queue/order.books! ! ^@!
  • 27. Stomp + ActiveMQ •  Available transports <transportConnectors> <transportConnector name=”stomp" uri=”stomp://0.0.0.0:61613"/> <transportConnector name=”stomp+nio" uri=”stomp+nio://0.0.0.0:61614"/> <transportConnector name=”stomp+ssl" uri=”stomp+ssl://0.0.0.0:61615"/> <transportConnector name=”stomp+nio+ssl" uri=”stomp+nio+ssl://0.0.0.0:61615"/> </transportConnectors> •  NIO implementation for better scalability •  SSL for secure communication
  • 28. MQTT 28 28
  • 29. MQTT •  http://mqtt.org/ - MQ Telemetry Transport •  Developed by IBM for embedded devices telemetry •  IoT (Internet of Things) protocol •  Efficient binary protocol 29
  • 30. MQTT Features •  Low bandwidth •  Smallest frame 2 bytes •  Unreliable networks •  Small footprint •  Example frames •  •  •  •  CONNECT PUBLISH SUBSCRIBE PINGREQ/PINGRESP •  DISCONNECT 30
  • 31. MQTT •  Publish/subscribe protocol – “topics” “subjects” •  3 QoS Options: •  At Most Once – message loss might occur •  At Least Once – duplicates might occur •  Exactly Once – guaranteed delivery 31
  • 32. MQTT + ActiveMQ •  Available transports <transportConnectors> <transportConnector name=”mqtt" uri=”mqtt://0.0.0.0:1883"/> <transportConnector name=”mqtt+nio" uri=”mqtt+nio://0.0.0.0:1884"/> <transportConnector name=”mqtt+ssl" uri=”mqtt+ssl://0.0.0.0:1885"/> <transportConnector name=”mqtt+nio+ssl" uri=”mqtt+nio+ssl://0.0.0.0:1886"/> </transportConnectors> •  NIO implementation for better scalability •  SSL for secure communication 32
  • 33. Network of brokers 33 33
  • 34. Store and Forward Local Broker 34 Remote Broker
  • 35. Store and Forward 35
  • 36. Store and Forward 36
  • 37. Example retail topology Head Office STORE Broker Clusters 24 houra shop shop outlet STORE 37 STORE
  • 38. Large-scale management 38 38
  • 39. Fuse Fabric 39 39
  • 40. Fuse Fabric 40
  • 41. Fuse Fabric 41
  • 42. HawtIO 42 42
  • 43. Old Web Console 43
  • 44. HawtIO – http://hawt.io •  •  •  •  •  Manage integration infrastructure from one dashboard Customizable Plugins •  Camel •  ActiveMQ •  Fabric •  Infinispan •  Tomcat •  Many others! Visualizations One dashboard to rule them all 44
  • 45. HawtIO – http://hawt.io •  Visualization of health •  Access to operations to make changes •  Move messages from DLQ to original destinations •  Visualize Camel routes deployed along with broker •  Send messages •  Real-time metrics 45
  • 46. 46
  • 47. 47
  • 48. Wrap up •  Checkout the ActiveMQ wiki: http://activemq.apache.org •  Mailing list: users@activemq.apache.org •  My Blog: http://christianposta.com/blog •  Books: ActiveMQ in Action – Dejan Bosanac, Rob Davies Instant ActiveMQ Messaging Application Development – Tim Bish 48
  • 49. Questions? 49 49
  • 50. Questions? •  Forums, Mailing list, Stackoverflow •  ceposta@apache.org •  christian@redhat.com 50

×