рд╢реБрдн рджреЛрдкрд╣рд░, рд╣рдмреНрд░! рдореИрдВ рдЬреНрдЮрд╛рди рдХреА рдПрдХ рдкрд╛рдареНрдпрдкреБрд╕реНрддрдХ-рд╕рдВрджрд░реНрдн рдкреБрд╕реНрддрдХ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ RabbitMQ
рдЫреЛрдЯреА рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдореЗрдВ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдФрд░ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ ред
рд╡рд┐рд╖рдп - рд╕реВрдЪреА
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдПрдПрдордХреНрдпреВрдкреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
AMQP (рдЙрдиреНрдирдд рд╕рдВрджреЗрд╢ рдХрддрд╛рд░рдмрджреНрдз рдкреНрд░реЛрдЯреЛрдХреЙрд▓) рд╕рд┐рд╕реНрдЯрдо рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрджреЗрд╢ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреБрд▓рд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИред рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдмрд╕рд┐рд╕реНрдЯрдо (рдпрд╛ рд╕реНрд╡рддрдВрддреНрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ) рдПрдХ AMQP рдмреНрд░реЛрдХрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд░реВрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рд╕рдВрднрд╡рддрдГ рд╡рд┐рддрд░рдг, рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд╡рд┐рддрд░рдг рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддреЗ рд╣реИрдВред
рдкреНрд░реЛрдЯреЛрдХреЙрд▓ AMQP
рддреАрди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ:
![rabbitmq_1](https://habrastorage.org/getpro/habr/post_images/6f4/7e9/2a8/6f47e92a8d4ebca0e828abd0970596e9.jpg)
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](https://habrastorage.org/getpro/habr/post_images/1e8/006/fbb/1e8006fbb2212da5d284f246fa0f64bc.png)
RabbitMQ
:
- , ,
- .
- ,
- , , .
RPC
RPC (remote procedure call) RabbitMQ
. , RabbitMQ
, RPC
. , RabbitMQ
:
![rabbitmq_2](https://habrastorage.org/webt/e8/lr/jj/e8lrjjvfhlx_bnd4lusfntmukmo.jpeg)
AMQP
. , . тАФ . , Connection.Start
тАУ Start
Connection
.
. . . , .
. Erlang
. (multiplexing). . , RabbitMQ .
![rabbitmq_3](https://habrastorage.org/webt/iq/ne/q-/iqneq-_gmg-yq8bkk2-3_-mkvky.jpeg)
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.