RabbitMQ. เจญเจพเจ— 1. เจœเจพเจฃ-เจชเจ›เจพเจฃเฅค เจ…เจฐเจฒเจพเจ‚เจ—, AMQP

เจธเจผเฉเจญ เจฆเฉเจชเจนเจฟเจฐ, เจนเฉˆเจฌเจฐ! เจฎเฉˆเจ‚ เจ—เจฟเจ†เจจ เจฆเฉ€ เจ‡เฉฑเจ• เจชเจพเจ -เจชเฉเจธเจคเจ•-เจธเฉฐเจฆเจฐเจญ เจชเฉเจธเจคเจ• เจธเจพเจ‚เจเฉ€ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚ เจœเฉ‹ เจฎเฉˆเจ‚ เจ‡เจ•เฉฑเจ เฉ€ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ•เจพเจฎเจฏเจพเจฌ เจฐเจฟเจนเจพ RabbitMQ เจ…เจคเฉ‡ เจ›เฉ‹เจŸเฉ€เจ†เจ‚ เจธเจฟเจซเจผเจพเจฐเจธเจผเจพเจ‚ เจ…เจคเฉ‡ เจธเจฟเฉฑเจŸเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจธเฉฐเจ˜เจฃเจพ.

เจตเจฟเจธเจผเจพ-เจธเฉ‚เจšเฉ€

  • RabbitMQ. เจญเจพเจ— 1. เจœเจพเจฃ-เจชเจ›เจพเจฃเฅค Erlang, AMQP เจ…เจคเฉ‡ RPC
  • RabbitMQ. เจญเจพเจ— 2. เจเจ•เจธเจšเฉ‡เจ‚เจœ เจจเฉ‚เฉฐ เจธเจฎเจเจฃเจพ
  • RabbitMQ. เจญเจพเจ— 3. เจ•เจคเจพเจฐเจพเจ‚ เจ…เจคเฉ‡ เจฌเฉฐเจงเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจเจฃเจพ
  • RabbitMQ. เจญเจพเจ— 4. เจ‡เจน เจธเจฎเจเจฃเจพ เจ•เจฟ เจธเฉเจจเฉ‡เจนเฉ‡ เจ…เจคเฉ‡ เจซเจฐเฉ‡เจฎ เจ•เฉ€ เจนเจจ
  • RabbitMQ. เจญเจพเจ— 5: เจธเฉฐเจฆเฉ‡เจธเจผ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจจเฉ‚เฉฐ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ–เจชเจค เจ•เจฐเจจเจพ
  • RabbitMQ. เจญเจพเจ— 6. เจซเฉˆเจกเจฐเฉ‡เจธเจผเจจ เจ…เจคเฉ‡ เจธเจผเฉ‹เจตเจฒ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€
  • RabbitMQ. เจญเจพเจ— 7. เจ•เจจเฉˆเจ•เจธเจผเจจ เจ…เจคเฉ‡ เจšเฉˆเจจเจฒ เจฌเจพเจฐเฉ‡ เจตเฉ‡เจฐเจตเฉ‡
  • RabbitMQ. เจญเจพเจ— 8. .NET เจตเจฟเฉฑเจš RabbitMQ
  • RabbitMQ. เจญเจพเจ— 9. เจจเจฟเจ—เจฐเจพเจจเฉ€

AMQP เจฌเจพเจฐเฉ‡ เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš

AMQP (เจเจกเจตเจพเจ‚เจธเจก เจฎเฉˆเจธเฉ‡เจœ เจ•เจฟเจŠเจ‡เฉฐเจ— เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ) เจธเจฟเจธเจŸเจฎ เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸเจธ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ เจธเฉฐเจฆเฉ‡เจธเจผเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจšเจพเจฐเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจ“เจชเจจ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจนเฉˆเฅค เจฎเฉ‚เจฒ เจตเจฟเจšเจพเจฐ เจ‡เจน เจนเฉˆ เจ•เจฟ เจตเจฟเจ…เจ•เจคเฉ€เจ—เจค เจธเจฌ-เจธเจฟเจธเจŸเจฎ (เจœเจพเจ‚ เจธเฉเจคเฉฐเจคเจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚) เจ‡เฉฑเจ• AMQP เจฌเฉเจฐเฉ‹เจ•เจฐ เจฆเฉเจ†เจฐเจพ เจ‡เฉฑเจ• เจฎเจจเจฎเจพเจจเฉ‡ เจขเฉฐเจ— เจจเจพเจฒ เจธเฉเจจเฉ‡เจนเจฟเจ†เจ‚ เจฆเจพ เจ†เจฆเจพเจจ-เจชเฉเจฐเจฆเจพเจจ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจ, เจœเฉ‹ เจฐเฉ‚เจŸเจฟเฉฐเจ— เจ•เจฐเจฆเจพ เจนเฉˆ, เจธเฉฐเจญเจต เจคเฉŒเจฐ 'เจคเฉ‡ เจกเจฟเจฒเฉ€เจตเจฐเฉ€ เจฆเฉ€ เจ—เจพเจฐเฉฐเจŸเฉ€ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ, เจกเจพเจŸเจพ เจธเจŸเฉเจฐเฉ€เจฎเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉฐเจกเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจธเฉฐเจฆเฉ‡เจธเจผ เจ•เจฟเจธเจฎเจพเจ‚ เจฆเฉ€ เจ—เจพเจนเจ•เฉ€ เจฒเฉˆเจ‚เจฆเจพ เจนเฉˆเฅค

เจชเจฐเฉ‹เจŸเฉ‹เจ•เจพเจฒ AMQP เจคเจฟเฉฐเจจ เจงเจพเจฐเจจเจพเจตเจพเจ‚ เจชเฉ‡เจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ:

RabbitMQ. เจญเจพเจ— 1. เจœเจพเจฃ-เจชเจ›เจพเจฃเฅค เจ…เจฐเจฒเจพเจ‚เจ—, AMQP

  • exchange (เจเจ•เจธเจšเฉ‡เจ‚เจœ เจชเฉเจ†เจ‡เฉฐเจŸ เจœเจพเจ‚ เจเจ•เจธเจšเฉ‡เจ‚เจœ) - เจ‡เจธ 'เจคเฉ‡ เจธเฉฐเจฆเฉ‡เจธเจผ เจญเฉ‡เจœเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค เจเจ•เจธเจšเฉ‡เจ‚เจœ เจชเฉเจ†เจ‡เฉฐเจŸ เจธเฉเจจเฉ‡เจนเจพ เจตเฉฐเจกเจฆเจพ เจนเฉˆ เจ‡เฉฑเจ• เจœเจพเจ‚ เจ‡เฉฑเจ• เจคเฉ‹เจ‚ เจตเฉฑเจง เจ•เจคเจพเจฐเจพเจ‚ เจตเจฟเฉฑเจšเฅค เจ‰เจน เจธเฉเจจเฉ‡เจนเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ•เจคเจพเจฐ เจตเจฟเฉฑเจš เจญเฉ‡เจœเจฆเจพ เจนเฉˆ เจฌเจฃเจพเจ เจ—เจ เจฒเจฟเฉฐเจ•เจพเจ‚ 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค (binding) เจ‰เจธเจฆเฉ‡ เจ…เจคเฉ‡ เจ•เจคเจพเจฐ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ
  • queue (เจ•เจคเจพเจฐ) - เจกเจฟเจธเจ• เจœเจพเจ‚ เจฐเฉˆเจฎ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจกเจพเจŸเจพ เจขเจพเจ‚เจšเจพ เจธเฉเจจเฉ‡เจนเจฟเจ†เจ‚ เจฆเฉ‡ เจฒเจฟเฉฐเจ• เจธเจŸเฉ‹เจฐ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจธเฉฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจ•เจพเจชเฉ€เจ†เจ‚ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ consumers (เจ–เจชเจคเจ•เจพเจฐเจพเจ‚ เจจเฉ‚เฉฐ)
  • binding (เจฌเฉฐเจงเจจ) - เจ‡เฉฑเจ• เจจเจฟเจฏเจฎ เจœเฉ‹ เจเจ•เจธเจšเฉ‡เจ‚เจœ เจชเฉเจ†เจ‡เฉฐเจŸ เจจเฉ‚เฉฐ เจฆเฉฑเจธเจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจนเจจเจพเจ‚ เจธเฉเจจเฉ‡เจนเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจธ เจ•เจคเจพเจฐ เจตเจฟเฉฑเจš เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ

เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจธเจฟเจ–เจฐ 'เจคเฉ‡ เจšเฉฑเจฒเจฆเจพ เจนเฉˆ TCP / IP.

เจ…เจฐเจฒเจพเจ‚เจ— เจฌเจพเจฐเฉ‡ เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš

เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเจพ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก 'เจคเฉ‡ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจนเฉˆ GitHub. เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ RabbitMQ-เจธเจฐเจตเจฐ เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡ เจเจฐเจพเจฒเฉฐเจ— เจ…เจคเฉ‡ เจฌเฉ€เจฎเฅค

Erlang เจ•เฉฐเจชเจจเฉ€ เจฆเฉเจ†เจฐเจพ เจตเจฟเจ•เจธเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ Ericsson 1980 เจฆเฉ‡ เจฆเจนเจพเจ•เฉ‡ เจฆเฉ‡ เจฎเฉฑเจง เจตเจฟเฉฑเจš 99,999% เจ…เจชเจŸเจพเจˆเจฎ เจฆเฉ€ เจฒเฉ‹เฉœ เจตเจพเจฒเฉ‡ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจตเจฟเจคเจฐเจฟเจค, เจจเฉเจ•เจธ-เจธเจนเจฟเจฃเจธเจผเฉ€เจฒ, เจฐเฉ€เจ…เจฒ-เจŸเจพเจˆเจฎ เจธเจฟเจธเจŸเจฎ เจตเจœเฉ‹เจ‚เฅค Erlang เจตเฉฑเจ–-เจตเฉฑเจ– เจ‰เจฆเจฏเฉ‹เจ—เจพเจ‚ เจ…เจคเฉ‡ เจ†เจงเฉเจจเจฟเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจš เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ WhatsApp. เจคเฉเจธเฉ€เจ‚ เจฒเฉ‡เจ– เจตเจฟเจš เจนเฉ‹เจฐ เจชเฉœเฉเจน เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจตเจŸเจธเจเจช เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ, เจœเจฟเจธ เจจเฉ‚เฉฐ เจซเฉ‡เจธเจฌเฉเฉฑเจ• เจจเฉ‡ $19 เจฌเจฟเจฒเฉ€เจ…เจจ เจตเจฟเฉฑเจš เจ–เจฐเฉ€เจฆเจฟเจ†

RabbitMQ เจฌเจพเจฐเฉ‡ เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš

เจฐเฉˆเจฌเจฟเจŸเจฎเจ•เจฟQ เจ‡เฉฑเจ• เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจฎเฉˆเจธเฉ‡เจœ เจฌเฉเจฐเฉ‹เจ•เจฐ เจนเฉˆเฅค เจ‡เจน เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจฆเฉ‡ เจธเจพเจฐเฉ‡ เจฎเฉ‚เจฒ เจธเจฟเจงเจพเจ‚เจคเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจธเฉฐเจฆเฉ‡เจธเจผเจพเจ‚ เจจเฉ‚เฉฐ เจฐเฉ‚เจŸ เจ•เจฐเจฆเจพ เจนเฉˆ AMQP เจตเจฟเฉฑเจš เจฆเฉฑเจธเจฟเจ† เจ—เจฟเจ† เจนเฉˆ เจจเจฟเจฐเจงเจพเจฐเจจ. RabbitMQ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ…เจคเฉ‡ เจชเฉ‚เจฐเจ• เจ•เจฐเจฆเจพ เจนเฉˆ AMQP.

เจตเจฟเฉฑเจš เจฎเฉˆเจธเฉ‡เจœเจฟเฉฐเจ— เจฎเจพเจกเจฒ เจฆเจพ เจฎเฉเฉฑเจ– เจตเจฟเจšเจพเจฐ RabbitMQ เจ—เฉฑเจฒ เจนเฉˆ producer (เจชเฉเจฐเจ•เจพเจธเจผเจ•) เจ•เจคเจพเจฐ เจตเจฟเฉฑเจš เจธเจฟเฉฑเจงเฉ‡ เจธเฉเจจเฉ‡เจนเฉ‡ เจจเจนเฉ€เจ‚ เจญเฉ‡เจœเจฆเจพเฅค เจตเจพเจธเจคเจต เจตเจฟเฉฑเจš, เจ…เจคเฉ‡ เจ…เจ•เจธเจฐ, เจชเฉเจฐเจ•เจพเจธเจผเจ• เจจเฉ‚เฉฐ เจ‡เจน เจตเฉ€ เจจเจนเฉ€เจ‚ เจชเจคเจพ เจนเฉเฉฐเจฆเจพ เจ•เจฟ เจธเฉเจจเฉ‡เจนเจพ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจ•เจคเจพเจฐ เจตเจฟเฉฑเจš เจกเจฟเจฒเฉ€เจตเจฐ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ เจœเจพเจ‚ เจจเจนเฉ€เจ‚เฅค

เจ‡เจธ เจฆเฉ€ เจฌเจœเจพเจ, เจชเฉเจฐเจ•เจพเจธเจผเจ• เจ•เฉ‡เจตเจฒ เจเจ•เจธเจšเฉ‡เจ‚เจœ เจจเฉ‚เฉฐ เจธเฉฐเจฆเฉ‡เจธเจผ เจญเฉ‡เจœ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• เจชเจพเจธเฉ‡, เจเจ•เจธเจšเฉ‡เจ‚เจœ เจชเฉเจฐเจ•เจพเจธเจผเจ•เจพเจ‚ เจคเฉ‹เจ‚ เจธเฉฐเจฆเฉ‡เจธเจผ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจฆเฉ‚เจœเฉ‡ เจชเจพเจธเฉ‡, เจ‡เจน เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจคเจพเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจญเฉ‡เจœเจฆเจพ เจนเฉˆเฅค เจเจ•เจธเจšเฉ‡เจ‚เจœ เจจเฉ‚เฉฐ เจชเจคเจพ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‰เจธ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจนเฉ‹เจฃ เจตเจพเจฒเฉ‡ เจธเฉฐเจฆเฉ‡เจธเจผ เจจเจพเจฒ เจ•เฉ€ เจ•เจฐเจจเจพ เจนเฉˆเฅค เจ•เฉ€ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ–เจพเจธ เจ•เจคเจพเจฐ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฟเจ† เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ? เจ•เฉ€ เจ‡เจธ เจจเฉ‚เฉฐ เจ•เจˆ เจ•เจคเจพเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฟเจ† เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ? เจœเจพเจ‚ เจธเฉฐเจฆเฉ‡เจธเจผ เจจเฉ‚เฉฐ เจจเจœเจผเจฐเจ…เฉฐเจฆเจพเจœเจผ เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

RabbitMQ. เจญเจพเจ— 1. เจœเจพเจฃ-เจชเจ›เจพเจฃเฅค เจ…เจฐเจฒเจพเจ‚เจ—, AMQP

เจธเฉฐเจ–เฉ‡เจช เจ•เฉฐเจฎ RabbitMQ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ‡ เจ…เจจเฉเจธเจพเจฐ เจตเจฐเจฃเจจ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ:

  1. เจชเฉเจฐเจ•เจพเจธเจผเจ• เจ•เจฟเจธเฉ‡ เจ–เจพเจธ เจเจ•เจธเจšเฉ‡เจ‚เจœ เจจเฉ‚เฉฐ เจธเฉเจจเฉ‡เจนเจพ เจญเฉ‡เจœเจฆเจพ เจนเฉˆ
  2. เจ‡เฉฑเจ• เจเจ•เจธเจšเฉ‡เจ‚เจœ, เจ‡เฉฑเจ• เจธเฉเจจเฉ‡เจนเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ‡เจธเจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ‡ เจ…เจคเฉ‡ เจ•เจคเจพเจฐ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ เจฌเจพเจˆเจกเจฟเฉฐเจ— เจจเจฟเจฏเจฎเจพเจ‚ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจ‡เฉฑเจ• เจœเจพเจ‚ เจ‡เฉฑเจ• เจคเฉ‹เจ‚ เจตเฉฑเจง เจ•เจคเจพเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจญเฉ‡เจœเจฆเจพ เจนเฉˆ
  3. เจ•เจคเจพเจฐ เจ‡เจธ เจธเฉเจจเฉ‡เจนเฉ‡ เจฆเจพ เจนเจตเจพเจฒเจพ เจธเจŸเฉ‹เจฐ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค เจธเฉเจจเฉ‡เจนเจพ เจ–เฉเจฆ RAM เจœเจพเจ‚ เจกเจฟเจธเจ• 'เจคเฉ‡ เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ
  4. เจ‡เฉฑเจ• เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ•เจคเจพเจฐ เจคเฉ‹เจ‚ เจธเฉเจจเฉ‡เจนเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจคเจฟเจ†เจฐ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจธเจฐเจตเจฐ เจ‡เฉฑเจ• เจฒเจฟเฉฐเจ• เจฐเจพเจนเฉ€เจ‚ เจธเฉฐเจฆเฉ‡เจธเจผ เจฆเฉ€ เจ‡เฉฑเจ• เจ•เจพเจชเฉ€ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจญเฉ‡เจœเจฆเจพ เจนเฉˆ
  5. เจ–เจชเจคเจ•เจพเจฐ เจธเฉเจจเฉ‡เจนเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจฆเจฒเจพเจฒ เจจเฉ‚เฉฐ เจชเฉเจธเจผเจŸเฉ€ เจญเฉ‡เจœเจฆเจพ เจนเฉˆ
  6. เจฌเฉเจฐเฉ‹เจ•เจฐ, เจชเฉเจธเจผเจŸเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ 'เจคเฉ‡, เจ•เจคเจพเจฐ เจคเฉ‹เจ‚ เจธเฉฐเจฆเฉ‡เจธเจผ เจฆเฉ€ เจ‡เฉฑเจ• เจ•เจพเจชเฉ€ เจจเฉ‚เฉฐ เจนเจŸเจพ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจซเจฟเจฐ RAM เจ…เจคเฉ‡ เจกเจฟเจธเจ• เจคเฉ‹เจ‚ เจนเจŸเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ

เจธเฉ€.เจชเฉ€.เจ†เจฐ.

เจ•เจพเจฐเจœ เจจเฉ‚เฉฐ RPC (เจฐเจฟเจฎเฉ‹เจŸ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจพเจฒ) เจจเจฟเจŠเจ•เจฒเฉ€เจ…เจธ เจฆเฉ‡ เจจเจพเจฒ เจฒเจ—เจญเจ— เจธเจพเจฐเฉ€เจ†เจ‚ เจชเจฐเจธเจชเจฐ เจ•เฉเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉ‡เจ เจพเจ‚ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ RabbitMQ. เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจจเจพเจฒ เจ—เจพเจนเจ• เจฆเฉ€เจ†เจ‚ เจธเจผเจฐเจคเจพเจ‚ เจฌเจพเจฐเฉ‡ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจšเจฐเจšเจพ RabbitMQ, เจ‡เฉฑเจ• เจ–เจพเจธ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ RPC. เจ‡เฉฑเจ• เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจ‡เจน เจ•เฉเจฐเจฎ เจชเฉ‚เจฐเจพ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, RabbitMQ เจ—เจพเจนเจ• เจคเฉ‹เจ‚ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจธเจตเฉ€เจ•เจพเจฐ เจ•เจฐเจจ เจฒเจˆ เจคเจฟเจ†เจฐ เจนเฉ‹เจตเฉ‡เจ—เจพ:

RabbitMQ. เจญเจพเจ— 1. เจœเจพเจฃ-เจชเจ›เจพเจฃเฅค เจ…เจฐเจฒเจพเจ‚เจ—, AMQP

เจธเจชเฉˆเจธเฉ€เจซเจฟเจ•เฉ‡เจธเจผเจจ 'เจš เจตเฉ€ AMQP เจ•เจฒเจพเจ‡เฉฐเจŸ เจ…เจคเฉ‡ เจธเจฐเจตเจฐ เจฆเฉ‹เจตเฉ‡เจ‚ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจœเจพเจฐเฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจ‡เจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจ•เจฒเจพเจ‡เฉฐเจŸ เจธเจฐเจตเจฐ เจจเจพเจฒ เจธเฉฐเจšเจพเจฐ เจ•เจฐเจจ เจฆเฉ€ เจ‰เจกเฉ€เจ• เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆเฅค เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจ•เจฒเจพเจธเจพเจ‚ เจ…เจคเฉ‡ เจขเฉฐเจ— เจนเจจเฅค เจ‰เจฆเจพเจนเจฐเจฃ เจฒเจˆ, Connection.Start - เจตเจฟเจงเฉ€ เจ•เจพเจฒ Start เจ•เจฒเจพเจธ Connection.

เจ•เจจเฉˆเจ•เจธเจผเจจ เจ…เจคเฉ‡ เจšเฉˆเจจเจฒ

เจ•เจฒเจพเจ‡เฉฐเจŸ เจ…เจคเฉ‡ เจธเจฐเจตเจฐ เจตเจฟเจšเจ•เจพเจฐ เจ…เจœเจฟเจนเฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฆเฉ‡ เจ†เจฆเจพเจจ-เจชเฉเจฐเจฆเจพเจจ เจฒเจˆ, เจšเฉˆเจจเจฒ. เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจšเฉˆเจจเจฒ เจฌเจฃเจพเจ เจ—เจ เจนเจจ เจ–เจพเจธ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ. เจนเจฐเฉ‡เจ• เจšเฉˆเจจเจฒ เจจเฉ‚เฉฐ เจฆเฉ‚เจœเฉ‡ เจšเฉˆเจจเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจตเฉฑเจ– เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจธเจฎเจ•เจพเจฒเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจ…เจ—เจฒเฉ€ เจ•เจฎเจพเจ‚เจก เจจเฉ‚เฉฐ เจ‰เจฆเฉ‹เจ‚ เจคเฉฑเจ• เจšเจฒเจพเจ‰เจฃเจพ เจธเฉฐเจญเจต เจจเจนเฉ€เจ‚ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจœเจตเจพเจฌ เจชเฉเจฐเจพเจชเจค เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพเฅค

เจธเจฎเจพเจจเจพเจ‚เจคเจฐ เจตเจฟเฉฑเจš เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจญเฉ‡เจœเจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เจˆ เจšเฉˆเจจเจฒ เจ–เฉ‹เจฒเฉเจนเจฃเฉ‡ เจชเฉˆเจฃเจ—เฉ‡เฅค เจนเจฐ เจšเฉˆเจจเจฒ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ Erlang เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ‡เฉฑเจ• เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจตเจฟเฉฑเจš เจ•เจˆ เจšเฉˆเจจเจฒ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจ (เจฎเจฒเจŸเฉ€เจชเจฒเฉˆเจ•เจธเจฟเฉฐเจ—). เจนเจฐเฉ‡เจ• เจšเฉˆเจจเจฒ เจฒเจˆ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจฟเฉฑเจš เจ•เฉเจ เจขเจพเจ‚เจšเฉ‡ เจ…เจคเฉ‡ เจตเจธเจคเฉ‚เจ†เจ‚ เจนเฉเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจ‡เจธ เจฒเจˆ, เจ‡เฉฑเจ• เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจœเจฟเฉฐเจจเฉ‡ เจœเจผเจฟเจ†เจฆเจพ เจšเฉˆเจจเจฒ เจนเจจ, RabbitMQ เจตเจงเฉ‡เจฐเฉ‡ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจฐเจคเจฆเจพ เจนเฉˆ เจ…เจœเจฟเจนเฉ‡ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจจ เจฒเจˆ.

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 เจœเฉ‹ เจ•เจฟ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจฆเจพ เจฒเจพเจ—เฉ‚เจ•เจฐเจจ เจนเฉˆ เจเจฎเจ•เจฟTเจŸเฉ€ เจ˜เฉฑเจŸ-เจธเจชเฉ€เจก, เจ‰เฉฑเจš-เจฒเฉ‡เจŸเฉˆเจ‚เจธเฉ€ เจตเจพเจคเจพเจตเจฐเจฃเจพเจ‚ เจตเจฟเฉฑเจš เจธเฉˆเจ‚เจธเจฐ เจ…เจคเฉ‡ เจธเจฐเจตเจฐ เจตเจฟเจšเจ•เจพเจฐ เจกเฉ‡เจŸเจพ เจธเฉฐเจšเจพเจฐเจฟเจค เจ•เจฐเจจ เจฒเจˆ (เจธเจฎเจฐเจฅเจฟเจค เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจฆเฉ€ เจชเฉ‚เจฐเฉ€ เจธเฉ‚เจšเฉ€ เจ‡เฉฑเจฅเฉ‡ เจฆเจฟเฉฑเจคเฉ€ เจ—เจˆ เจนเฉˆ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ€ เจตเฉˆเฉฑเจฌเจธเจพเจˆเจŸ).

เจ…เจ—เจฒเฉ‡ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจเจ•เจธเจšเฉ‡เจ‚เจœ เจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจธเจฎเจเจฃเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

เจนเจตเจพเจฒเฉ‡

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹