![Page 1: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/1.jpg)
ComponentiZeroMQ
RedisConclusioni
ZeroMQ e Redis:soluzioni Open Source per l’integrazione di
Componenti
Matteo Fortini
LinuxDayFerrara, 27 Ottobre 2012
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 2: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/2.jpg)
ComponentiZeroMQ
RedisConclusioni
Componenti
Riutilizzabili
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 3: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/3.jpg)
ComponentiZeroMQ
RedisConclusioni
Componenti
Testabili Singolarmente
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 4: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/4.jpg)
ComponentiZeroMQ
RedisConclusioni
Componenti
Scritti in diversi linguaggi
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 5: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/5.jpg)
ComponentiZeroMQ
RedisConclusioni
Componenti
Cross-platform
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 6: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/6.jpg)
ComponentiZeroMQ
RedisConclusioni
Componenti
Modulari
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 7: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/7.jpg)
ComponentiZeroMQ
RedisConclusioni
Componenti
Distribuibili
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 8: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/8.jpg)
ComponentiZeroMQ
RedisConclusioni
Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti
The Intelligent Transport Layer
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 9: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/9.jpg)
ComponentiZeroMQ
RedisConclusioni
Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti
Come iniziano i progetti?
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 10: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/10.jpg)
ComponentiZeroMQ
RedisConclusioni
Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti
Come finiscono?
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 11: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/11.jpg)
ComponentiZeroMQ
RedisConclusioni
Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti
Vantaggi di ZeroMQ• Serverless• Orientata ai messaggi• Cross platform• Cross linguaggio
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 12: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/12.jpg)
ComponentiZeroMQ
RedisConclusioni
Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti
Trasparente• inproc:// → memoria, thread• ipc:// → UNIX R© sockets, processi• tcp:// → rete
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 13: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/13.jpg)
ComponentiZeroMQ
RedisConclusioni
Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti
Pattern
[ti costringe a pensare alle interazioni]
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 14: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/14.jpg)
ComponentiZeroMQ
RedisConclusioni
Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti
REQ/REP
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 15: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/15.jpg)
ComponentiZeroMQ
RedisConclusioni
Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti
PIPE
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 16: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/16.jpg)
ComponentiZeroMQ
RedisConclusioni
Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti
PUB/SUB
[anche multimaster → (e)pgm://]Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 17: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/17.jpg)
ComponentiZeroMQ
RedisConclusioni
Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti
Devices• Forwarder → PUB/SUB• Streamer → PIPE• Broker → REQ/REP
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 18: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/18.jpg)
ComponentiZeroMQ
RedisConclusioni
Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti
Difetti• Robustezza sulla rete• Uso di thread• assert()• Performance• Fork: http://crossroads.io
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 19: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/19.jpg)
ComponentiZeroMQ
RedisConclusioni
Il problema dello statoRedisNon solo Key-ValueFunzioni avanzateDistribuitoDifetti
Redis is an open source, advancedkey-value store.It is often referred to as a data structureserver since keys can contain strings, hashes,lists, sets and sorted sets.
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 20: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/20.jpg)
ComponentiZeroMQ
RedisConclusioni
Il problema dello statoRedisNon solo Key-ValueFunzioni avanzateDistribuitoDifetti
Il problema dello stato
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 21: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/21.jpg)
ComponentiZeroMQ
RedisConclusioni
Il problema dello statoRedisNon solo Key-ValueFunzioni avanzateDistribuitoDifetti
Cos’è Redis• NoSQL• Key-Value• Piccolo• Efficiente• In-memory• Cross platform (server/clients)• Cross linguaggio (clients)
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 22: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/22.jpg)
ComponentiZeroMQ
RedisConclusioni
Il problema dello statoRedisNon solo Key-ValueFunzioni avanzateDistribuitoDifetti
Non solo Key-Value• HASH• LIST• SET/ORDERED SET• BITSET
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 23: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/23.jpg)
ComponentiZeroMQ
RedisConclusioni
Il problema dello statoRedisNon solo Key-ValueFunzioni avanzateDistribuitoDifetti
Funzioni avanzate• Transazioni• INC/DEC atomici• PUB/SUB• EXPIRE• MONITOR• Lua scripting
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 24: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/24.jpg)
ComponentiZeroMQ
RedisConclusioni
Il problema dello statoRedisNon solo Key-ValueFunzioni avanzateDistribuitoDifetti
Distribuito• Master/Slave• Sentinel
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 25: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/25.jpg)
ComponentiZeroMQ
RedisConclusioni
Il problema dello statoRedisNon solo Key-ValueFunzioni avanzateDistribuitoDifetti
Difetti• Limitato dalla RAM
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 26: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/26.jpg)
ComponentiZeroMQ
RedisConclusioni
[Piccola demo...]
Grazie!
Domande?
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti
![Page 27: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti](https://reader035.vdocuments.pub/reader035/viewer/2022062405/555822e4d8b42a25588b4c69/html5/thumbnails/27.jpg)
ComponentiZeroMQ
RedisConclusioni
Acknowledgements
• Clones Army image by Fred Dunnhttps://secure.flickr.com/photos/gratapictures/
• Dandelion image by undergroundbastardhttps://secure.flickr.com/photos/undergroundbastard/
• Pattern image by Akbar Simhttps://secure.flickr.com/photos/akbar2/
• Gears image by freefotoukhttps://secure.flickr.com/photos/freefoto/
• Pipes image by Domirielhttps://secure.flickr.com/photos/domiriel/
• Antenna image by Janne Aaltonenhttps://secure.flickr.com/photos/janneaaltonen/
• Map pin image by joebuzzicahttps://secure.flickr.com/photos/63352809@N02/
Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti