Polyglot messaging with
Apache ActiveMQ
Christian Posta
Principal Consultant and Architect
11/09/13
1
Agenda
•  Polyglot messaging
•  Changing landscapes
•  Apache ActiveMQ
• 
• 
• 
STOMP
MQTT
Network of Brokers
•  Large-s...
Your speaker
Christian Posta
Blog: http://christianposta.com/blog
Twitter: @christianposta
Email: christian@redhat.com
cep...
Polyglot messaging
4
4
Polyglot Messaging?!
adjective: “knowing or using several languages”
5
Messaging
Message
Broker
P
C
C
Message
C
6
Integration?
7
Why is integration hard?
•  Off the shelf? Home Grown? Acquisition?
•  Platforms
•  Protocols / Data Formats
•  Data Forma...
Integration Options
•  Batch file transfers
•  Shared Database
•  RPC
•  Messaging
9
Why messaging?
• 
• 
• 
• 
• 
10
Asynchronous architectures
Reliable message passing
Loose coupling
Heterogeneous integr...
Changing landscapes
11
11
Example of Distributed
Application Integration
Head Office
STORE
Broker
Clusters
24 houra
shop
shop
outlet
STORE
12
...
Ingestion for BigData Architecture
Broker
Cluster
Camel
HTTP Log
Reader
ESB
Web Servers
Camel
HBase/HDFS
Camel
HTTP Log
...
M2M Deployments
Arrival
Airport 1
Connecting Things
•  mobile devices
•  meters
•  industrial controls
•  smart building...
Apache ActiveMQ
15
15
Apache ActiveMQ
•  The most widely used open-source
messaging broker
• 
• 
• 
• 
Highly configurable
Friendly license (n...
Broker Architecture
17
Broker Architecture
18
Connectivity: Transports
• 
• 
• 
• 
• 
• 
19
TCP, NIO
UDP
SSL, SSL+NIO
VM
HTTP
WebSockets
Connectivity: Protocols
• 
• 
• 
• 
20
OpenWire
STOMP 1.0, 1.1, 1.2
MQTT 3.1
AMQP 1.0
STOMP
21
21
STOMP – what it is?
•  http://stomp.github.com
•  Simple Text Orientated Messaging Protocol
•  HTTP for the messaging real...
STOMP
•  “Simple!”
•  A lot of “polyglot” APIs
• 
• 
• 
• 
• 
Ruby - https://rubygems.org/gems/stomp
Python - https://pyp...
STOMP Connect
CONNECT!
login: ceposta!
passcode: ActiveMQRocks!
!
^@!
STOMP Sending
SEND!
destination: /queue/order.books!
reply-to: /tempQueue/Christian!
correlation-id: 900145!
amazonSecurit...
STOMP Subscribe
SUBSCRIBE!
destination: /queue/order.books!
!
^@!
Stomp + ActiveMQ
•  Available transports
<transportConnectors>
<transportConnector name=”stomp" uri=”stomp://0.0.0.0:6161...
MQTT
28
28
MQTT
•  http://mqtt.org/ - MQ Telemetry Transport
•  Developed by IBM for embedded devices telemetry
•  IoT (Internet of T...
MQTT Features
•  Low bandwidth
•  Smallest frame 2 bytes
•  Unreliable networks
•  Small footprint
•  Example frames
• 
• ...
MQTT
•  Publish/subscribe protocol – “topics” “subjects”
•  3 QoS Options:
•  At Most Once – message loss might occur
•  A...
MQTT + ActiveMQ
•  Available transports
<transportConnectors>
<transportConnector name=”mqtt"
uri=”mqtt://0.0.0.0:1883"/>...
Network of brokers
33
33
Store and Forward
Local Broker
34
Remote Broker
Store and Forward
35
Store and Forward
36
Example retail topology
Head Office
STORE
Broker
Clusters
24 houra
shop
shop
outlet
STORE
37
STORE
Large-scale management
38
38
Fuse Fabric
39
39
Fuse Fabric
40
Fuse Fabric
41
HawtIO
42
42
Old Web Console
43
HawtIO – http://hawt.io
• 
• 
• 
• 
• 
Manage integration infrastructure from one dashboard
Customizable
Plugins
•  Came...
HawtIO – http://hawt.io
• 
Visualization of health
• 
Access to operations to make changes
• 
Move messages from DLQ ...
46
47
Wrap up
• 
Checkout the ActiveMQ wiki:
http://activemq.apache.org
• 
Mailing list:
users@activemq.apache.org
• 
My Bl...
Questions?
49
49
Questions?
• 
Forums, Mailing list, Stackoverflow
• 
ceposta@apache.org
• 
christian@redhat.com
50
of 50

Polyglot Messaging with Apache ActiveMQ

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 on: Mar 4, 2016
Published in: Technology      
Source: www.slideshare.net


Transcripts - Polyglot Messaging with Apache ActiveMQ

  • 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

Related Documents