Coconote
AI notes
AI voice & video notes
Export note
Try for free
Способ общения микросервисов для самых маленьких
Jul 16, 2024
Способ общения микросервисов для самых маленьких
Введение
Лектор: Дмитрий Литвин
В статье обсуждаются различные способы общения микросервисов.
Ссылка на оригинальную статью будет в описании видео.
Мероприятие Avito All Day Long
Организатор: Авито
Дата и место: 20 июля, центр событий РБК, Москва
Программа: доклады, дискуссии, квиз, автопати, демо-станции
Темы: платформенные инструменты, формулировка вопросов, решение конфликтов
Регистрация по ссылке в описании
Микросервисная архитектура
Популярна даже для небольших приложений
Сервисы часто разворачивают в облаках, обмен проходит по сети
Проблемы: доступность, задержки, дублирование пакетов, нагрузка на трафик и память
Задача двух генералов
Иллюстрирует проблему доставки сообщений между микросервисами через сеть
В общем случае, доставка сообщения между двумя сервисами через сеть не решаема
Виды общения микросервисов
Синхронные способы
REST API
Популярное решение для 90% сервисов
Преимущества: минимум библиотек, читабельный формат, легко дебажить
Проблемы: синхронность, прямое обращение, текстовый формат, нет строгой схемы данных
gRPC
Использует бинарный формат protobuf, лучше утилизация трафика
Есть схема данных, поддержка стриминга и back pressure
Подходит для высоких нагрузок, требует дополнительные библиотеки
SOAP
Использует XML, часто встречается в старых системах
Проблемы: сложность формата, многословность, требуются клиентские библиотеки
Асинхронные способы
Мессенджеры (RabbitMQ, ZeroMQ, ActiveMQ)
Асинхронное взаимодействие, могут работать с брокером и без него
Разные варианты: с хранилищем и без, с балансировкой нагрутки и без, текстовые и бинарные
Преимущества: слабая связанность, возможность бродкаста, подтверждение доставки
Стриминг (Kafka)
Работает как мессенджер платформа, сохраняет данные на диск
Преимущества: асинхронность, отказоустойчивость, хорошо работает с большими нагрузками
Проблемы: сложность настройки, задержки в ответах, требует изучения и внимательного подхода
Заключение
Выбор системы зависит от требований к проекту (подтверждение доставки, запись на диск)
Автор призывает делиться своим опытом работы с микросервисами в комментариях
Поддержка канала
Лайки, комментарии, подписка на канал
Поддержка денежными переводами через Boosty и ЮMoney
📄
Full transcript