Unix streams de texto para servir como filas de mensagens

0

A filosofia do UNIX sugere que construímos muitos programas simples que fazem uma coisa bem e que fazemos com fluxos de texto. Ou seja, os canais de entrada / saída padrão são meios suficientes de envio de mensagens.

Os programas de console não podem ser canalizados juntos, eles também podem ser direcionados para um arquivo. Ao fazer isso, você pode basicamente enfileirar mensagens (texto em arquivos) para processamento posterior. Isso parece seguir um modelo semelhante às filas de mensagens, mas sem toda a sofisticação.

Richard P. Gabriel suggests that a key advantage of Unix was that it embodied a design philosophy he termed "worse is better", in which simplicity of both the interface and the implementation are more important than any other attributes of the system—including correctness, consistency, and completeness.

Da minha perspectiva, os fluxos de texto fornecem o mais simples canal de comunicação possível. Isso parece seguir a filosofia pior é melhor. Não poderíamos, assim, usar aplicativos de console e arquivos gravados no sistema de arquivos como uma fila de mensagens de um homem pobre? E se assim for, alguém com sucesso tomou e preferiu essa abordagem? Estou simplesmente imaginando como é prático / viável substituir o processamento do fluxo de texto por filas de mensagens.

    
por Mario 27.08.2013 / 16:50

1 resposta

1

Muitos servidores de e-mail usam arquivos no disco para sua fila. O Exim mantém cada email em um arquivo junto com outro arquivo de metadados. O principal benefício disso é a resistência a falhas: a fila sobrevive a uma falha e reinicialização.

Os arquivos normalmente serão mais lentos do que usar um sistema de enfileiramento de mensagens como 0MQ, e há problemas de eficiência (como você informa quando uma nova mensagem entrou na fila?), mas para aplicativos pequenos ou onde você deseja fila persistente pode funcionar bem.

    
por 27.08.2013 / 17:20

Tags