Sobre a biblioteca ZeroMQ (0MQ)

291 views
Skip to first unread message

Ricardo

unread,
Jul 9, 2014, 3:09:22 PM7/9/14
to ccppb...@googlegroups.com
Oi pessoal!

Estive pesquisando um pouco sobre filas e servidores de fila e encontrei
a biblioteca ZeroMQ parece muito boa, alguém conhece esta biblioteca ou
já trabalhou com ela e poderia por favor fazer algum comentário?

Quais as vantagens e desvantagens?
Ela é estável, posso usar em projetos críticos?

Desde já agradeço a atenção de todos.

Um abraço,

Ricardo

Francisco Lopes

unread,
Jul 9, 2014, 3:12:42 PM7/9/14
to ccppb...@googlegroups.com
Nunca usei pessoalmente, já ouvi falar bastante, mas acredito que é recomendável dar uma olhada
em usar uma nova implementação reescrita pelo próprio autor original. Acredito que o ZeroMQ ainda
resguarda a fama no geral, mas ele vem implementando isto há algum tempo:

http://nanomsg.org/documentation-zeromq.html
> --
> Antes de enviar um e-mail para o grupo leia: http://www.ccppbrasil.org/wiki/Lista:AntesdePerguntar
> --~--~---------~--~----~---------------------------------~----------~--~----~
> [&] C & C++ Brasil - http://www.ccppbrasil.org/
> Para sair dessa lista, envie um e-mail para ccppbrasil-...@googlegroups.com
> Para mais opções, visite http://groups.google.com/group/ccppbrasil
> --~--~---------~--~----~--~-~--~---~----~-----------------~--~----------~
> Emprego & carreira: vag...@ccppbrasil.org
> http://groups.google.com/group/dev-guys?hl=en
>

Rogerio Machado

unread,
Jul 9, 2014, 7:09:06 PM7/9/14
to ccppb...@googlegroups.com
A unica aplicacao opensource que conheco e que usa ZeroMQ eh o IPYTHON.  O IPYTHON eh usado pela comunidade cientifica e parece que a Microsoft contribuiu com US$100k segundo a pagina do projeto em http://ipython.org/. Eh um case interessante para avaliar seu recursos

Jardel Weyrich

unread,
Jul 9, 2014, 10:58:22 PM7/9/14
to ccppb...@googlegroups.com
Vantagens e desvantangens em comparação ao que?

Utilizei ZeroMQ para trabalhar com pub-sub, mas atualmente utilizo os mecanismos de pub-sub do próprio Redis [1].
Também estou utlizando o SQS da Amazon [2] para agendar tasks recorrentes em um sistema distribuído. É bem bacana :-)

E o Terra recentemente publicou um relato [3] sobre a migração de sua plataforma de vídeos para MongoDB, utilizando RabbitMQ (concorrente do ZeroMQ) para sinalizar as modificações no banco relacional e fazer o sync.

[1]. Redis - http://redis.io/
[2]. Amazon SQS - http://aws.amazon.com/sqs/

- jw

Rodrigo Delduca

unread,
Jul 10, 2014, 11:15:36 AM7/10/14
to ccppb...@googlegroups.com
Francisco,
Poxa, bem legal esse nanomsg, obrigado pela dica! :)



--
http://www.nullonerror.org/
-- flipping bits whilst updating pixels

"The world is full of fascinating problems waiting to be solved" --
Eric S.Raymond
-... .-.. --- --- -.. --- ..-. .-.. .. --- -. ... .-. ..- ... .... ..
-. --. - .... .-. ..- -- -.-- ...- . .. -. ...
"Scientists study the world as it is; engineers create the world that
has never been" -- Theodore von Kármán
.--. ..- -- .--. .. -. --. - .... . -.-. --- .-.. -.. -. . ... ... ---
..-. -- -.-- .... . .- .-. -
"Security is an illusion. Paranoia is our profession" -- Strategic Air command
.... . .-. . .. -.-. --- -- . .- - - .... . ... .--. . . -.. --- .- --
..- .-. -.. . .-. . .-. ... --- ..- -. -..
"They say hackers die twice, once when they pass, and then again when
the last of their code is rewritten by some asshole using JavaScript"
-- Anonymous
-... .-.. --- --- -.. --- ..-. .-.. .. --- -. ... .-. ..- ... .... ..
-. --. - .... .-. ..- -- -.-- ...- . .. -. ...
"He who hasn't hacked assembly language as a youth has no heart. He
who does as an adult has no brain" -- John Moore

Rodrigo Madera

unread,
Jul 10, 2014, 12:13:13 PM7/10/14
to ccppb...@googlegroups.com
Olá Ricardo,

Pelos teus últimos posts aqui na lista posso deduzir que você procura infra pra montar algum tipo de servidor usando C++. Ficaria mais fácil se puder ser mais explícito nas características dele, como a comunicação que ele fará, em qual protocolo, em quais Sistemas Operacionais, quantos clientes espera, etc. Assim, ficaria bem mais fácil.

ZeroMQ é fenomenal, e o seu derivado nano também. Feito por pessoas que estão (literalmente) carecas de tanto fazer o que você está planejando fazer neste momento.

Sobre o ZeroMQ, ele é ótimo, mas tem seu protocolo próprio. Especialmente a serialização dele. Pode usar ele com msgpack, protobuf e similares, sem problema. Cuidado que o Boost.Serialization está bem longe de competir com msgpack ou protobuf, pois são propostas que na prática sofrem.

Multithreaded é algo que precisa de um mindset. Posso resumir pra você que basta você não compartilhar estado. Apenas. Claro que haverão situações em que será inevitavel, mas faz um esforço pra deixar isso onde deve: no SO e no baixo nível. É uma simplificação romântica, mas é a base.

Você faz perguntas que mostram que você vem do mundo Java, correto?

Bom, elabora pra gente poder te guiar. A arte de fazer servidores é uma deliciosa, e tem algumas pessoas que fazem (Strauss, Caloni, et al) e faziam (eu) for a living.

Bons estudos,
Madera

--
Antes de enviar um e-mail para o grupo leia:                     http://www.ccppbrasil.org/wiki/Lista:AntesdePerguntar
--~--~---------~--~----~---------------------------------~----------~--~----~
[&] C & C++ Brasil - http://www.ccppbrasil.org/
Para sair dessa lista, envie um e-mail para ccppbrasil-unsubscribe@googlegroups.com

Wesley Mesquita

unread,
Jul 10, 2014, 6:49:31 PM7/10/14
to ccppb...@googlegroups.com


2014-07-09 16:09 GMT-03:00 Ricardo <ari...@sardano.net>:
--
Antes de enviar um e-mail para o grupo leia:                     http://www.ccppbrasil.org/wiki/Lista:AntesdePerguntar
--~--~---------~--~----~---------------------------------~----------~--~----~
[&] C & C++ Brasil - http://www.ccppbrasil.org/
Para sair dessa lista, envie um e-mail para ccppbrasil-unsubscribe@googlegroups.com
Para mais opções, visite http://groups.google.com/group/ccppbrasil
--~--~---------~--~----~--~-~--~---~----~-----------------~--~----------~
Emprego & carreira:  vag...@ccppbrasil.org
http://groups.google.com/group/dev-guys?hl=en




--
Wesley Mesquita
Computer Engineer
http://www.wesleymesquita.com

Felipe Cruz

unread,
Aug 12, 2014, 1:18:31 AM8/12/14
to ccppb...@googlegroups.com
Olá a todos!
Existem diversos projetos abertos que usam zeromq além do Ipython.. Fechados também, inclusive aqui no Brasil, já vi em mercado financeiro, tracking de veículos e outros projetos que precisam escalar suas arquiteturas. Com relação a uso, acho que ta bem consolidado :)

A grande sacada é que ele, apesar do nome, não pode ser comparado com o RabbitMQ por exemplo.. O zeromq é uma lib para construção de sistemas distribuídos e não um servidor de filas. 

Você pode construir um servidor de filas com o zeromq e chegar em algo parecido com o RabbitMQ, mas teria que desenvolver um bocado de código.

Ou seja, se o teu caso de uso pede um Broker, talvez o zeromq não seja o que você procura. Se você necessita conectar diversos componentes ou processos, com patterns diferentes de troca de informação, em ambientes de múltiplas linguagens, talvez ele seja recomendado.

Quando ao nanomsg, excelente projeto.. porém, nesse caso ainda não conheço cases em produção.. De qualquer forma acredito que seja uma evolução, que simplificou algumas coisas como a eliminação dos contextos explícitos.

Enfim.. como já disseram, se você explicar melhor o que precisa talvez o pessoal possa ajudar mais.

Abs








Quinta-feira, 10 de Julho de 2014 19:49:31 UTC-3, Wesley Mesquita escreveu:
2014-07-09 16:09 GMT-03:00 Ricardo <ari...@sardano.net>:
Oi pessoal!

Estive pesquisando um pouco sobre filas e servidores de fila e encontrei a biblioteca ZeroMQ parece muito boa, alguém conhece esta biblioteca ou já trabalhou com ela e poderia por favor fazer algum comentário?

Quais as vantagens e desvantagens?
Ela é estável, posso usar em projetos críticos?

Desde já agradeço a atenção de todos.

Um abraço,

Ricardo


--
Antes de enviar um e-mail para o grupo leia:                     http://www.ccppbrasil.org/wiki/Lista:AntesdePerguntar
--~--~---------~--~----~---------------------------------~----------~--~----~
[&] C & C++ Brasil - http://www.ccppbrasil.org/
Para sair dessa lista, envie um e-mail para ccppbrasil-...@googlegroups.com

Para mais opções, visite http://groups.google.com/group/ccppbrasil
--~--~---------~--~----~--~-~--~---~----~-----------------~--~----------~
Emprego & carreira:  vag...@ccppbrasil.org
http://groups.google.com/group/dev-guys?hl=en

Reply all
Reply to author
Forward
0 new messages