RabbitMQ. Bagian 1. Pendahuluan. Erlang, AMQP

Selamat siang, Habr! Saya ingin berbagi buku pengetahuan referensi buku teks yang berhasil saya kumpulkan RabbitMQdan kompres menjadi rekomendasi dan kesimpulan singkat.


Daftar Isi



Secara singkat tentang AMQP


AMQP (Advanced Message Queuing Protocol) adalah protokol terbuka untuk mentransfer pesan antar komponen sistem. Gagasan utamanya adalah bahwa masing-masing subsistem (atau aplikasi independen) dapat bertukar pesan dengan cara sewenang-wenang melalui broker AMQP yang menyediakan perutean, mungkin menjamin pengiriman, distribusi aliran data, dan berlangganan ke jenis pesan yang diperlukan.

Protokol AMQPmemperkenalkan tiga konsep:


rabbitmq_1


  • 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 () . , - .


. , , — . , . ? ? .


Gambar dari: http://bit.ly/2U3PyJz


RabbitMQ :


  1. , ,
  2. .
  3. ,
  4. , , .

RPC


RPC (remote procedure call) RabbitMQ. , RabbitMQ, RPC. , RabbitMQ :


rabbitmq_2


AMQP . , . — . , Connection.StartStart Connection.



. . . , .


. Erlang . (multiplexing). . , RabbitMQ .


rabbitmq_3


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();
    // other options 
}

, , . , , , .


RabbitMQ?


AMQP RabbitMQ .


IIOT AMQP RabbitMQ (-). MQTT Plugin RabbitMQ MQTT ( ).


Exchanges.




All Articles