Nats
Nats#
Nats Core#
Нужно дописывать это решение под себя, так как это только core
Nats - Jetstream#
По факту используется большинством, для запуска требуется 2+ реплики
Stream#
Создается stream
Создаешь топики
Выбираешь тип хранения данных
- В памяти
- На диске
Указываешь ретеншн полики
- По времени сообщения
- По количеству общих сообщений
- По общему количеству байт
Consumers#
Создается consumer
Выбираешь паттерн взаимодействия
Pub / Sub
- Идет разделение между отправителем и получателем.
Отправитель может не знать кто получатель.
И более того, отправитель после отправки и получения АСК, не ждёт ничего.
- Плюсы
- Независимостб
- Масштабируемость
- Гибкость
- Плюсы
- Идет разделение между отправителем и получателем.
Отправитель может не знать кто получатель.
И более того, отправитель после отправки и получения АСК, не ждёт ничего.
Request / Reply
- Клиент отправляет запрос в котором есть пометка “ответить клиенту” и ждёт ответа от сервиса.
- Плюсы
- Синхронность операций
- Прямая обработка ответов
- Простота
- Скорость
- Плюсы
- Клиент отправляет запрос в котором есть пометка “ответить клиенту” и ждёт ответа от сервиса.
Queuing
- По сути это Loadbalancing только бэкэндом выступает очередь в которую входит группа из получателей.
- Плюсы
- Высокая отказоустойчивость
- Оптимальное использование ресурсов
- Равномерная нагрузка на каждый сервис
- Плюсы
- По сути это Loadbalancing только бэкэндом выступает очередь в которую входит группа из получателей.
Выбираешь паттерн доставки
- Push_Based Consumer
- Натс пушит сообщения как только они становятся доступными для отправки
- Pub_Sub
- Request / Reply
- Queuing
- Натс пушит сообщения как только они становятся доступными для отправки
- Pull_Based Consumer
- Consumer сам запрашивает сообщения когда это ему становится нужным
- Pub_Sub
- Queuing
- Consumer сам запрашивает сообщения когда это ему становится нужным
- Push_Based Consumer
Read other posts