Bonjour, Habr! Je veux partager un livre de référence de manuels que j'ai réussi à rassembler RabbitMQ
et à 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 AMQP
introduit 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.