This document discusses various message queue technologies including RabbitMQ, ZeroMQ, cloud-based options like Azure Service Bus and Amazon SQS/SNS, and the lightweight NATS system. It provides overviews of each technology, highlighting key features, protocols, and use cases. Examples and code demos are shown for RabbitMQ and ZeroMQ. The document aims to help readers understand different message queue options and pick the most suitable one based on their distributed system and cloud hosting needs.
The session presents in the details the RabbitMQ message broker along with demonstrations using the Java client, the Spring integration for RabbitMQ and the administration tools provided as part of the RabbitMQ installation.
A presentation from internal meeting on Message Broker System and RabbitMQ. RabbitMQ is open source message broker software that implements the Advanced Message Queuing Protocol (AMQP).
The session presents in the details the RabbitMQ message broker along with demonstrations using the Java client, the Spring integration for RabbitMQ and the administration tools provided as part of the RabbitMQ installation.
A presentation from internal meeting on Message Broker System and RabbitMQ. RabbitMQ is open source message broker software that implements the Advanced Message Queuing Protocol (AMQP).
Messaging Standards and Systems - AMQP & RabbitMQAll Things Open
All Things Open 2014 - Day 1
Wednesday, October 22nd, 2014
Gavin Roy
VP of Architecture for AWeber Communications
Back Dev
Messaging Standards and Systems - AMQP & RabbitMQ
Find more by Gavin here: https://speakerdeck.com/gmr
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard WolffJAX London
2011-11-02 | 05:45 PM - 06:35 PM
The JMS standard is 9 years old - but outside the Java community innovation is happening. The AMQP standard with implementations like RabbitMQ is gaining more and more traction. This session explains the standard and its advantages. It will also show how an AMQP application can be implemented using Java.
This is an introduction to the AMQP 1.0 messaging protocol.
The AMQP 1.0 protocol is used by Microsoft Azure Service Bus, Service Bus for Windows Server, Azure Event Hubs, Azure IoT Hub, and by numerous open source projects like Apache Qpid, Apache ActiveMQ, and Apache Apollo, as well as by commercial messaging products of other vendors like JBoss A-MQ, RedHat MRG, SwiftMQ, and IBM MQLight.
Improving Kafka at-least-once performance at UberYing Zheng
At Uber, we are seeing an increasing demand for Kafka at-least-once delivery (asks=all). So far, we are running a dedicated at-least-once Kafka cluster with special settings. With a very low workload, the dedicated at-least-once cluster has been working well for more than a year. When trying to allow at-least-once producing on the regular Kafka clusters, the producing performance was the main concern. We spent some effort on this issue in the recent months, and managed to reduce at-least-once producer latency by about 80% with code changes and configuration tuning. When acks=0, these improvements also help increasing Kafka throughput and reducing Kafka end-to-end latency.
What we've learned from running thousands of production RabbitMQ clusters - L...RabbitMQ Summit
Watch the full lecture on YouTube: https://www.youtube.com/watch?v=ez9kQEhHsnc&list=PLDUzG2yLXrU4Lz33ZzSdHyfqdHJ8Zum5A
Since 2012 CloudAMQP has been running dedicated and shared RabbitMQ clusters for customers around the world, in seven different clouds. In this talk Lovisa will address the most common misconception, misconfigurations and anti-patterns in RabbitMQ usage, and how they can be avoided. Lovisa will talk about how you can increase RabbitMQ reliability and performance and she will also mention common RabbitMQ use cases among CloudAMQP’s customers.
--
The first RabbitMQ Summit connected RabbitMQ users and developers from around the world in London on November 12, 2018. Learn what's happening in and around RabbitMQ, and how top companies utilize RabbitMQ to power their services.
https://www.rabbitmqsummit.com
RabbitMQ Summit was organized by:
- Erlang Solutions, offering world-leading RabbitMQ Consultancy, Support, Health Checks & Tuning solutions https://www.erlang-solutions.com/
- CloudAMQP, offering fully managed RabbitMQ clusters https://www.cloudamqp.com
RabbitMQ Summit 2018 was sponsored by the following companies.
Platinum sponsors:
Pivotal
LShift
Gold sponors:
Trifork
AWS
Silver sponsor:
Cogin Queue Explorer
Following up from AMQP presentation, this is a more in-depth coverage of RabbitMQ with workshop-style walkthrough, covering various aspects of the system.
In this talk, we will cover best practices in running RabbitMQ, things you should avoid doing, lesser known features, recent operations improvements and a bit of what's ahead.
Given in October, 2015.
Like many other messaging systems, Kafka has put limit on the maximum message size. User will fail to produce a message if it is too large. This limit makes a lot of sense and people usually send to Kafka a reference link which refers to a large message stored somewhere else. However, in some scenarios, it would be good to be able to send messages through Kafka without external storage. At LinkedIn, we have a few use cases that can benefit from such feature. This talk covers our solution to send large message through Kafka without additional storage.
Overview of Publish/Subscribe messaging and comparison of MQTT, AMQP and DDS protocols.
Presented in IoT Bratislava meeting
Recorded session (in Slovak): https://www.youtube.com/watch?v=7wqyriSAqLY
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de BruinOrtus Solutions, Corp
Our web hosting company is using many different services for managing e-mail, spam-filters, DNS, domain registrations, SSL registrations, ticket systems and more. Some of these services have well defined Web API’s, others can only be managed by simple command line scripts.
In this session we will explain how we tried to automate the various workflows by using a messaging system such as RabbitMQ for communication between our cfml based customer control panel and these services.
Messaging For the Cloud and MicroservicesRob Davies
Utilising messaging in cloud deployments isn't straightforward, particularly if you want to take advantage of auto scaling. This talk covers the general problems of scaling for cloud deployments, and messaging for faster inter-service communication for Microservices
Overview for RabbitMQ with AMQP protocol and a discussion for the AMQP model with message properties and publish and consume message
types of exchange
main properties of the queue
Scale changes everything. Number of connections and destinations went from dozen to thousands, number of messages increased by order of magnitude. What once was quite adequate for enterprise messaging can't scale to support "Internet of Things". We need new protocols, patterns and architectures to support this new world. This session will start with basic introduction to the concept of Internet of things. Next it will discuss general technical challenges involved with the concept and explain why it is becoming mainstream now. Now we're ready to start talking about solutions. We will introduce some messaging patterns (like telemetry and command/control) and protocols (such as MQTT and AMQP) used in these scenarios. Finally we will see how Apache ActiveMQ is gearing up for this race. We will show tips for horizontal and vertical scaling of the broker, related projects that can help with deployments and what the future development road map looks like.
Messaging Standards and Systems - AMQP & RabbitMQAll Things Open
All Things Open 2014 - Day 1
Wednesday, October 22nd, 2014
Gavin Roy
VP of Architecture for AWeber Communications
Back Dev
Messaging Standards and Systems - AMQP & RabbitMQ
Find more by Gavin here: https://speakerdeck.com/gmr
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard WolffJAX London
2011-11-02 | 05:45 PM - 06:35 PM
The JMS standard is 9 years old - but outside the Java community innovation is happening. The AMQP standard with implementations like RabbitMQ is gaining more and more traction. This session explains the standard and its advantages. It will also show how an AMQP application can be implemented using Java.
This is an introduction to the AMQP 1.0 messaging protocol.
The AMQP 1.0 protocol is used by Microsoft Azure Service Bus, Service Bus for Windows Server, Azure Event Hubs, Azure IoT Hub, and by numerous open source projects like Apache Qpid, Apache ActiveMQ, and Apache Apollo, as well as by commercial messaging products of other vendors like JBoss A-MQ, RedHat MRG, SwiftMQ, and IBM MQLight.
Improving Kafka at-least-once performance at UberYing Zheng
At Uber, we are seeing an increasing demand for Kafka at-least-once delivery (asks=all). So far, we are running a dedicated at-least-once Kafka cluster with special settings. With a very low workload, the dedicated at-least-once cluster has been working well for more than a year. When trying to allow at-least-once producing on the regular Kafka clusters, the producing performance was the main concern. We spent some effort on this issue in the recent months, and managed to reduce at-least-once producer latency by about 80% with code changes and configuration tuning. When acks=0, these improvements also help increasing Kafka throughput and reducing Kafka end-to-end latency.
What we've learned from running thousands of production RabbitMQ clusters - L...RabbitMQ Summit
Watch the full lecture on YouTube: https://www.youtube.com/watch?v=ez9kQEhHsnc&list=PLDUzG2yLXrU4Lz33ZzSdHyfqdHJ8Zum5A
Since 2012 CloudAMQP has been running dedicated and shared RabbitMQ clusters for customers around the world, in seven different clouds. In this talk Lovisa will address the most common misconception, misconfigurations and anti-patterns in RabbitMQ usage, and how they can be avoided. Lovisa will talk about how you can increase RabbitMQ reliability and performance and she will also mention common RabbitMQ use cases among CloudAMQP’s customers.
--
The first RabbitMQ Summit connected RabbitMQ users and developers from around the world in London on November 12, 2018. Learn what's happening in and around RabbitMQ, and how top companies utilize RabbitMQ to power their services.
https://www.rabbitmqsummit.com
RabbitMQ Summit was organized by:
- Erlang Solutions, offering world-leading RabbitMQ Consultancy, Support, Health Checks & Tuning solutions https://www.erlang-solutions.com/
- CloudAMQP, offering fully managed RabbitMQ clusters https://www.cloudamqp.com
RabbitMQ Summit 2018 was sponsored by the following companies.
Platinum sponsors:
Pivotal
LShift
Gold sponors:
Trifork
AWS
Silver sponsor:
Cogin Queue Explorer
Following up from AMQP presentation, this is a more in-depth coverage of RabbitMQ with workshop-style walkthrough, covering various aspects of the system.
In this talk, we will cover best practices in running RabbitMQ, things you should avoid doing, lesser known features, recent operations improvements and a bit of what's ahead.
Given in October, 2015.
Like many other messaging systems, Kafka has put limit on the maximum message size. User will fail to produce a message if it is too large. This limit makes a lot of sense and people usually send to Kafka a reference link which refers to a large message stored somewhere else. However, in some scenarios, it would be good to be able to send messages through Kafka without external storage. At LinkedIn, we have a few use cases that can benefit from such feature. This talk covers our solution to send large message through Kafka without additional storage.
Overview of Publish/Subscribe messaging and comparison of MQTT, AMQP and DDS protocols.
Presented in IoT Bratislava meeting
Recorded session (in Slovak): https://www.youtube.com/watch?v=7wqyriSAqLY
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de BruinOrtus Solutions, Corp
Our web hosting company is using many different services for managing e-mail, spam-filters, DNS, domain registrations, SSL registrations, ticket systems and more. Some of these services have well defined Web API’s, others can only be managed by simple command line scripts.
In this session we will explain how we tried to automate the various workflows by using a messaging system such as RabbitMQ for communication between our cfml based customer control panel and these services.
Messaging For the Cloud and MicroservicesRob Davies
Utilising messaging in cloud deployments isn't straightforward, particularly if you want to take advantage of auto scaling. This talk covers the general problems of scaling for cloud deployments, and messaging for faster inter-service communication for Microservices
Overview for RabbitMQ with AMQP protocol and a discussion for the AMQP model with message properties and publish and consume message
types of exchange
main properties of the queue
Scale changes everything. Number of connections and destinations went from dozen to thousands, number of messages increased by order of magnitude. What once was quite adequate for enterprise messaging can't scale to support "Internet of Things". We need new protocols, patterns and architectures to support this new world. This session will start with basic introduction to the concept of Internet of things. Next it will discuss general technical challenges involved with the concept and explain why it is becoming mainstream now. Now we're ready to start talking about solutions. We will introduce some messaging patterns (like telemetry and command/control) and protocols (such as MQTT and AMQP) used in these scenarios. Finally we will see how Apache ActiveMQ is gearing up for this race. We will show tips for horizontal and vertical scaling of the broker, related projects that can help with deployments and what the future development road map looks like.
Session on CloudStack, intended for new users to CloudStack, provides an overview to varied audience levels information on usages, use cases, deployment and its architecture.
"Enterprise Messaging with RabbitMQ" by Luis Majano is a comprehensive presentation that explores the concept of enterprise messaging and demonstrates how RabbitMQ, a widely used message broker, can facilitate effective communication within complex software systems. This presentation aims to provide a deep understanding of messaging patterns, architectures, and the benefits of adopting RabbitMQ in enterprise-level applications.
The presentation begins by introducing the fundamental principles of enterprise messaging and its significance in modern software development. It emphasizes the need for scalable, reliable, and decoupled communication between components and systems to ensure seamless operation and flexibility.
Luis Majano, an expert in enterprise software development, then delves into the key features and capabilities of RabbitMQ. He explains how RabbitMQ enables the implementation of various messaging patterns such as publish/subscribe, request/reply, and message routing. The presentation highlights the versatility of RabbitMQ in handling different messaging scenarios and discusses its integration possibilities with different programming languages and frameworks.
Moreover, the presentation addresses crucial concepts related to RabbitMQ, including exchanges, queues, bindings, and message acknowledgment. It explains how these components work together to enable message routing, filtering, and delivery guarantees in complex distributed systems.
Luis Majano also demonstrates the practical implementation of RabbitMQ through code examples and architectural diagrams. He illustrates how to set up RabbitMQ clusters for high availability and scalability, and how to handle common messaging challenges such as message persistence, fault tolerance, and load balancing.
Throughout the presentation, Luis Majano shares best practices, tips, and strategies for designing and implementing robust messaging solutions using RabbitMQ. He discusses message serialization, error handling, monitoring, and performance optimization techniques to ensure optimal message throughput and system responsiveness.
With ever increasing Connectivity options, Security Protocols and Sophisticated Human Interfaces, Software and AP developers find themselves caught more deeply in the dichotomy of dealing with increasing complexity of designs and shrinking timelines. Resource constraints and constantly evolving software landscape provide challenges to software Integration that have to be overcome to enable designers to focus on the actual application.
Developers need a Modular Software Framework that accelerates software integration, provides flexible programming options and enables application re-use across multiple platforms. “That framework is MPLAB® Harmony.”
Join us for the webinar series where we provide a technical overview of MPLAB® Harmony, Live tool demos, Microchip and third party Middleware support and finally demonstrate how Harmony accelerates software integration and moves development focus and resources to Application Development and testing.
World of Tanks Experience of Using KafkaLevon Avakyan
In this paper I speak about BigWorld technology, WoT server, Apache Kafka and how we started to use it together. What difficulties we had and how we had solved them.
Let's learn about :
What is RabbitMQ ?
Why RabbitMQ ?
RabbitMQ vs Kafka ? Which one is suitable for your purpose.
Advantages of RabbitMQ
Support By RabbitMQ
RabbitMQ is one part of Message Broker that implemented Advance Message Queue Protocol (AMQP), that help your application to communicate each other, when you extends your application scale.
Peng Kang, Software Engineer, Dropbox + Richi Gupta, Engineering Manager, Dropbox
As a scalable and reliable data streaming solution with a rich ecosystem, Kafka is widely adopted in Dropbox infrastructure in various scenarios. It is part of Dropbox’s analytics data pipeline, stream processing platform and more mission critical systems. Jetstream is the team that provides Kafka as a service in Dropbox infrastructure. We manage the clusters, develop tooling, and enforce policies, so that our users can enjoy a highly available and reliable service. In this talk, we will share our experiences and learnings running Kafka clusters, pipelines that enable high durability (direct writes to kafka) and availability (goscribe), the policies we enforce for high reliability, the tooling we have for maintenance and stress testing, and finally an overview of Dropbox’s next generation queueing service built on top Kafka.
https://www.meetup.com/KafkaBayArea/events/266327152/
AWS re:Invent 2016: Discovery Channel's Broadcast Workflows and Channel Origi...Amazon Web Services
Media delivery requirements are continually changing, driven by accelerating mobile, tablet, smart TV, and set-top technology advances. Broadcasters need agile solutions to the changing media and entertainment landscape that don't require multiyear projects with large upfront investments. In this session, we walk through Discovery Communications' migration of its broadcast playout and channel origination to AWS. Discovery Communications is a leader in nonfiction media, reaching more than 3 billion cumulative viewers in 220 countries and territories. Traditionally, broadcast origination for content delivered to telecommunications companies, cable TV, and satellite has existed only in on-premises data centers. In this session, we walk through Discovery's migration of broadcast playout supporting hundreds of channels worldwide to AWS. We show how Discovery has not only reduced their TCO but also has improved their agility by launching new channels on demand. We also walk through how channel origination is being deployed in a secure, automated fashion, and with a level of high availability that exceeds what is possible in a traditional data center.
Roko Kruze of vectorized.io describes real-time analytics using Redpanda event streams and ClickHouse data warehouse. 15 December 2021 SF Bay Area ClickHouse Meetup
An introduction to message queues with PHP. We'll focus on RabbitMQ and how to leverage queuing scenarios in your applications. The talk will cover the main concepts of RabbitMQ server and AMQP protocol and show how to use it in PHP. The RabbitMqBundle for Symfony2 will be presented and we'll see how easy you can start to use message queuing in minutes.
Presented at Symfony User Group Belgium: http://www.meetup.com/Symfony-User-Group-Belgium/events/169953362/
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
3. About me
Senior consultant at CodeValue since 2015
10 years of experience in large scale software
development
Particularly interested in highload projects,
distributed systems, and cloud computing
3
6. STOMP – Simple Text Oriented Message Protocol
• Simple interoperable protocol for asynchronous
messaging
• coming from HTTP school of design
• Text Based
• Communication between client and server is
through a 'frame'
• Client frames : SEND,SUBSCRIBE/ UNSUBSCRIBE,
ACK/NACK…
• Server frames: MESSAGE,RECEIPT,ERROR
STOMP
SERVER
Client Client
Send Subscribe
Message
Receipt
ACK/NACK
7. MQTT – Message Queue Telemetry Transport
• Created by IBM for
embedded devices telemetry
• Ideal for constrained
networks (low bandwidth,
high latency, data limits, and
fragile connections)
• Binary format (2-byte header)
• Pub/Sub
• Reliable – QoS for reliability
on unreliable networks
• Security
• Authentication
• TLS/SSL
• Simple – 43 page spec.
• Connect/Disconnect + Publish
+ Subscribe/Unsubscribe
7
8. AMQP – Advanced Message Queue Protocol
Conceived by JP Morgan in
2006
Answer to current Middleware
Hell
100’s of applications
10,000’s of links
every connection different
massive waste of effort
Goal to make interoperable
Message Oriented Middleware
8
13. RabbitMQ
Open source
Support multiple protocols AMQP,MQTT,STOMP,HTTP
Routing capabilities
Reliability
Scalability through clustering
High availability
Management and monitoring
Security
Traceability and debugging
Pluggable architecture
13
14. RabbitMQ
14
• Clustering
• Act as single logical unit
• Consumer seen cluster as a single
node
• Automatic metadata replication
• Mirrored queues
• Federation/Shovel
• Consumes and republishers
• Exchange to exchange
• Works well across WAN
• Two main difference
• Shovel is low level
• Shovel is more flexible
15. RabbitMQ
15
• Know your rabbit (DevOps!)
• Erlang
• Configuration are Erlang tuples
• You will need to deal with Erlang's message
passing framework
• Reading source and extend the system will
be difficult
• Optimized for discrete message
handling
• No content filtering
• It's not too fast
• Optimized for discrete message handling
• Fan-out ~35000 mps
• Direct ~35000 mps
• Topic ~10000 mps
• Consistent-Hash(plugin) ~40000 mps
16. RabbitMQ
• Community support
• https://groups.google.com/forum/#!forum/rabbitmq-users
• Slack - https://rabbitmq-slack.herokuapp.com/
• Official site - http://www.rabbitmq.com/
• Books
• RabbitMQ in Action
• RabbitMQ in Depth
• RabbitMQ Essentials
• RabbitMQ best practices – CloudAMQP
• https://www.cloudamqp.com/blog/2017-12-29-part1-rabbitmq-best-practice.html
• Video
16
19. No more brokers
19
• Brokers are single point of failure
• Not horizontally scalable
• Reduce reliability with addition of nodes
• HA provides minimal benefit, and adds
complexity
21. ZeroMQ
What Ø come for?
The original Ø meant:
• Zero broker
• Zero latency (as close as possible)
With the time
• Zero administration
• Zero cost
• Zero waste
21
23. ZeroMQ
Creators - iMatix CEO Pieter Hintjens and Martin
Sustrik
Super socket library
Language agnostic (40+ languages)
Multiple network protocols
Multiple connection patterns
High throughput/low latency (~5m mps, 30usec
latency)
Messages
Batching
Atomic
Small (~25k lines of code)
Open source. Large supported community.
Multiple forks (nanomessage)
23
24. ZeroMQ - Cons
24
Durability
Static routing
No out of the box solution
Service discovery
Management
Delivery deadlines
QoS
Low level
Internal queue management
25. ZeroMQ - Sockets
• Unicast – inproc, ipc (except on
Windows), tcp
• Multicast – pgm, epgm
• Asynchronous
• Designed for particular messaging
patterns
• Connect to multiple endpoints
• Automatically reconnect
• Queue messages when under heavy
load
25
26. ZeroMQ - Sockets
26
• PUB - Outgoing broadcast
• SUB - Broadcast listener
• REQ - Synchronous (1 msg at a time)
request
• REP - Synchronous reply
• DEALER - Async request
• ROUTER - Async reply
• PUSH - One way outgoing to PULL(s)
• PULL - One way incoming from
PUSH(es)
• PAIR - One-to-one 2-way with
another PAIR
PUB and SUB
REQ and REP
REQ and ROUTER
DEALER and REP
DEALER and ROUTER
DEALER and DEALER
ROUTER and ROUTER
PUSH and PULL
PAIR and PAIR
31. Cloud
You host your services on cloud
You don’t have a dedicated budget or skills to
maintain your own queueing system
You aren’t necessarily interested in lowest
latency
You prefer easy solutions over powerful
solutions when queuing is considered
You don’t plan on processing large amounts of
messages
31
32. Self - hosted
32
Your system is distributed or hosted outside of public
cloud
You want an open solution that you can reuse
You’re worried about latency
You want to configure exchanges or use some other
non-trivial methods of message distribution
You want your queuing system to be extendable and
configurable, and
You want maximum performance and have dedicated
resources to invest in your messaging solution.
34. Storage queue
PROS
• Can store over 80Gb in queue
• Low cost (100x cheaper than Azure Service Bus)
• Batch receive (up to 32 messages)
• Only pay for storage and operations
• Redundancy(LRS, ZRS, GRS, RA-GRS)
• Rest api
CONS
• Maximum size of a message is 64KB
• Maximum mps is 2000
• Maximum TTL for each message is 7 days
• No order guaranty
• Only polling (for receiver)
• No batch support for sender
34
38. Amazon SQS
• Unlimited queues and messages
• Payload Size: up to 256KB
• Batches
• Long polling
• Retain messages in queues for up
to 14 days
38
• Send and read
messages simultaneously
• Message locking
• Queue sharing
• Server-side encryption (SSE)
• Dead Letter Queues (DLQ)
• Amazon CloudWatch metrics
+ alerts
40. Amazon MQ
40
Amazon MQ is a managed
message broker service
for Apache ActiveMQ that makes
it easy to set up and operate
message brokers in the cloud.
42. 42
• Was created by Derek Colission in 2010
• Open source, lightweight, high-performance cloud
native messaging system
• Capable of sending 11-12 million messages per
second
• Written in Go
• Available in two interoperable modules
• NATS Server
• NATS Streaming Server
45. NATS Server
Highly performant, extremely
lightweight
Clustered servers/clustered aware
clients
Built in resilience and high availability
Auto discovery for topology
Text based protocol (payload as array of
bytes)
Monitorable on a dedicated port
TLS support
Auto Pruning of Clients
Pure Pub/Sub
Request/Reply ,Queueing pattern
Smart routing with wildcards
45
Durability
Transactions
QoS
Flow control (rate
matching/limitng)
46. NATS Streaming
Layer on top of NATS
Enhanced message protocol - NATS Streaming implements its own
enhanced message format using Google Protocol Buffers.
Message/event persistence
QoS
Flow control (rate matching/limiting)
Message replay by subject
All available messages
Last published value
All messages since specific sequence number
All messages since a specific date/time
Durable subscribers
46
49. NATS cluster
49
• For high availability, a full mash of NATS servers
can be setup
• Clients can connect to any of nodes to
communicate with other clients, the NATS cluster
would then route the messages
• Routing will be done if clients showed interests in
subject
• Whenever a new NATS servers joins then
members already in cluster connected as well to
form the full mash