Buenas tardes, Habr! Quiero compartir un libro de conocimiento de referencia de libros de texto que logré recopilar RabbitMQy comprimir en breves recomendaciones y conclusiones.
Tabla de contenido
Brevemente sobre AMQP
AMQP (Advanced Message Queuing Protocol) es un protocolo abierto para transferir mensajes entre componentes del sistema. La idea principal es que los subsistemas individuales (o aplicaciones independientes) pueden intercambiar mensajes de manera arbitraria a través de un intermediario AMQP que proporciona enrutamiento, posiblemente garantiza la entrega, distribución de flujos de datos y suscripción a los tipos de mensajes necesarios.
El protocolo AMQPintroduce tres conceptos:

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.