Boa tarde, Habr! Desejo compartilhar um livro de referência de livros didáticos que consegui coletar RabbitMQ
e compactar em breves recomendações e conclusões.
Índice
Brevemente sobre AMQP
O AMQP (Advanced Message Queuing Protocol) é um protocolo aberto para transferência de mensagens entre componentes do sistema. A idéia principal é que subsistemas individuais (ou aplicativos independentes) podem trocar mensagens de maneira arbitrária por meio de um broker AMQP que fornece roteamento, possivelmente garante entrega, distribuição de fluxos de dados e assinatura para os tipos necessários de mensagens.
O protocolo AMQP
apresenta três conceitos:

exchange
( ) — . . (binding
)queue
() — , consumers
().binding
() — , .
TCP/IP.
Erlang
GitHub. RabbitMQ-server Erlang BEAM.
Erlang
Ericsson
1980-x , , , 99,999%. Erlang
, WhatsApp
. WhatsApp, Facebook $19
RabbitMQ
RabbitMQ – . AMQP . . RabbitMQ
AMQP
.
RabbitMQ
, producer
() . , - .
. , , — . , . ? ? .

RabbitMQ
:
- , ,
- .
- ,
- , , .
RPC
RPC (remote procedure call) RabbitMQ
. , RabbitMQ
, RPC
. , RabbitMQ
:

AMQP
. , . — . , Connection.Start
– Start
Connection
.
. . . , .
. Erlang
. (multiplexing). . , RabbitMQ .

RabbitMQ.Client:
private void TryConnect()
{
var factory = new ConnectionFactory()
{
HostName = "host_name",
UserName = "user_name",
Password = "p@ssword",
AutomaticRecoveryEnabled = true
};
_connection = factory.CreateConnection();
}
public void CreateChannel()
{
_channel = _connection.CreateModel();
}
, , . , , , .
RabbitMQ?
AMQP
RabbitMQ
.
IIOT
AMQP
RabbitMQ
(-). MQTT Plugin RabbitMQ MQTT ( ).
Exchanges.