the current messaging landscape: rabbitmq, zeromq, nsq, kafka

70
Messaging

Upload: all-things-open

Post on 13-Apr-2017

3.875 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

Messaging

Page 2: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

Michael LaingArchitect, Edge Engineering

New York [email protected]

Page 3: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 4: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 5: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

We’ll talk about:• nyt aбrik (my project)⨍• Messaging• Messaging OSS• Use cases

Page 6: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 7: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 8: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 9: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 10: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 11: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 12: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 13: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

A Global Mesh with a Memory

Millions of users

Dozens ofinternal clients

Page 14: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 15: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 16: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

1988:(Harvard)

30,000

Page 17: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 18: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

2020:(Global) 50,000,000,000

Page 19: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

We’ll talk about:• nyt aбrik (my project)⨍• Messaging• Messaging OSS• Use cases

Page 20: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

Messaging:

• What is it?• Why should I care?

Page 21: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

Message

Event

Metric

Header

Body

Page 22: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

Why should I care? Decoupling

Page 23: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

by wmasterj and Fabrice TIERCELIN - Wikipedia

Page 24: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

Why should I care? Decoupling

How does this happen?• Asynchronous interaction

Page 25: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 26: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 27: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

A BMessages

Page 28: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

Instances

Processes

Functions

AsyncScope

Page 29: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 30: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

Time

P C

Idle

Idle

Idle

sync

Page 31: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

async

Time

P C CP

Idle

Idle

Idle

Idle

sync vslatency

Page 32: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

We’ll talk about:• nyt aбrik (my project)⨍• Messaging• Messaging OSS• Use cases

Page 33: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 34: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

Broker

Page 35: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

LAN

Page 36: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

WAN

Page 37: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

: + flexibility

Page 38: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 39: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 40: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

LAN/WAN

DatabaseSemanticsFor access

Page 41: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

:

+ scalability

Page 42: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 43: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

GW GW …GW GW GW …GW

Region A Region B …

Page 44: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

GW

Push Pullsnd rcv

µSvc …

Page 45: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 46: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 47: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

: + IoT

Page 48: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

2020:(Global) 50,000,000,000

Page 49: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

:Written in C

+ IoT

Page 50: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

GW

Push Pullsnd rcv

µSvc …∅mq

Page 51: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

: + very fast∅mq

Page 52: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

GW

Push Pull snd rcv

µSvc …NSQ

Page 53: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

: + fastNSQ

Page 54: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

GW

Push Pullsnd rcv

µSvc …NSQ

What if…

Page 55: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

GW GW …GW GW GW …GW

Region A Region B …

Then:

Page 56: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

… …

Region A Region B …

GW GW GW GW GW GW

Becomes:

Page 57: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 58: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 59: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

: + offsets

Page 60: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 61: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

We’ll talk about:• nyt aбrik (my project)⨍• Messaging• Messaging OSS• Use cases

Page 62: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

: + flexibility

Page 63: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

: + very fast∅mq

Page 64: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

: + fastNSQ

Page 65: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

: + IoT

Page 66: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

: + offsets

Page 67: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 68: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
Page 69: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

Distributed Graphs at Scale with Cassandra and Titan

● Structured Knowledge Representation

● Index-free adjacency: Like memory pointers, but in disk

● Navigation between nodes in constant time.

● Graph != No schema

Page 70: The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka

Michael LaingArchitect, Edge Engineering (soon to include OLAP w Spark Streaming)

New York [email protected]