You are on page 1of 9

Middleware – Message Queues - ZeroMQ

Prof. Osberth De Castro


Ed. Jose Gabriel Maldonado
2do piso
Departamento de Ing. de Sistemas
Basado en: Coulouris, Tanenbaum y Santamaría

https://www.pearson.com/us/higher-education/program/Coulouris-Distributed-Systems-Concepts-and-Design-5th-Edition/PGM85317.html
https://www.distributed-systems.net/index.php/books/ds3/
http://vis.usal.es/rodrigo/teaching/sistemas-distribuidos.html

Ingeniería de
Introducción a Sistemas Distribuidos
Sistemas
Message Queue Middleware
Starling Kafka
•written by Blaine Cook at Twitter •Written at LinkedIn in Scala
•Starling is a Message Queue Server based on MemCached •Used by LinkedIn to offload processing of all page and other views
•written in Ruby •Defaults to using persistence, uses OS disk cache for hot data (has higher throughput then any
of the above having persistence enabled)
•stores jobs in memory (message queue)
•Supports both on-line as off-line processing

Kestrel ZMQ
•written by Robey Pointer •The socket library that acts as a concurrency framework
•Starling clone written in Scala (a port of Starling from Ruby to Scala) •Faster than TCP, for clustered products and supercomputing
•Queues are stored in memory, but logged on disk •Carries messages across inproc, IPC, TCP, and multicast
•Connect N-to-N via fanout, pubsub, pipeline, request-reply
RabbitMQ •Asynch I/O for scalable multicore message-passing apps
•RabbitMQ is a Message Queue Server in Erlang
•stores jobs in memory (message queue) EagleMQ
•EagleMQ is an open source, high-performance and lightweight queue manager.
•Written in C
Apache ActiveMQ
•Stores all data in memory and support persistence.
•ActiveMQ is an open source message broker in Java
•It has its own protocol. Supports work with queues, routes and channels.

Amazon SQS IronMQ


•Amazon Simple Queue Service •Written in Go
•Fully managed queue service
•Available both as cloud version and on-premise
Ingeniería de
Introducción a Sistemas Distribuidos
Sistemas
zeroMQ

https://zguide.zeromq.org/

Ingeniería de
Introducción a Sistemas Distribuidos
Sistemas
ZeroMQ – Sockets con tipos y patrones
Pipeline
Request / Reply Publisher / Subscriber
Push / Pull

Ingeniería de
Introducción a Sistemas Distribuidos
Sistemas
ZeroMQ – Request / Reply Pattern

CLIENT SERVER

Ingeniería de
Introducción a Sistemas Distribuidos
Sistemas
ZeroMQ – Publisher / Subscriber Pattern

Proxy / Broker / Dealer

Ingeniería de
Introducción a Sistemas Distribuidos
Sistemas
ZeroMQ – Publisher / Subscriber Pattern
CLIENT

SERVER

Ingeniería de
Introducción a Sistemas Distribuidos
Sistemas
ZeroMQ – Pipeline
(Push / Pull) Pattern

Ingeniería de
Introducción a Sistemas Distribuidos
Sistemas
ZeroMQ – Pipeline (Push / Pull) Pattern
Job Master (Pusher) Job Worker (Puller/Pusher) Sink (Puller)

Ingeniería de
Introducción a Sistemas Distribuidos
Sistemas

You might also like