Enterprise Message Bus - DeveloperMarch · the routerRouter), JMS, reactive APIs, Apache ActiveMQ...
Transcript of Enterprise Message Bus - DeveloperMarch · the routerRouter), JMS, reactive APIs, Apache ActiveMQ...
How to insert a background image
1. Right click on your slide and click Format Background.
2. Click on Fill then Picture or Texture Fill and choose the image from your computer.
3. Click Picture on the Format Background Menu to alter your image.
4. Choose Picture Colour to adjust the Saturation, Tone, and Colour.
5. Choose Picture Correction to adjust the Sharpness, Brightness, and Contrast.
Enterprise Message Bus
How to insert a background image
1. Right click on your slide and click Format Background.
2. Click on Fill then Picture or Texture Fill and choose the image from your computer.
3. Click Picture on the Format Background Menu to alter your image.
4. Choose Picture Colour to adjust the Saturation, Tone, and Colour.
5. Choose Picture Correction to adjust the Sharpness, Brightness, and Contrast.
Michael André Pearce Enterprise Systems Architecture
• Messaging
• Distributed Grids
• Real time Big Data
• Open Source Evangelist
• Apache ActiveMQ – Committer
• Registry (Hortonworks) - Committer
• Apache Kafka – Contributor
Enterprise Message Bus 2
How to insert a table
2. Click on your table, and on the Table Tools tab in the ribbon, click on the Design tab.
4. The top two are Custom Styles that have been designed specifically to match your template.
3. In the Table Styles section, click on the drop down arrow to open the full selection of Table Styles.
5. You can also use tools on the Layout tab to evenly distribute your rows and columns.
1. Click on the icon in the middle of the placeholder and choose the amount of rows and columns you need.
Enterprise Message Bus 3
How to insert an image with a filter
1. Click on the icon in the middle of the placeholder and choose the image from your computer.
2. Click on the Format Picture tab in the ribbon and use the tools to edit the image.
3. Choose Crop to resize and move the image within the placeholder, using the white circles in the corners of the image.
4. Choose Picture Colour to adjust the Saturation, Tone, and Colour.
5. Choose Picture Correction to adjust the Sharpness, Brightness, and Contrast.
6. Once you are happy with your image, right click on it and select ‘Send to back’.
Enterprise Message Bus 4
Platforms
labs.ig.com REST trading and streaming APIs
Goal
Solution
Apache ActiveMQ Artemis
Apache Kafka
1.
2.
4.
Enterprise Message Bus 5
Enterprise Message Bus
3.
How to insert a background image
1. Right click on your slide and click Format Background.
2. Click on Fill then Picture or Texture Fill and choose the image from your computer.
3. Click Picture on the Format Background Menu to alter your image.
4. Choose Picture Colour to adjust the Saturation, Tone, and Colour.
5. Choose Picture Correction to adjust the Sharpness, Brightness, and Contrast.
With modern Technology data has become a commodity more than ever before.
The biggest hurdle for any organisation is how to get the data you already have to somewhere where you can start to build value from that data.
Enterprise Message Bus 6
How to insert a background image
1. Right click on your slide and click Format Background.
2. Click on Fill then Picture or Texture Fill and choose the image from your computer.
3. Click Picture on the Format Background Menu to alter your image.
4. Choose Picture Colour to adjust the Saturation, Tone, and Colour.
5. Choose Picture Correction to adjust the Sharpness, Brightness, and Contrast.
An unified platform flowing
transactional Messages into
process-able Streams into
Long lived query-able data
Enterprise Message Bus 7
Goal
How to insert a table
2. Click on your table, and on the Table Tools tab in the ribbon, click on the Design tab.
4. The top two are Custom Styles that have been designed specifically to match your template.
3. In the Table Styles section, click on the drop down arrow to open the full selection of Table Styles.
5. You can also use tools on the Layout tab to evenly distribute your rows and columns.
1. Click on the icon in the middle of the placeholder and choose the amount of rows and columns you need. Solution
Enterprise Message Bus 8
One single technology alone is insufficient
But lots of building blocks exist
Need to compose them simply and efficiently
Enterprise Message Bus 9
Data Messaging
RedHat AMQ-7
Apache ActiveMQ Artemis
Data Streaming
Apache Kafka
Data Lake
Amazon S3
Data Schema
Hortonworks Schema Registry
Building Blocks
Enterprise Message Bus 10
Building Blocks
Kafka:Data
Streaming
Amazon S3:Data Lake
Spark
Elastic Map Reduce
Relational DWH
Amazon Redshift
AmazonAthena
A-MQ:Data
Messaging
Apps:JMS
Apps:AMQP
Stream Processing
Search
Metrics
Realtime Analytics
Apps:Kafka Client
RDBMS NoSQLMachine Learning
Apps:STOMP
In-Memory:Share
Nothing
In-Memory:Data Grid
Offline Batch DataNear Realtime DataSynchronous Req/RespLow Latency
> 1 Hour> 100 millisecond> 1 millisecond<1 millisecond
Micro Batching
> 1 second
How to insert a background image
1. Right click on your slide and click Format Background.
2. Click on Fill then Picture or Texture Fill and choose the image from your computer.
3. Click Picture on the Format Background Menu to alter your image.
4. Choose Picture Colour to adjust the Saturation, Tone, and Colour.
5. Choose Picture Correction to adjust the Sharpness, Brightness, and Contrast.
Enterprise Message Bus 12
Data Messaging
How to insert a table
2. Click on your table, and on the Table Tools tab in the ribbon, click on the Design tab.
4. The top two are Custom Styles that have been designed specifically to match your template.
3. In the Table Styles section, click on the drop down arrow to open the full selection of Table Styles.
5. You can also use tools on the Layout tab to evenly distribute your rows and columns.
1. Click on the icon in the middle of the placeholder and choose the amount of rows and columns you need. Red Hat AMQ
Enterprise Message Bus 13
Apache Qpid Hawtio
Real-time web console for interacting with the broker and real-time inspection of
the router
Apache ActiveMQ Artemis
AMQP wire protocol implementation,
Interconnect (Dispatch Router), JMS, reactive APIs, multiple language clients
Async core, fast persistence, high availability, scalability, JMS, AMQP support, MQTT
support
Power of Open Source
How to insert a table
2. Click on your table, and on the Table Tools tab in the ribbon, click on the Design tab.
4. The top two are Custom Styles that have been designed specifically to match your template.
3. In the Table Styles section, click on the drop down arrow to open the full selection of Table Styles.
5. You can also use tools on the Layout tab to evenly distribute your rows and columns.
1. Click on the icon in the middle of the placeholder and choose the amount of rows and columns you need. Corrupted Journal – Shared Filesystem
Enterprise Message Bus 14
MASTER SLAVE
SHARED FILESYSTEM
Corrupted Journal
MASTER SLAVE
SHARED FILESYSTEM
Corrupted Journal
MASTER SLAVE
SHARED FILESYSTEM
Journal
How to insert a table
2. Click on your table, and on the Table Tools tab in the ribbon, click on the Design tab.
4. The top two are Custom Styles that have been designed specifically to match your template.
3. In the Table Styles section, click on the drop down arrow to open the full selection of Table Styles.
5. You can also use tools on the Layout tab to evenly distribute your rows and columns.
1. Click on the icon in the middle of the placeholder and choose the amount of rows and columns you need. Corrupted Journal - Replication
Enterprise Message Bus 15
MASTER SLAVE
LOCAL FILESYSTEM LOCAL FILESYSTEM
Replicate
JournalJournal MASTER SLAVE
LOCAL FILESYSTEM LOCAL FILESYSTEM
Replicate
JournalCorrupted Journal
Apache ActiveMQ Artemis
Apache Kafka
How to insert a table
2. Click on your table, and on the Table Tools tab in the ribbon, click on the Design tab.
4. The top two are Custom Styles that have been designed specifically to match your template.
3. In the Table Styles section, click on the drop down arrow to open the full selection of Table Styles.
5. You can also use tools on the Layout tab to evenly distribute your rows and columns.
1. Click on the icon in the middle of the placeholder and choose the amount of rows and columns you need. Event Data Publishing with Queues
Enterprise Message Bus 16
PRODUCING
APPLICATION
BROKER
Queue 1 Queue 2
CONSUMER
APPLICATION
Queue 3
CONSUMER
APPLICATION
CONSUMER
APPLICATION
BROKER
Queue 2 Queue 3
CONSUMER
APPLICATION
CONSUMER
APPLICATION
FAN OUT
SERVICE
Queue 4
CONSUMER
APPLICATION
PRODUCING
APPLICATION
BROKER
Queue 1
How to insert a table
2. Click on your table, and on the Table Tools tab in the ribbon, click on the Design tab.
4. The top two are Custom Styles that have been designed specifically to match your template.
3. In the Table Styles section, click on the drop down arrow to open the full selection of Table Styles.
5. You can also use tools on the Layout tab to evenly distribute your rows and columns.
1. Click on the icon in the middle of the placeholder and choose the amount of rows and columns you need. Event Data Publishing with Topics
Enterprise Message Bus 17
BROKER
Topic 1
CONSUMER
APPLICATION
CONSUMER
APPLICATION
CONSUMER
APPLICATION
PRODUCING
APPLICATION
Apache ActiveMQ Artemis
Apache Kafka
How to insert a background image
1. Right click on your slide and click Format Background.
2. Click on Fill then Picture or Texture Fill and choose the image from your computer.
3. Click Picture on the Format Background Menu to alter your image.
4. Choose Picture Colour to adjust the Saturation, Tone, and Colour.
5. Choose Picture Correction to adjust the Sharpness, Brightness, and Contrast.
Why not Apache Kafka?
Enterprise Message Bus 18
JMS 2.0 Supported
Transactions Supported
Single Message Processing
AMQP Standardized Protocol
Real-time <10 milliseconds
Disk persistence
Admin Management Console
1.
2.
3.
4.
5.
6.
7.
Enterprise Message Bus 19
Transaction Processing Requirements
How to insert a table
2. Click on your table, and on the Table Tools tab in the ribbon, click on the Design tab.
4. The top two are Custom Styles that have been designed specifically to match your template.
3. In the Table Styles section, click on the drop down arrow to open the full selection of Table Styles.
5. You can also use tools on the Layout tab to evenly distribute your rows and columns.
1. Click on the icon in the middle of the placeholder and choose the amount of rows and columns you need. Apache ActiveMQ Artemis
Enterprise Message Bus 20
• Pure Java, high-performance message broker
• Multi-protocol: AMQP 1.0, MQTT, STOMP, OpenWire, Artemis Core
• Polyglot: Java JMS 2.0, C++, .NET, Python, JavaScript (inc. Node.js)
• Flexible persistence: high performance journal or JDBC
• Support for large messages
• Flexible clustering
• High availability • shared nothing replication or shared SAN
• Open Source Community - Apache Foundation Project
Features
How to insert a table
2. Click on your table, and on the Table Tools tab in the ribbon, click on the Design tab.
4. The top two are Custom Styles that have been designed specifically to match your template.
3. In the Table Styles section, click on the drop down arrow to open the full selection of Table Styles.
5. You can also use tools on the Layout tab to evenly distribute your rows and columns.
1. Click on the icon in the middle of the placeholder and choose the amount of rows and columns you need. Apache ActiveMQ Artemis
Enterprise Message Bus 21
• Fully asynchronous (non-blocking) internal architecture • Developed using reactive patterns • Netty IO
• Thread pooling
• Predictable thread usage (not 1 thread per client/queue/*) • Configurable thread pools
• High performance journal
• Custom implementation using Linux asynchronous I/O (JNI to libaio) • Automatically switches to Java NIO implementation when not on Linux • Compaction
Internal Architecture
How to insert a table
2. Click on your table, and on the Table Tools tab in the ribbon, click on the Design tab.
4. The top two are Custom Styles that have been designed specifically to match your template.
3. In the Table Styles section, click on the drop down arrow to open the full selection of Table Styles.
5. You can also use tools on the Layout tab to evenly distribute your rows and columns.
1. Click on the icon in the middle of the placeholder and choose the amount of rows and columns you need. Apache ActiveMQ Artemis
Enterprise Message Bus 22
Produce Durability
PRODUCER
MASTERsend “persistent”
acknowledge
producer
thread blocks
Application
Memory
OS PageFile Cache
Disk
Drive Controller
Cache
Disk Cache
Non Volatile
Medium / Platter
SLAVE
replicate
FSync
producer
thread continues
How to insert a table
2. Click on your table, and on the Table Tools tab in the ribbon, click on the Design tab.
4. The top two are Custom Styles that have been designed specifically to match your template.
3. In the Table Styles section, click on the drop down arrow to open the full selection of Table Styles.
5. You can also use tools on the Layout tab to evenly distribute your rows and columns.
1. Click on the icon in the middle of the placeholder and choose the amount of rows and columns you need. Apache Kafka
Enterprise Message Bus 23
Produce Durability PRODUCER
LEADERsend
async acknowledge
Application
Memory
OS PageFile Cache
Disk
Drive Controller
Cache
Disk Cache
Non Volatile
Medium / Platter
FOLLOWER
replicate
continues
FOLLOWER
replicate
Write back based on OS Algosend
batch transmit
Clie
nt
Mem
ory
Bu
ffer
How to insert a table
2. Click on your table, and on the Table Tools tab in the ribbon, click on the Design tab.
4. The top two are Custom Styles that have been designed specifically to match your template.
3. In the Table Styles section, click on the drop down arrow to open the full selection of Table Styles.
5. You can also use tools on the Layout tab to evenly distribute your rows and columns.
1. Click on the icon in the middle of the placeholder and choose the amount of rows and columns you need. Apache ActiveMQ Artemis
Enterprise Message Bus 24
Core Address Model
Type
• Anycast
• Multicast
Features
• Paging
• Direct routing
• Divert
CONSUMER
PRODUCER
BROKER
ADDRESSES
QUEUES
BINDINGS
ANYCAST MULTICAST
Queue 1 Q3 Q4Q2 Q5
How to insert a table
2. Click on your table, and on the Table Tools tab in the ribbon, click on the Design tab.
4. The top two are Custom Styles that have been designed specifically to match your template.
3. In the Table Styles section, click on the drop down arrow to open the full selection of Table Styles.
5. You can also use tools on the Layout tab to evenly distribute your rows and columns.
1. Click on the icon in the middle of the placeholder and choose the amount of rows and columns you need. Apache ActiveMQ Artemis
Enterprise Message Bus 25
Core Queues
CONSUMERS
PRODUCER
BROKER
ADDRESSES
QUEUES
BINDINGS
MULTICAST
Queue 1 Q2 Q3
Dispatch
• Round Robin (Default)
• Exclusive
• Message Groups
Features
• Durable or Non Durable
• Filter / Selectors
• Last Value
How to insert a table
2. Click on your table, and on the Table Tools tab in the ribbon, click on the Design tab.
4. The top two are Custom Styles that have been designed specifically to match your template.
3. In the Table Styles section, click on the drop down arrow to open the full selection of Table Styles.
5. You can also use tools on the Layout tab to evenly distribute your rows and columns.
1. Click on the icon in the middle of the placeholder and choose the amount of rows and columns you need. Apache ActiveMQ Artemis
Enterprise Message Bus 26
JMS Queue
BROKER
ADDRESSES
foo_bartype: anycast
CONSUMER
address=foo_bar
CONSUMER
address=foo_bar
12
34
PRODUCER
address=foo_bar
7
QUEUES
Queue1 6 5
How to insert a table
2. Click on your table, and on the Table Tools tab in the ribbon, click on the Design tab.
4. The top two are Custom Styles that have been designed specifically to match your template.
3. In the Table Styles section, click on the drop down arrow to open the full selection of Table Styles.
5. You can also use tools on the Layout tab to evenly distribute your rows and columns.
1. Click on the icon in the middle of the placeholder and choose the amount of rows and columns you need. Apache ActiveMQ Artemis
Enterprise Message Bus 27
JMS Topic - Shared Durable Subscriber
BROKER
QUEUESADDRESSES
foo_bartype: multicast
CONSUMERaddress=foo_bar, clientId=null
shared=true, durable=true
subscription=queue1
CONSUMERaddress=foo_bar, clientId=null
shared=true, durable=true
subscription=queue1
12
34PRODUCER
address=foo_bar
7CONSUMER
address=foo_bar, clientId=null
shared=true, durable=true
subscription=queue2
CONSUMERaddress=foo_bar, clientId=null
shared=true, durable=true
subscription=queue2
12
34
QUEUES
Queue2 6 5
Queue1 6 5
How to insert an image with a filter
1. Click on the icon in the middle of the placeholder and choose the image from your computer.
2. Click on the Format Picture tab in the ribbon and use the tools to edit the image.
3. Choose Crop to resize and move the image within the placeholder, using the white circles in the corners of the image.
4. Choose Picture Colour to adjust the Saturation, Tone, and Colour.
5. Choose Picture Correction to adjust the Sharpness, Brightness, and Contrast.
6. Once you are happy with your image, right click on it and select ‘Send to back’.
Latency – AMQ-7 Apache Artemis
• Core Trading Day
• Persistent with File Sync to Disk
• Replicated HA
• Standard Servers
• 2 x 6 Core Intel Xeon
• 4 x 32Gb Ram
• Dedicated SSDs for Journal and Paging
Enterprise Message Bus 28
Enterprise Message Bus 29
Softwaremill Blog https://softwaremill.com/mqperf/
How to insert a table
2. Click on your table, and on the Table Tools tab in the ribbon, click on the Design tab.
4. The top two are Custom Styles that have been designed specifically to match your template.
3. In the Table Styles section, click on the drop down arrow to open the full selection of Table Styles.
5. You can also use tools on the Layout tab to evenly distribute your rows and columns.
1. Click on the icon in the middle of the placeholder and choose the amount of rows and columns you need. Use Apache ActiveMQ Artemis for
Enterprise Message Bus 30
• individual message processing • messages guaranteed to disk / non-volatile storage • clients to use standard APIs (e.g. JMS) • clients to use standardised wire protocols (e.g. AMQP, MQTT, STOMP) • transactional sends and receives • request-reply messaging • selectors and filters • Advanced messaging features
• time-To-Live semantics (TTL) • scheduled delivery • Dead Letter Queue semantics (DLQ) • Etc.
• don’t want to implement broker functionality in your clients • e.g. partitioning, dispatching, coordination
How to insert a table
2. Click on your table, and on the Table Tools tab in the ribbon, click on the Design tab.
4. The top two are Custom Styles that have been designed specifically to match your template.
3. In the Table Styles section, click on the drop down arrow to open the full selection of Table Styles.
5. You can also use tools on the Layout tab to evenly distribute your rows and columns.
1. Click on the icon in the middle of the placeholder and choose the amount of rows and columns you need. Use Apache Kafka for
Enterprise Message Bus 31
• messages in volume • raw throughput • batching (micro) • sliding-window replay abilities • simple K,V store (compacted topics) • large numbers of subscribers for published events • finely control the parallelism/scalability of consumers
Enterprise Message Bus 32
Traditional JMS Brokers for instance ActiveMQ 5.x (Classic)
are the SQL of the messaging world
Brokers like Kafka, Pulsar
are the NoSQL of the messaging world
Next gen JMS Brokers such as ActiveMQ Artemis
are the NewSQL of the messaging world.
Where do I think things are going?
Enterprise Message Bus 33
Apache Kafka and Apache ActiveMQ Artemis
are different brokers with different tradeoffs for different use cases.
There is no silver bullet.
You should co-exist different brokers in your architecture.
Data in transit is just as important as it is at rest,
standardise, schema, secure and govern it.
Final Thoughts
Enterprise Message Bus 34
@itsourcery github.com/michaelandrepearce @LifeatIG iggroup.com/careers
Thank You