Messaging Brokers are intrinsic part of our infrastructure and our experience with HornetQ has not been really great.
We have experienced issues that forced us to perform restarts multiple times a day and sometimes they weren't sufficient to fix the issue and data cleanup was needed resulting in loss of important messages.
Lack of documentation, lack of proper support and lack of stability of HornetQ broker are some of the reasons for looking into new Messaging Brokers.
During this session I will present the path we have taken to Prioritize Features -> Compare Brokers -> Eliminate -> Benchmark and the findings together with recommendations.
This task resulted in implementation of generic messaging broker benchmarking tool in Java, called Benchmark.io which we are intending to open source.
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
In pursuit of messaging broker(s)
1. I N P U R S U I T O F M E S S A G I N G
B R O K E R ( S )
2. D AV I D G E V O R K YA N
@ d a v i d g e v
d a v i d g e v o r k y a n
3. P R I M A RY G O A L
• S TA B L E
• A C T I V E & H A S P R O P E R S U P P O RT
• S AT I S F I E S P E R F O R M A N C E R E Q U I R E M E N T S
• O U R P E A K L O A D P E R N O D E 1 0 0 0 M S G / S E C ,
6 0 M L N / D AY
• M U S M E S S A G E S I Z E ~ 4 K B
• S I N G L E S P S M E S S A G E S I Z E ~ 2 . 2 K B
• M D S M E S S A G E S I Z E ~ 6 1 5 K B
• B E T T E R T H A N
4.
5.
6. 2 1 PA RT I C I PA N T S
7 F E AT U R E S E A C H
7. V E RY I M P O RTA N T F E AT U R E S
• H I G H AVA I L A B I L I T Y / R E P L I C AT I O N
• P E R S I S T E N C E / D U R A B I L I T Y
• D E V E L O P E R F R I E N D LY
• B R O K E R E D
• G U A R A N T E E D D E L I V E RY & D E L I V E RY
A C K N O W L E D G E M E N T S
• E A S Y T O C O N F I G U R E
• S TA B L E E N O U G H F O R P R O D U C T I O N
• M E T R I C E X P O S U R E
V O T E D B Y AT L E A S T 3 0 %
8. L E S S I M P O RTA N T F E AT U R E S
• M A N A G E M E N T U I
• H A D O O P E C O S Y S T E M
• O P E N S O U R C E
• W E B S O C K E T S U P P O RT
• I T E M E X P I R AT I O N
• O P E R AT I O N S F R I E N D LY
• VA R I E T Y O F D R I V E R S U P P O RT
• J M S C O M P L I A N T
• A C T I V E D E V E L O P M E N T / C U T T I N G E D G E
V O T E D B Y AT L E A S T 5 %
9. N O T I M P O RTA N T F E AT U R E S
• B R O K E R L E S S ( P E E R - T O - P E E R )
• G U A R A N T E E D O R D E R O F D E L I V E RY
• T R A C I N G
• D E A D L E T T E R E X C H A N G E S U P P O RT
• V I RT U A L I Z AT I O N F R I E N D LY
V O T E D B Y L E S S T H A N 5 %
10. a f t e r c o n s i d e r i n g “ Ve r y I m p o r t a n t F e a t u re s ”
12. N O
O F F I C I A L
JAVA
D R I V E R
R I S K
O F
B E I N G
R E P L AC E D
BY
A P O L LO
13.
14.
15. R A B B I T M Q I S A N E F F I C I E N T, H I G H LY
S C A L A B L E , A N D E A S Y- T O - D E P L O Y
Q U E U I N G S Y S T E M T H AT M A K E S
H A N D L I N G M E S S A G E T R A F F I C
V I RT U A L LY E F F O RT L E S S
Source: http://stackshare.io and others
16. K A F K A I S A D I S T R I B U T E D ,
PA RT I T I O N E D , R E P L I C AT E D C O M M I T
L O G S E R V I C E . I T P R O V I D E S T H E
F U N C T I O N A L I T Y O F A M E S S A G I N G
S Y S T E M , W I T H A U N I Q U E D E S I G N
Source: http://stackshare.io and others
19. B E N C H M A R K S C A N P R E D I C T L O A D U N D E R
C E RTA I N C O N D I T I O N S , B U T A R E FA R F R O M
B E I N G P E R F E C T.
T H E R E A L P R E D I C T O R I S R U N N I N G I N
S H A D O W M O D E
20. M A C H I N E D E TA I L S
r3.2xlarge - Optimized for memory-intensive applications
8 cores - Intel Xeon E5-2670 v2 (Ivy Bridge) Processors
61GB of RAM
160GB SSD Memory
Ubuntu: 14.04 64bit AMD
Java: 1.7.0_79 64bit
RabbitMQ: 3.5.2
Apache Kafka: 2.9.2-0.8.2.1
21. 1 P / 1 C / 1 K B / T O P I C
P R O D U C E RTHROUGHPUT/
SECOND
0
30,000
60,000
90,000
120,000
1 2 3
RabbitMQ Guaranteed Delivery
Kafka No Guarantees On Delivery
Kafka Guaranteed Delivery
C O N S U M E R
THROUGHPUT/
SECOND
0
15,000
30,000
45,000
60,000
1 2 3
RabbitMQ Guaranteed Delivery
Kafka No Guarantees On Delivery
Kafka Guaranteed Delivery
22. 1 P / 1 C / 4 K B / T O P I C
P R O D U C E RTHROUGHPUT/
SECOND
0
15,000
30,000
45,000
60,000
1 2 3
RabbitMQ Guaranteed Delivery
Kafka No Guarantees On Delivery
Kafka Guaranteed Delivery
C O N S U M E R
THROUGHPUT/
SECOND
0
10,000
20,000
30,000
40,000
1 2 3
RabbitMQ Guaranteed Delivery
Kafka No Guarantees On Delivery
Kafka Guaranteed Delivery
23. 1 P / 1 C / 1 0 0 K B / T O P I C
P R O D U C E RTHROUGHPUT/
SECOND
0
2,500
5,000
7,500
10,000
1 2 3
RabbitMQ Guaranteed Delivery
Kafka No Guarantees On Delivery
Kafka Guaranteed Delivery
C O N S U M E R
THROUGHPUT/
SECOND
0
2,250
4,500
6,750
9,000
1 2 3
RabbitMQ Guaranteed Delivery
Kafka No Guarantees On Delivery
Kafka Guaranteed Delivery
24. 1 P / 0 C / 4 K B / T O P I C
P R O D U C E R
THROUGHPUT/
SECOND
0
15,000
30,000
45,000
60,000
1 2 3
RabbitMQ Guaranteed Delivery
Kafka No Guarantees On Delivery
Kafka Guaranteed Delivery
L O A D
25. 0 P / 1 C / 4 K B / T O P I C
C O N S U M E R
THROUGHPUT/
SECOND
0
35,000
70,000
1 2 3
RabbitMQ Guaranteed Delivery
Kafka No Guarantees On Delivery
Kafka Guaranteed Delivery
U N L O A D
26. 5 P / 5 C / 4 K B / T O P I C
P R O D U C E RTHROUGHPUT/
SECOND
0
4,750
9,500
14,250
19,000
1 2 3
RabbitMQ Guaranteed Delivery
Kafka Guaranteed Delivery (1 partition)
Kafka Guaranteed Delivery (5 partitions)
RabbitMQ Guaranteed Delivery (Durable)
C O N S U M E R
THROUGHPUT/
SECOND
0
4,000
8,000
12,000
16,000
1 2 3
RabbitMQ Guaranteed Delivery
Kafka Guaranteed Delivery (1 partition)
Kafka Guaranteed Delivery (5 partitions)
RabbitMQ Guaranteed Delivery (Durable)
27. 5 P / 5 C / 4 K B / T O P I C
P R O D U C E RTHROUGHPUT/
SECOND
0
40,000
80,000
120,000
160,000
1 2 3
RabbitMQ Guaranteed Delivery
Kafka No Guarantees On Delivery
C O N S U M E R
THROUGHPUT/
SECOND
0
15,000
30,000
45,000
60,000
1 2 3
RabbitMQ Guaranteed Delivery
Kafka No Guarantees On Delivery
28. L AT E N C Y F O R B O T H
M E A N < 1 M S
M A X < 4 0 M S
29.
30.
31.
32.
33.
34. S T R E N G T H S
• R E A L LY N I C E D E S I G N F O R L O G S H I P P I N G , E . G . I F Y O U WA N T T O
W R I T E A V O L AT I L E E V E N T F I R E H O S E T O D I S K , A N D N E E D
' E L A S T I C ' C O N S U M P T I O N
• I M P L E M E N T S B U L K I N G A N D B U F F E R I N G ( W H E N W R I T I N G T O D I S K )
H E N C E R E A L LY P E R F O R M A N T
• VA R I E T Y O F T E C H N O L O G Y I N T E G R AT I O N S I N H A D O O P
E C O S Y S T E M , S P E C I F I C A L LY F O R S T R E A M P R O C E S S I N G
35. W E A K N E S S E S
• N O T B U I LT F O R U S E I N T R A N S A C T I O N A L S I T U AT I O N S
• W E A K D E L I V E RY G U A R A N T E E S
• A M AT E U R C O N S U M E R A N D P R O D U C E R C O D E I M P L E M E N TAT I O N S
• D O E S N ' T H AV E M E S S A G E A C K N O W L E D G E M E N T S B E T W E E N
B R O K E R - > C O N S U M E R
• E X T R A C O M P L E X I T Y B E C A U S E O F Z O O K E E P E R ( B A D R E C O V E RY
W H E N E I T H E R T H E Z O O K E E P E R O R B R O K E R D I E )
• E X P E R I E N C E D B Y E L E VAT E D T E A M
• D O E S N ’ T H AV E A N O T I O N O F N O N - P E R S I S T E N T Q U E U E / T O P I C
• V E RY C L O S E T I E B E T W E E N C O N S U M E R C O U N T S A N D PA RT I T I O N S
( I F L E S S C O N S U M E R S T H A N PA RT I T I O N S , S O M E C O N S U M E R S W I L L
D O N O T H I N G )
• L O G C L E A N E R N E E D S T U N I N G , O T H E R W I S E Y O U Q U I C K LY R U N
O U T O F S PA C E
• D O E S N ’ T P E R F O R M W E L L F O R L A R G E M E S S A G E S
• N E E D T O B U Y S U P P O RT
• R O U T I N G N O T I O N S A R E N O T S U P P O RT E D
• L E A R N I N G C U R V E I S S T E E P
36. S T R E N G T H S
• E A S Y T O S E T U P W I T H V I RT U A L LY N O I N T E R V E N T I O N ( I T J U S T
W O R K S )
• I M P L E M E N T S P R O P E R D E L I V E RY G U A R A N T E E S
• C O M P R E H E N S I V E D O C U M E N TAT I O N ( A N Y T H I N G I WA N T E D T O
F I N D WA S AT M Y F I N G E RT I P )
• M AT U R E P R O D U C T
• P R O V I D E S A VA R I E T Y O F M E S S A G E R O U T I N G C A PA B I L I T I E S
( E X C H A N G E , B I N D I N G A N D Q U E U I N G M O D E L )
• VA R I E T Y O F L A R G E C O M PA N I E S U S E I T A S A M E S S A G E B U S
• E A S Y M I G R AT I O N F R O M E X I S T I N G J M S C O M P L I A N T S Y S T E M S
• AVA I L A B I L I T Y O F C H E F C O O K B O O K
• S U P P O RT S N O T I O N O F R O U T I N G E X C H A N G E S
• R A B B I T M Q A S A S E R V I C E : H T T P : / / W W W. C L O U D A M Q P. C O M /
37. W E A K N E S S E S
• M A X I M U M O U T O F T H E B O X T H R O U G H P U T I S 5 0 K / S E C
( A LT H O U G H I T I S FA I R T O M E N T I O N T H AT L A R G E I N S TA L L AT I O N S ,
U P T O 1 . 3 M L N / S E C E X I S T )
39. • U S E R A B B I T M Q A S A S T R A I G H T R E P L A C E M E N T F O R O U R C U R R E N T
H O R N E T Q I N S TA L L AT I O N
• E A S E O F S E T U P
• S I M P L I C I T Y O F M I G R AT I O N
• S U P P O RT O F R O U T I N G C A PA B I L I T I E S A N D J M S C O M P L I A N C Y
• M E E T S O U R P E R F O R M A N C E R E Q U I R E M E N T S
• G R E AT D O C U M E N TAT I O N A N D C O M M U N I T Y S U P P O RT
• P R O F E S S I O N A L S U P P O RT I S AVA I L A B L E F R O M P I V O TA L
40. • U S E K A F K A F O R L O G P R O C E S S I N G C A S E S T H AT R E Q U I R E N O
G U A R A N T E E S O N D E L I V E RY
• G O O D F O R S T R E A M P R O C E S S I N G
• G O O D F O R M E T R I C S L O A D I N G A N D P R O C E S S I N G
• L O G D E L I V E RY A N D P R O C E S S I N G
• E X C E P T I O N T R A C K I N G
• F R A U D A N A LY S I S
• H O RT O N W O R K S C E RT I F I E D K A F K A D I S T R I B U T I O N I S AVA I L A B L E
41.
42. 1 P / 1 C / 1 K B / Q U E U E
N O N P E R S I S T E N T
1 P / 1 C / 1 K B / Q U E U E
P E R S I S T E N T
sample missing
not an issue
1 P / 1 C / 1 K B / T O P I C
N O N P E R S I S T E N T
hornetq-2.2.5
rabbitmq-2.7.0
3 . 5 . 2
I S
M U C H
FA S T E R
43. hornetq-2.2.5
rabbitmq-2.7.0
3 . 5 . 2
I S
M U C H
FA S T E R
5 P / 5 C / 1 K B / T O P I C
P E R S I S T E N T
5 P / 5 C / 2 5 6 K B / T O P I C
P E R S I S T E N T
44.
45. R E F E R E N C E S
• h t t p : / / w w w. r a b b i t m q . c o m / b l o g / 2 0 1 2 / 0 4 / 2 5 / r a b b i t m q -
p e r f o r m a n c e - m e a s u re m e n t s - p a r t - 2 /
• h t t p : / / h i r a m c h i r i n o . c o m / s t o m p - b e n c h m a r k / e c 2 - c 1 . x l a rg e /
i n d e x . h t m l
• h t t p s : / / e n g i n e e r i n g . l i n k e d i n . c o m / k a f k a / b e n c h m a r k i n g -
a p a c h e - k a f k a - 2 - m i l l i o n - w r i t e s - s e c o n d - t h re e - c h e a p -
m a c h i n e s
• h t t p : / / b l o g . p i v o t a l . i o / p i v o t a l / p ro d u c t s / r a b b i t m q - h i t s - o n e -
m i l l i o n - m e s s a g e s - p e r- s e c o n d - o n - g o o g l e - c o m p u t e - e n g i n e