technical deep dive jboss amq 7 - red hat€¦ · advanced messaging for the cloud ted ross senior...

35
JBoss AMQ 7 Technical Deep Dive Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017

Upload: others

Post on 20-Aug-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

JBoss AMQ 7Technical Deep Dive

Advanced Messaging for the Cloud

Ted RossSenior Principal Software EngineerMay 4, 2017

Page 2: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Presentation Outline● Overview of AMQ7● Technical Discussion of AMQ 7 Operation● Cloud-Messaging Demonstration

Page 3: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Overview of AMQ7

Page 4: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

AMQ7. GA. Today.

Page 5: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

AMQ7 At A GlanceAMQ Broker

AMQ Interconnect

AMQ Clients

Page 6: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

AMQ7 Broker● High performance general-purpose message broker● Asynchronous core with thread pooling for improved scale and performance● Support for multiple protocols

○ Legacy “Core” protocol○ Legacy “Openwire” protocol○ Standard AMQP○ Standard MQTT○ STOMP

Page 7: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

AMQ7 Interconnect● All new message router for AMQP● Separates message routing from message storage● Integrates clients and brokers in flexible, scalable networks● Provides direct/brokerless message delivery● Provides security● Leverages the extensive capabilities of the AMQP protocol

Page 8: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

AMQ7 Clients● Standard JMS2● Reactive AMQP clients for better integration

○ C/C++○ Python○ Javascript (browser and Node.js)○ .NET

● Legacy clients○ AMQ6 (ActiveMQ5)○ HornetQ○ MRG-M

Page 9: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

A Word about PerformanceBroker Performance

SpecJMS - Transaction rate, Durable message rates, filtering, etc.

Router Performance

Raw latency and throughput

Page 10: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

AMQ7 is Next-Generation Messaging for Enterprise, Cloud, and IoT

Page 11: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Diving Deeper

Page 12: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

AMQP Anatomy

Page 13: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Process

Message ProducerMessagingSystem

Page 14: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Process

Message Producer

on_start(): conn = container.connect(hostname)

MessagingSystem

Page 15: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Process

Message Producer

on_start(): conn = container.connect(hostname) sender = container.create_sender(conn, “Service”)

MessagingSystem

Page 16: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Process

Message Producer

on_start(): conn = container.connect(hostname) sender = container.create_sender(conn, “Service”)on_sendable(event): msg = Message(headers, body) sender.send(msg)

MessagingSystem

Page 17: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Process

Message Producer

on_start(): conn = container.connect(hostname) sender = container.create_sender(conn, “Service”)on_sendable(event): msg = Message(headers, body) sender.send(msg)on_accepted(event): # message delivery confirmed

MessagingSystem

Page 18: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Message ConsumerMessagingSystem

Process

Page 19: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Message Consumer

on_start(): conn = container.connect(hostname)

MessagingSystem

Process

Page 20: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Message Consumer

on_start(): conn = container.connect(hostname) receiver = container.create_receiver(conn, “Service”)

MessagingSystem

Process

Page 21: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Message Consumer

on_start(): conn = container.connect(hostname) receiver = container.create_receiver(conn, “Service”)on_message(event): Process(event.message)

MessagingSystem

Process

Page 22: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Message Consumer

on_start(): conn = container.connect(hostname) receiver = container.create_receiver(conn, “Service”)on_message(event): Process(event.message) container.accept(event.delivery)

MessagingSystem

Process

Page 23: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

AMQP Protocol Features● Full-Duplex and Asynchronous● Message encoding: Body and Headers/Annotations● Settlement and Disposition

○ Settlement: Best Effort; At-Least-Once; Exactly-Once○ Disposition: Accepted, Rejected, Released

● Flow Control○ Message Credit○ Session Frames

● Multiplexing● Addressing

Page 24: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Brokered Messaging

Consumer

Producer

Consumer

Page 25: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Non-Brokered Messaging

Consumer

Producer

Consumer

Page 26: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Scaling Out

BOSR R

B B B

Page 27: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Scaling Out

BOSR R

B B B

ATL

R R

BPHX

R

Page 28: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Scaling Out

BOSR R

B B B

ATL

R R

BPHX

R

AWS us.west

R

Page 29: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Hybrid Cloud Demonstration

Page 30: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

The AMQ Network

RDU Data Center

EnmasseCluster(AMQ in openshift)

ON-PREMRouter

AWS

AWSRouter

Azure

AZURERouter

20

20

Page 31: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

Security ConfigurationON-PREM, AWS, and AZURE routers mutually authenticate using a dedicated x.509 Certificate Authority

Connection roles are explicit. Inter-router connections are separate from normal (client access) connections.

Client access to the cloud routers is not exposed outside the cloud provider.

Page 32: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

The Application

● Service is an internal Enterprise application service● All services are hosted inside the enterprise (in openshift)● Service and SubService.B are also hosted in the public cloud for overflow● SubService.A uses sensitive data and is not deployed outside the enterprise

ServiceSubService.A

SubService.B

Accounting Queue Collector

Page 33: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

The AMQ Network

RDU Data Center

OpenShiftCluster(AMQ in openshift)

ON-PREMRouter

AWSRouter

AZURERouter

20

20

Service

SubService.B

Service

SubService.Bclient-once

Page 34: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical

THANK YOUplus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHatNews

Page 35: Technical Deep Dive JBoss AMQ 7 - Red Hat€¦ · Advanced Messaging for the Cloud Ted Ross Senior Principal Software Engineer May 4, 2017. Presentation Outline Overview of AMQ7 Technical