เดฑเดพเดฌเดฟเดฑเตเดฑเตเดŽเด‚เด•เตเดฏเต. เดญเดพเด—เด‚ 1. เด†เดฎเตเด–เด‚. เดŽเตผเดฒเดพเด™เต, AMQP

เด—เตเดกเต เด†เดซเตเดฑเตเดฑเตผเดจเต‚เตบ, เดนเดฌเตผ! เดŽเดจเดฟเด•เตเด•เต เดถเต‡เด–เดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดžเตเดž เด…เดฑเดฟเดตเดฟเดจเตเดฑเต† เด’เดฐเต เดชเดพเด เดชเตเดธเตเดคเด•-เดฑเดซเดฑเตปเดธเต เดชเตเดธเตเดคเด•เด‚ เดชเด™เตเด•เดฟเดŸเดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต RabbitMQ เด•เต‚เดŸเดพเดคเต† เดšเต†เดฑเดฟเดฏ เดถเตเดชเดพเตผเดถเด•เดณเดฟเดฒเตเด‚ เดจเดฟเด—เดฎเดจเด™เตเด™เดณเดฟเดฒเตเด‚ เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เตเด•.

เด‰เดณเตเดณเดŸเด•เตเด• เดชเดŸเตเดŸเดฟเด•

  • เดฑเดพเดฌเดฟเดฑเตเดฑเตเดŽเด‚เด•เตเดฏเต. เดญเดพเด—เด‚ 1. เด†เดฎเตเด–เด‚. เดŽเตผเดฒเดพเด™เต, AMQP, RPC
  • เดฑเดพเดฌเดฟเดฑเตเดฑเตเดŽเด‚เด•เตเดฏเต. เดญเดพเด—เด‚ 2. เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเตเด•เตพ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต
  • เดฑเดพเดฌเดฟเดฑเตเดฑเตเดŽเด‚เด•เตเดฏเต. เดญเดพเด—เด‚ 3. เด•เตเดฏเต‚เด•เดณเตเด‚ เดฌเตˆเตปเดกเดฟเด‚เด—เตเด•เดณเตเด‚ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เตฝ
  • เดฑเดพเดฌเดฟเดฑเตเดฑเตเดŽเด‚เด•เตเดฏเต. เดญเดพเด—เด‚ 4. เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเตเด‚ เดซเตเดฐเต†เดฏเดฟเดฎเตเด•เดณเตเด‚ เดŽเดจเตเดคเดพเดฃเต†เดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เตฝ
  • เดฑเดพเดฌเดฟเดฑเตเดฑเตเดŽเด‚เด•เตเดฏเต. เดญเดพเด—เด‚ 5: เดธเดจเตเดฆเต‡เดถ เดชเตเดฐเด•เดŸเดจเด‚ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เดฒเตเด‚ เด‰เดชเดญเต‹เด—เดตเตเด‚
  • เดฑเดพเดฌเดฟเดฑเตเดฑเตเดŽเด‚เด•เตเดฏเต. เดญเดพเด—เด‚ 6. เดซเต†เดกเดฑเต‡เดทเดจเตเดฑเต†เดฏเตเด‚ เดทเต‹เดตเตฝ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเตเดŸเต†เดฏเตเด‚ เด…เดตเดฒเต‹เด•เดจเด‚
  • เดฑเดพเดฌเดฟเดฑเตเดฑเตเดŽเด‚เด•เตเดฏเต. เดญเดพเด—เด‚ 7. เด•เดฃเด•เตเดทเดจเต†เดฏเตเด‚ เดšเดพเดจเดฒเดฟเดจเต†เดฏเตเด‚ เด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ
  • เดฑเดพเดฌเดฟเดฑเตเดฑเตเดŽเด‚เด•เตเดฏเต. เดญเดพเด—เด‚ 8. .NET-เตฝ RabbitMQ
  • เดฑเดพเดฌเดฟเดฑเตเดฑเตเดŽเด‚เด•เตเดฏเต. เดญเดพเด—เด‚ 9. เดจเดฟเดฐเต€เด•เตเดทเดฃเด‚

AMQP-เดฏเต† เด•เตเดฑเดฟเดšเตเดšเต เดšเตเดฐเตเด•เตเด•เดคเตเดคเดฟเตฝ

AMQP (เด…เดกเตเดตเดพเตปเดธเตโ€Œเดกเต เดฎเต†เดธเต‡เดœเต เด•เตเดฏเต‚เดฏเดฟเด‚เด—เต เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ) เดธเดฟเดธเตเดฑเตเดฑเด‚ เด˜เดŸเด•เด™เตเด™เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด“เดชเตเดชเตบ เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เด†เดฃเต. เดตเตเดฏเด•เตเดคเดฟเด—เดค เดธเดฌเตเดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพเด•เตเด•เต (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดธเตเดตเดคเดจเตเดคเตเดฐ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ) เด’เดฐเต AMQP เดฌเตเดฐเต‹เด•เตเด•เตผ เดตเดดเดฟ เด…เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดคเดฎเดพเดฏ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด•เตˆเดฎเดพเดฑเดพเตป เด•เดดเดฟเดฏเตเด‚ เดŽเดจเตเดจเดคเดพเดฃเต เด…เดŸเดฟเดธเตเดฅเดพเดจ เด†เดถเดฏเด‚, เด…เดคเต เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต เดจเดŸเดคเตเดคเตเด•เดฏเตเด‚ เดกเต†เดฒเดฟเดตเดฑเดฟ เด‰เดฑเดชเตเดชเต เดจเตฝเด•เตเด•เดฏเตเด‚ เดกเดพเดฑเตเดฑ เดธเตเดŸเตเดฐเต€เดฎเตเด•เตพ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดธเดจเตเดฆเต‡เดถ เดคเดฐเด™เตเด™เตพ เดธเดฌเตเดธเตเด•เตเดฐเตˆเดฌเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เต‹เตพ AMQP เดฎเต‚เดจเตเดจเต เด†เดถเดฏเด™เตเด™เตพ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต:

เดฑเดพเดฌเดฟเดฑเตเดฑเตเดŽเด‚เด•เตเดฏเต. เดญเดพเด—เด‚ 1. เด†เดฎเตเด–เด‚. เดŽเตผเดฒเดพเด™เต, AMQP

  • exchange (เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดชเต‹เดฏเดฟเดจเตเดฑเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต) - เด‡เดคเดฟเดฒเต‡เด•เตเด•เต เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต. เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดชเต‹เดฏเดฟเดจเตเดฑเต เดธเดจเตเดฆเต‡เดถเด‚ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต เด’เดจเตเดจเต‹ เด…เดคเดฟเดฒเดงเดฟเด•เดฎเต‹ เด•เตเดฏเต‚เดตเดฟเตฝ. เด…เดตเตพ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด’เดฐเต เด•เตเดฏเต‚เดตเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเด•เตเด•เตเดจเตเดจเต เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดฒเดฟเด™เตเด•เตเด•เดณเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ (binding) เด…เดตเดจเตเด‚ เด•เตเดฏเต‚เดตเดฟเดจเตเดฎเดฟเดŸเดฏเดฟเตฝ
  • queue (เด•เตเดฏเต‚) - เดกเดฟเดธเตเด•เดฟเดฒเต‹ เดฑเดพเดฎเดฟเดฒเต‹ เด‰เดณเตเดณ เด’เดฐเต เดกเดพเดฑเตเดฑเดพ เด˜เดŸเดจ เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฒเดฟเด™เตเด•เตเด•เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเตเดŸเต† เดชเด•เตผเดชเตเดชเตเด•เตพ เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต consumers (เด‰เดชเดญเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต)
  • binding (เดฌเตˆเตปเดกเดฟเด‚เด—เต) - เด’เดฐเต เดจเดฟเดฏเดฎเด‚ เดˆ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดเดคเต เด•เตเดฏเต‚เดตเดฟเดฒเต‡เด•เตเด•เดพเดฃเต เดชเต‹เด•เต‡เดฃเตเดŸเดคเต†เดจเตเดจเต เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดชเต‹เดฏเดฟเดจเตเดฑเดฟเดจเต‹เดŸเต เดชเดฑเดฏเตเดจเตเดจเต

เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เดฎเตเด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต TCP / IP.

เดŽเตผเดฒเดพเด™เตเด™เดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดšเตเดฐเตเด•เตเด•เดคเตเดคเดฟเตฝ

เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดธเต‹เดดเตเดธเต เด•เต‹เดกเต เดถเต‡เด–เดฐเดคเตเดคเดฟเตฝ เด‰เดฃเตเดŸเต เดธเดพเดฎเต‚เดนเดฟเด•เด‚. เดตเดพเดธเตเดคเตเดตเดฟเดฆเตเดฏ RabbitMQ-เดธเต†เตผเดตเตผ เด‡เดคเดฟเดจเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เดŽเตผเดฒเดพเด™เต เด’เดชเตเดชเด‚ เดฌเต€เด‚.

Erlang เด•เดฎเตเดชเดจเดฟ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดšเต†เดŸเตเดคเตเดคเดคเต Ericsson 1980-เด•เดณเตเดŸเต† เดฎเดงเตเดฏเดคเตเดคเดฟเตฝ, 99,999% เดชเตเดฐเดตเตผเดคเตเดคเดจเดธเดฎเดฏเด‚ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค, เดคเต†เดฑเตเดฑเต-เดธเดนเดฟเดทเตเดฃเตเดคเดฏเตเดณเตเดณ, เดคเดคเตเดธเดฎเดฏ เดธเด‚เดตเดฟเดงเดพเดจเดฎเดพเดฏเดฟ. Erlang เดตเดฟเดตเดฟเดง เดตเตเดฏเดตเดธเดพเดฏเด™เตเด™เดณเดฟเดฒเตเด‚ เด†เดงเตเดจเดฟเด• เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเดฟเดฒเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เด‰เดฆเดพ. WhatsApp. เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เดตเดพเดฏเดฟเด•เตเด•เดพเด‚ 19 เดฌเดฟเดฒเตเดฏเตบ เดกเต‹เดณเดฑเดฟเดจเต เดซเต‡เดธเตเดฌเตเด•เตเด•เต เดตเดพเด™เตเด™เดฟเดฏ เดตเดพเดŸเตเดŸเตโ€Œเดธเตเด†เดชเตเดชเต เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเตผ

RabbitMQ-เดจเต† เด•เตเดฑเดฟเดšเตเดšเต เดšเตเดฐเตเด•เตเด•เดคเตเดคเดฟเตฝ

RabbitMQ เด’เดฐเต เด“เดชเตเดชเตบ เดธเต‹เดดเตเดธเต เดธเดจเตเดฆเต‡เดถ เดฌเตเดฐเต‹เด•เตเด•เดฑเดพเดฃเต. เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เดณเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เด…เดŸเดฟเดธเตเดฅเดพเดจ เดคเดคเตเดคเตเดตเด™เตเด™เดณเดฟเดฒเตเด‚ เด‡เดคเต เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเต† เดจเดฏเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดŽเด‚เด•เตเดฏเตเดชเดฟ เตฝ เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ. RabbitMQ เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•เดฏเตเด‚ เด…เดจเตเดฌเดจเตเดงเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต AMQP.

เดธเดจเตเดฆเต‡เดถเดฎเดฏเดฏเตโ€Œเด•เตเด•เตฝ เดฎเต‹เดกเดฒเดฟเดจเตเดฑเต† เดชเตเดฐเดงเดพเดจ เด†เดถเดฏเด‚ RabbitMQ เด•เดพเดฐเตเดฏเด‚ เด†เดฃเต producer (เดชเตเดฐเดธเดพเดงเด•เตป) เด•เตเดฏเต‚เดตเดฟเดฒเต‡เด•เตเด•เต เดจเต‡เดฐเดฟเดŸเตเดŸเต เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด…เดฏเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เดชเดฒเดชเตเดชเต‹เดดเตเด‚, เดชเตเดฐเดธเดพเดงเด•เดจเต เดธเดจเตเดฆเต‡เดถเด‚ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด•เตเดฏเต‚เดตเดฟเตฝ เดกเต†เดฒเดฟเดตเตผ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดฎเต‹ เดŽเดจเตเดจเต เดชเต‹เดฒเตเด‚ เด…เดฑเดฟเดฏเดฟเดฒเตเดฒ.

เดชเด•เดฐเด‚, เดชเตเดฐเดธเดพเดงเด•เดจเต เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเดฟเดฒเต‡เด•เตเด•เต เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด…เดฏเดฏเตเด•เตเด•เดพเตป เดฎเดพเดคเตเดฐเดฎเต‡ เด•เดดเดฟเดฏเต‚. เด’เดฐเต เดตเดถเดคเตเดคเต, เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดชเตเดฐเดธเดพเดงเด•เดฐเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดฎเดฑเตเดตเดถเดคเตเดคเต, เด…เดคเต เด…เดตเดฐเต† เด•เตเดฏเต‚เด•เดณเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต. เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เดธเดจเตเดฆเต‡เดถเดคเตเดคเดฟเตฝ เดŽเดจเตเดคเดพเดฃเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต†เดจเตเดจเต เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เด…เดฑเดฟเดžเตเดžเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เด‡เดคเต เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เด•เตเดฏเต‚เดตเดฟเตฝ เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต‹? เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เด•เตเดฏเต‚เด•เดณเดฟเดฒเต‡เด•เตเด•เต เด‡เดคเต เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต‹? เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดธเดจเตเดฆเต‡เดถเด‚ เด…เดตเด—เดฃเดฟเด•เตเด•เดฃเด‚.

เดฑเดพเดฌเดฟเดฑเตเดฑเตเดŽเด‚เด•เตเดฏเต. เดญเดพเด—เด‚ 1. เด†เดฎเตเด–เด‚. เดŽเตผเดฒเดพเด™เต, AMQP

เดนเตเดฐเดธเตเดตเดฎเดพเดฏ เดœเต‹เดฒเดฟ RabbitMQ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดตเดฟเดตเดฐเดฟเด•เตเด•เดพเด‚:

  1. เดชเตเดฐเดธเดพเดงเด•เตป เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดธเดจเตเดฆเต‡เดถเด‚ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต
  2. เด’เดฐเต เดŽเด•เตโ€Œเดธเตโ€Œเดšเต‡เดžเตเดšเต, เด’เดฐเต เดธเดจเตเดฆเต‡เดถเด‚ เดฒเดญเดฟเดšเตเดšเดพเตฝ, เด…เดคเดฟเดจเตเด‚ เด•เตเดฏเต‚เดตเดฟเดจเตเด‚ เด‡เดŸเดฏเดฟเดฒเตเดณเตเดณ เดฌเตˆเตปเดกเดฟเด‚เด—เต เดจเดฟเดฏเดฎเด™เตเด™เตพเด•เตเด•เดจเตเดธเตƒเดคเดฎเดพเดฏเดฟ เด…เดคเดฟเดจเต† เด’เดจเตเดจเต‹ เด…เดคเดฟเดฒเดงเดฟเด•เดฎเต‹ เด•เตเดฏเต‚เด•เดณเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเด•เตเด•เตเดจเตเดจเต.
  3. เด•เตเดฏเต‚ เดˆ เดธเดจเตเดฆเต‡เดถเดคเตเดคเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด’เดฐเต เดฑเดซเดฑเตปเดธเต เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดธเดจเตเดฆเต‡เดถเด‚ เดคเดจเตเดจเต† เดฑเดพเดฎเดฟเดฒเต‹ เดกเดฟเดธเตเด•เดฟเดฒเต‹ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต
  4. เด•เตเดฏเต‚เดตเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดธเดจเตเดฆเต‡เดถเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เดพเตป เด‰เดชเดญเต‹เด•เตเดคเดพเดตเต เดคเดฏเตเดฏเดพเดฑเดพเดฏเดฟเด•เตเด•เดดเดฟเดžเตเดžเดพเตฝ, เดธเต†เตผเดตเตผ เดฒเดฟเด™เตเด•เต เดตเดดเดฟ เดธเดจเตเดฆเต‡เดถเดคเตเดคเดฟเดจเตเดฑเต† เด’เดฐเต เดชเด•เตผเดชเตเดชเต เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต.
  5. เด‰เดชเดญเต‹เด•เตเดคเดพเดตเดฟเดจเต เดธเดจเตเดฆเต‡เดถเด‚ เดฒเดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดฌเตเดฐเต‹เด•เตเด•เตผเด•เตเด•เต เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฃเด‚ เด…เดฏเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต
  6. เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฃเด‚ เดฒเดญเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดฌเตเดฐเต‹เด•เตเด•เตผ, เด•เตเดฏเต‚เดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเดจเตเดฆเต‡เดถเดคเตเดคเดฟเดจเตเดฑเต† เด’เดฐเต เดชเด•เตผเดชเตเดชเต เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดคเตเดŸเตผเดจเตเดจเต เดฑเดพเดฎเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ เดกเดฟเดธเตเด•เดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเต

เด†เตผโ€Œเดชเดฟโ€Œเดธเดฟ

เดชเตเดฐเด•เตเดฐเดฟเดฏ RPC (เดตเดฟเดฆเต‚เดฐ เดจเดŸเดชเดŸเดฟเด•เตเดฐเดฎ เด•เต‹เตพ) เดจเตเดฏเต‚เด•เตเดฒเดฟเดฏเดธเตเดฎเดพเดฏเตเดณเตเดณ เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚ เดŽเดฒเตเดฒเดพ เด‡เดŸเดชเต†เดŸเดฒเตเด•เดณเตเด‚ เด…เดŸเดฟเดตเดฐเดฏเดฟเดŸเตเดจเตเดจเต RabbitMQ. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด‰เดชเดญเต‹เด•เตเดคเดพเดตเดฟเดจเตเดฑเต† เดจเดฟเดฌเดจเตเดงเดจเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดชเตเดฐเดพเดฅเดฎเดฟเด• เดšเตผเดšเตเดšเด•เตพ RabbitMQ, เด’เดฐเต เดจเดฟเดถเตเดšเดฟเดค เดชเตเดฐเด•เตเดฐเดฟเดฏ เดชเตเดฐเด•เดŸเดฎเดพเด•เตเด•เตเดจเตเดจเต RPC. เดˆ เด•เตเดฐเดฎเด‚ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏเดฟเด•เตเด•เดดเดฟเดžเตเดžเดพเตฝ, RabbitMQ เด•เตเดฒเดฏเดจเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เดพเตป เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด‚:

เดฑเดพเดฌเดฟเดฑเตเดฑเตเดŽเด‚เด•เตเดฏเต. เดญเดพเด—เด‚ 1. เด†เดฎเตเด–เด‚. เดŽเตผเดฒเดพเด™เต, AMQP

เดธเตเดชเต†เดธเดฟเดซเดฟเด•เตเด•เต‡เดทเดจเดฟเดฒเตเด‚ AMQP เด•เตเดฒเดฏเดจเตเดฑเดฟเดจเตเด‚ เดธเต†เตผเดตเดฑเดฟเดจเตเด‚ เด•เดฎเดพเตปเดกเตเด•เตพ เดจเตฝเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เดธเต†เตผเดตเดฑเตเดฎเดพเดฏเดฟ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚ เดจเดŸเดคเตเดคเดพเตป เด•เตเดฒเดฏเดจเตเดฑเต เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดพเดฃเต เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚. เด•เดฎเดพเตปเดกเตเด•เตพ เด•เตเดฒเดพเดธเตเด•เดณเตเด‚ เดฐเต€เดคเดฟเด•เดณเตเดฎเดพเดฃเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, Connection.Start - เดฐเต€เดคเดฟ เด•เต‹เตพ Start เด•เตเดฒเดพเดธเต Connection.

เด•เดฃเด•เตเดทเดจเตเด‚ เดšเดพเดจเดฒเตเด•เดณเตเด‚

เด•เตเดฒเดฏเดจเตเดฑเตเด‚ เดธเต†เตผเดตเดฑเตเด‚ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เด…เดคเตเดคเดฐเด‚ เดตเดฟเดตเดฐ เด•เตˆเดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเต, เดšเดพเดจเดฒเตเด•เตพ. เดšเดพเดจเดฒเตเด•เตพ เด‰เดณเตเดณเดฟเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เด•เดฃเด•เตเดทเตป. เด“เดฐเต‹ เดšเดพเดจเดฒเตเด‚ เดฎเดฑเตเดฑเต เดšเดพเดจเดฒเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฑเตเดฑเดชเตเดชเต†เดŸเตเดŸเดคเดพเดฃเต. เดธเดฟเตปเด•เตเดฐเดฃเดธเต เด•เต‡เดธเดฟเตฝ, เด’เดฐเต เดชเตเดฐเดคเดฟเด•เดฐเดฃเด‚ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเตเดตเดฐเต† เด…เดŸเตเดคเตเดค เด•เดฎเดพเตปเดกเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เดธเดพเดงเตเดฏเดฎเดฒเตเดฒ.

เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ เด•เดฎเดพเตปเดกเตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เดพเตป, เดจเดฟเด™เตเด™เตพ เดจเดฟเดฐเดตเดงเดฟ เดšเดพเดจเดฒเตเด•เตพ เดคเตเดฑเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด“เดฐเต‹ เดšเดพเดจเดฒเตเด‚ เดชเตเดฐเดคเตเดฏเต‡เด•เด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต Erlang เดชเตเดฐเด•เตเดฐเดฟเดฏ. เด’เดฐเต เด•เดฃเด•เตเดทเดจเดฟเตฝ เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดšเดพเดจเดฒเตเด•เตพ เด‰เดฃเตเดŸเดพเด•เดพเด‚ (เดฎเตพเดŸเตเดŸเดฟเดชเตเดฒเด•เตเดธเดฟเด‚เด—เต). เด“เดฐเต‹ เดšเดพเดจเดฒเดฟเดจเตเด‚ เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดšเดฟเดฒ เด˜เดŸเดจเด•เดณเตเด‚ เดตเดธเตเดคเตเด•เตเด•เดณเตเด‚ เด‰เดฃเตเดŸเต. เด…เดคเดฟเดจเดพเตฝ, เด’เดฐเต เด•เดฃเด•เตเดทเดจเดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เดšเดพเดจเดฒเตเด•เตพ เด‰เดฃเตเดŸเต RabbitMQ เด•เต‚เดŸเตเดคเตฝ เดฎเต†เดฎเตเดฎเดฑเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เด•เดฃเด•เตเดทเตป เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป.

เดฑเดพเดฌเดฟเดฑเตเดฑเตเดŽเด‚เด•เตเดฏเต. เดญเดพเด—เด‚ 1. เด†เดฎเตเด–เด‚. เดŽเตผเดฒเดพเด™เต, AMQP

เด’เดฐเต เด•เดฃเด•เตเดทเดจเตเด‚ เดšเดพเดจเดฒเตเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฒเดณเดฟเดคเดฎเดพเดฏ เด‰เดฆเดพเดนเดฐเดฃเด‚ 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 CreateChanel()
{
    _channel = _connection.CreateModel();
    // other options 
}

เด“เดฐเต‹ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเด‚ เด’เดฐเต เดชเตเดคเดฟเดฏ เด•เดฃเด•เตเดทเตป เดคเตเดฑเด•เตเด•เตเดจเตเดจเดคเต เดถเด•เตเดคเดฎเดพเดฏเดฟ เดจเดฟเดฐเตเดคเตเดธเดพเดนเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต เด‰เดฏเตผเดจเตเดจ เดšเต†เดฒเดตเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเด•เตเด•เตเด‚. เดšเดพเดจเดฒเตเด•เดณเตเด‚ เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚, เดŽเดจเตเดจเดพเตฝ เดชเดฒ เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เดชเดฟเดถเด•เตเด•เดณเตเด‚ เดšเดพเดจเตฝ เด…เดŸเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เดšเดพเดจเดฒเดฟเดจเตเดฑเต† เด†เดฏเตเดธเตเดธเต เด•เดฃเด•เตเดทเดจเต‡เด•เตเด•เดพเตพ เด•เตเดฑเดตเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚.

RabbitMQ เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต?

เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเตเดŸเต† เดชเดถเตเดšเดพเดคเตเดคเดฒเดคเตเดคเดฟเตฝ, เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ AMQP เด…เดคเดฟเดจเตเดฑเต† เดจเดŸเดชเตเดชเดพเด•เตเด•เดฒเตเด‚ RabbitMQ เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เด…เดธเดฎเดจเตเดตเดฟเดค เด‡เดŸเดชเต†เดŸเตฝ เดธเต‡เดตเดจเด™เตเด™เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ.

เดธเดจเตเดฆเตผเดญเดคเตเดคเดฟเตฝ IIOT เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ AMQP เด…เดคเดฟเดจเตเดฑเต† เดจเดŸเดชเตเดชเดพเด•เตเด•เดฒเตเด‚ RabbitMQ เดธเต†เตผเดตเดฑเตเด•เตพ (เดธเต†เตผเดตเตผ-เดธเต†เตผเดตเตผ) เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑ เด•เตˆเดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด•เต‚เดŸเดพเดคเต† เดชเตเดฒเด—เดฟเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• MQTT เดชเตเดฒเด—เดฟเตป RabbitMQ เด‡เดคเต เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เดจเดŸเดชเตเดชเดพเด•เตเด•เดฒเดพเดฃเต เดฎเตเด•เตเดคเตเดคเต เดธเต†เตปเดธเดฑเดฟเดจเตเด‚ เดธเต†เตผเดตเดฑเดฟเดจเตเดฎเดฟเดŸเดฏเดฟเตฝ เด•เตเดฑเดžเตเดž เดตเต‡เด—เดคเดฏเดฟเดฒเตเด‚ เด‰เดฏเตผเดจเตเดจ เดฒเต‡เดฑเตเดฑเตปเดธเดฟ เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเด•เดณเดฟเดฒเตเด‚ เดกเดพเดฑเตเดฑ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเดคเดฟเดจเต (เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจ เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เดณเตเด•เดณเตเดŸเต† เด’เดฐเต เดชเต‚เตผเดฃเตเดฃ เดฒเดฟเดธเตเดฑเตเดฑเต เด‡เดตเดฟเดŸเต† เดชเดŸเตเดŸเดฟเด•เดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดชเดฆเตเดงเดคเดฟ เดตเต†เดฌเตเดธเตˆเดฑเตเดฑเต).

เด…เดŸเตเดคเตเดค เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดจเดฎเตเดฎเตพ เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเตเด•เตพ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เตเด‚.

เดฑเต†เดซเดฑเตปเดธเตเด•เตพ

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•