Guten Tag, Habr! Ich möchte ein Lehrbuch-Nachschlagewerk mit Wissen teilen, das ich gesammelt RabbitMQ
und zu kurzen Empfehlungen und Schlussfolgerungen komprimiert habe.
Inhaltsverzeichnis
Kurz über AMQP
AMQP (Advanced Message Queuing Protocol) ist ein offenes Protokoll zum Übertragen von Nachrichten zwischen Systemkomponenten. Die Hauptidee besteht darin, dass einzelne Subsysteme (oder unabhängige Anwendungen) Nachrichten auf beliebige Weise über einen AMQP-Broker austauschen können, der das Routing bereitstellt und möglicherweise die Zustellung, Verteilung von Datenströmen und das Abonnieren der erforderlichen Nachrichtentypen garantiert.
Das Protokoll AMQP
führt drei Konzepte ein:

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.