Buenas tardes, Habr! Quiero compartir un libro de conocimiento de referencia de libros de texto que logré recopilar RabbitMQ
y 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 AMQP
introduce 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.