Principais Alternativas de ZeroMQ Mais Bem Avaliadas

Leve e melhor para sistemas de alta taxa de transferência e baixa latência Análise coletada por e hospedada no G2.com.
Não é muito fácil de implementar, pois é necessário escrever muito código para lidar com sockets e assim por diante. Análise coletada por e hospedada no G2.com.
21 de 22 Avaliações Totais para ZeroMQ
Sentimento Geral da Revisão para ZeroMQ
Entre para ver o sentimento das avaliações.

Você pode realmente projetar o padrão que melhor se adapta às suas necessidades. Quer você precise de PUB-SUB ou de um broker, você pode construir ferramentas adaptadas às suas necessidades, sabendo que sempre poderá modificar e adicionar novos recursos conforme desejado.
Disponível para um grande número de linguagens de programação.
A documentação é extensa e exemplos são fornecidos para as várias linguagens.
O mecanismo CURVE garante autenticação segura e confidencialidade, tornando o ZeroMQ uma boa escolha também para IoT ou outras aplicações que requerem comunicação pela internet.
A comunidade é grande e ativa. Análise coletada por e hospedada no G2.com.
Projetar suas próprias ferramentas pode ser complicado, e se alguém está procurando resolver um problema muito comum, escolher uma ferramenta para resolver a tarefa específica pode ser a melhor escolha. Análise coletada por e hospedada no G2.com.

O que eu mais gostei no ZeroMQ é que é muito fácil de usar. Tivemos no mesmo projeto duas implementações de fila: ZeroMQ e Kafka. Kafka era para instalações com carga pesada e ZeroMQ para o restante. E o ZeroMQ tinha apenas uma classe de configuração que criava um bean ZSocket, e era isso. Agora você apenas usa "zmqPublisher.send" para enviar sua mensagem para a fila. Para comparação, o Kafka tinha 15 classes e interfaces para configurar um publicador. O mesmo com o assinante. Análise coletada por e hospedada no G2.com.
ZeroMQ tem um limite para mensagens. Uma vez atingido o limite, ele não aceita novas mensagens. E também não suporta tópicos. Então, se você estiver usando vários tipos de dispositivos, precisa codificar o tipo deles dentro da mensagem. Análise coletada por e hospedada no G2.com.

Gosto do conceito do ZMQ de ser "lego" de vários tipos de soquete, que podem ser conectados entre si, por exemplo, Publisher - Subscriber, Router - Dealer, Request - Reply, etc. Por exemplo, quando precisei fornecer registro distribuído na minha aplicação, apenas usei os tipos de soquete Publisher - Subscriber, então múltiplos publishers enviaram seus logs para um subscriber que os armazenou. E o modelo Router - Dealer é ótimo para enviar mensagens para clientes específicos e obter resposta deles quando o trabalho é concluído. O ZMQ permite o compartilhamento de soquetes para threads e processos também, o que proporciona a capacidade de construir uma aplicação multithread ou multiprocesso. Além disso, a API do ZMQ está disponível para qualquer linguagem de programação moderna, então pode ser facilmente instalada e integrada. E, claro, a velocidade. Testei minha aplicação ZMQ sob estresse intenso em 40 máquinas e ela continuou funcionando muito bem, sem mensagens travadas ou perdidas e sem falhas, então quando se trata de confiabilidade, o ZMQ é a escolha certa. Análise coletada por e hospedada no G2.com.
Acho que a única coisa que pode afastar as pessoas é a mesma coisa que eu mais gostei :) - ser "lego". Você tem que construir e configurar seus sockets corretamente para obter qualquer resultado funcional, o que significa investir algum tempo em aprender o conceito de ZMQ e exemplos de código. Tipos de sockets é algo que você tem que explorar, enquanto com exemplos de PUB-SUB tudo parece muito simples, construções mais complicadas exigirão um entendimento profundo do protocolo ZMQ e dos tipos de sockets, o que pode ser uma curva de aprendizado íngreme para os novatos. Análise coletada por e hospedada no G2.com.

No meu passado gerenciando o desenvolvimento de software do 25º maior bureau de Forex, fomos desafiados a receber até 400 MB/s de tickets de ações. Não conseguimos aumentar o desempenho do socket com .Net remoting. Procurando uma solução robusta, mas fácil de usar, encontramos o ZeroMQ. Ele tinha um design elegante, simples, mas poderoso. Seu modelo pub/sub era exatamente o que precisávamos. Com alguns ajustes, conseguimos processar até 5 milhões de mensagens por segundo em um fluxo consistente de tickets com um limite de 500K. Estávamos codificando o par de forex nos primeiros bits de cada mensagem e isso era super eficiente. Conseguimos até fazer o trading de ações de Nível 1/2 funcionar com cabeçalhos de canal pub/sub. ZeroMQ era 2 horas de treinamento e você já estava obtendo os primeiros resultados. Comparado com minhas experiências anteriores com IBM Web Sphere MQ Series, AMQ, MSMQ, o ZMQ estava superando ambos em facilidade de adoção e desempenho. Análise coletada por e hospedada no G2.com.
Os recursos e o desempenho do Windows eram um pouco limitados. Às vezes, tivemos que usar TCP onde InProc teria sido melhor devido à falta de suporte no Windows. Análise coletada por e hospedada no G2.com.
A documentação é boa e é fácil começar com ela. Análise coletada por e hospedada no G2.com.
Às vezes, é um pouco difícil entender como o enfileiramento de mensagens funciona (quando um lado está fora do ar), e você precisa implementar a funcionalidade TTL (tempo de vida) você mesmo. Análise coletada por e hospedada no G2.com.
ZMQ has good documentation and there is a wide array of wrappers for different languages.
It is ideal for high performance responsive messaging across different platforms and technologies.
I personally used it to send low latency messages between an embodied Linux (c++) machine and a windows computer (c#).
It also has a wide array of implementations so legacy systems can communicate with newer systems. Análise coletada por e hospedada no G2.com.
There are some limitations on the type of data you can sent. While there is an option to send raw bitstreams it is not easy or fun to use. It is better for strings and information that can be easily serialized. Análise coletada por e hospedada no G2.com.

É rápido. Tem alta taxa de transferência em comparação com outros. Análise coletada por e hospedada no G2.com.
Não há método embutido adequado para saber se o componente com o qual estamos nos comunicando está vivo ou não. Se estiver morto, o zmq descarta silenciosamente as mensagens. Análise coletada por e hospedada no G2.com.

Flexible and high-performant so it was easy to adapt it to our distributed system needs
It was also Análise coletada por e hospedada no G2.com.
It was very convenient library for real time control parts but since it doesn't guarantee delivery it sis not suitable for parts of the systems that requires persistency Análise coletada por e hospedada no G2.com.