Bonjour, Habr! Je veux partager un livre de référence de manuels que j'ai réussi à rassembler RabbitMQet à compresser en de courtes recommandations et conclusions.
Table des matières
En bref sur l'AMQP
AMQP (Advanced Message Queuing Protocol) est un protocole ouvert pour transférer des messages entre les composants du système. L'idée principale est que des sous-systèmes individuels (ou des applications indépendantes) peuvent échanger des messages de manière arbitraire via un courtier AMQP qui assure le routage, garantit éventuellement la livraison, la distribution des flux de données et l'abonnement aux types de messages nécessaires.
Le protocole AMQPintroduit trois concepts:

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.