NATS Subject

В NATS “subject” — это строка, которую издатель и подписчик используют, чтобы находить друг друга. Она выступает в роли именования канала связи, на который подписчики могут получать сообщения, а издатели — публиковать.

Основные моменты:

  • Именование: Может называться как subjects, topics или channels в разных системах.
  • Адресация и безопасность: Subjects в NATS обеспечивают адресацию, поддержку иерархий, фильтрацию и безопасность сообщений.
  • Отбрасывание: Сообщения без подписчиков для их subject автоматически отбрасываются.
graph LR
    A[PUB time.us] -->|msg| B((nats-server))
    B -->|msg| C[SUB time.us]
    B -->|msg| D[SUB time.us]

Использование Wildcards в Названиях Тем

В NATS можно использовать два типа wildcards в названиях тем:

  • * (звёздочка) — соответствует одному токену. Например, подписка на time.*.east будет получать сообщения из time.us.east и time.eu.east.

  • > (больше) — соответствует одному или нескольким токенам и может использоваться только в конце. Например, time.us.> подберёт time.us.east и time.us.east.atlanta.

Wildcards позволяют подписчикам эффективно слушать несколько тем с одной подпиской.