NATS Consumer

ΠšΠΎΠ½ΡΡŒΡŽΠΌΠ΅Ρ€ (consumer) Π² JetStream β€” это состояниС‑зависимоС «прСдставлСниС» стрима: ΠΎΠ½ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎΠ΅ подмноТСство сообщСний ΠΈΠ· стрима ΠΈ Π²Π΅Π΄Ρ‘Ρ‚ ΡƒΡ‡Ρ‘Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ сообщСния Π±Ρ‹Π»ΠΈ доставлСны ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Ρ‹ (ack), обСспСчивая доставку ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· (at-least-once).

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ ΠΊΠΎΠ½ΡΡŒΡŽΠΌΠ΅Ρ€ΠΎΠ²:

  • По способу получСния сообщСний:

    • Push β€” сСрвСр сам ΠΏΡƒΡˆΠΈΡ‚ сообщСния Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ subject.
    • Pull β€” ΠΊΠ»ΠΈΠ΅Π½Ρ‚ сам Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π±Π°Ρ‚Ρ‡ΠΈ сообщСний ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ готовности.
  • По ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌΡƒ Ρ†ΠΈΠΊΠ»Ρƒ:

    • Durable β€” с ΠΈΠΌΠ΅Π½Π΅ΠΌ, состояниС (offset ΠΈ ΠΏΡ€.) сохраняСтся, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅.
    • Ephemeral β€” Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ, состояниС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² памяти, удаляСтся послС ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° нСактивности.
  • По порядку/Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ:

    • Ordered consumer (упорядочСнный) β€” ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ чтСния:
      • всСгда ephemeral
      • Π±Π΅Π· ack
      • автоматичСский Ρ„Π»ΠΎΡƒβ€‘ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ
      • Π½Π΅Ρ‚ балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.