أرنب MQ. الجزء 1. مقدمة. إرلانج ، AMQP

مساء الخير يا هبر! أريد أن أشارك كتاب المعرفة المرجعية الذي تمكنت من جمعه RabbitMQوضغطه في توصيات واستنتاجات قصيرة.


جدول المحتويات



باختصار حول AMQP


AMQP (بروتوكول وضع الرسائل المتقدم في قائمة الانتظار) هو بروتوكول مفتوح لنقل الرسائل بين مكونات النظام. الفكرة الرئيسية هي أن الأنظمة الفرعية الفردية (أو التطبيقات المستقلة) يمكنها تبادل الرسائل بطريقة عشوائية من خلال وسيط AMQP الذي يوفر التوجيه ، وربما يضمن التسليم ، وتوزيع تدفقات البيانات ، والاشتراك في الأنواع الضرورية من الرسائل.

يقدم البروتوكول AMQPثلاثة مفاهيم:


أرنب mq_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 () . , - .


. , , — . , . ? ? .


الصورة من: http://bit.ly/2U3PyJz


RabbitMQ :


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

RPC


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


أرنب mq_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