Is RabbitMQ, for inter process communication, like pipes and named pipes?
Não. Essa não é a melhor maneira de compreender o RabbitMQ, ou mesmo os middlewares baseados em corretores de mensagens em geral.
Se você está procurando um paradigma para pendurar seu chapéu metafórico, a fim de começar a entender o RabbitMQ e sua laia, não pense em IPC de baixo nível.
Pense no correio do Unix.
- Os programas geram mensagens.
- Eles têm cabeçalhos e corpos.
- Eles ainda têm IDs de mensagens (opcionais), tipos de conteúdo MIME, timestamps, e endereços de resposta .
- Eles são enviados para um corretor.
- O intermediário os roteia e, de acordo com a topologia de roteamento, eles são colocados em filas, a partir dos quais são recuperados por outros programas.
- Existem intercâmbios de fan-outs que criam várias cópias de mensagens a serem enviadas em diante.
- Existem até mesmo caixas de mensagens mortas .
Não é bem mail, é claro, uma vez que se entra nos detalhes.
- A topologia de roteamento está sob controle de programa do cliente, usando o mesmo protocolo cliente-servidor usado para enviar e receber mensagens.
- O DNS, em grande parte, não está envolvido.
- Não é de armazenamento e encaminhamento.
- As discussões de fan-out são apenas muito próximas como listas de discussão.
- Os programas do cliente podem usar o protocolo para eliminar filas ( link ) e para definir TTLs nas mensagens.
- Existem vários graus de durabilidade e persistência.
- A recepção de mensagens pode envolver handshaking, positivo e < href="http://www.rabbitmq.com/amqp-0-9-1-reference.html#basic.nack"> negativo e re-entrega forçada de forma programática .
- Existe um paradigma de segurança para controlar quais clientes têm acesso a quais partes da infraestrutura , permitindo que os administradores (digamos) restringir onde os clientes logados com credenciais de usuário "JdeBP" podem enviar mensagens para.
Mas o e-mail é uma boa primeira aproximação para entender os conceitos, muito melhor do que começar comparando com os subsistemas IPC ou RPC, de qualquer forma.