Даниил Берендеев
инженер по разработке и сопровождению @ Райффайзен банк
Санкт-Петербург

Обратный роутинг в микросервисах

  • Категории: Разработка
  • Секции: Python

Описание:

Наш корпоративный чат-бот построен на микросервисной архитектуре и активно взаимодействует с клиентами через чат. В ходе разработки мы столкнулись с нетривиальной задачей: нам нужно было не только получать входящие сообщения, отправляя их в MQ (RabbitMQ) для обработки DS-ядром, но и правильно маршрутизировать ответы обратно в нужный процесс.

Ключевая сложность — долгоживущий процесс внутри микросервиса, который собирает сообщения в обоих направлениях:

— От клиента — для корректной обработки фраз, составленных из нескольких сообщений («привет», «как», «дела»).

— К клиенту — для реагирования на срочные и несрочные обращения, а также для обработки сообщений с запросом на оценку сервиса.

В условиях распределенной системы на Kubernetes процессы могут находиться на разных серверах (нодах), что делает задачу обратной маршрутизации особенно сложной. Как доставить ответ в тот же процесс, который отправил запрос, если сервисы динамически масштабируются и мигрируют между узлами?

Ранее наши коллеги рассказывали, как маршрутизация устроена в чат-системах (https://speakerdeck.com/xfenix/dvustoronnii-websocket-routingh). В этом докладе мы поделимся нашим опытом:

— Как мы решали проблему обратного роутинга в микросервисной среде.

— Как эволюционировали наши архитектурные решения и какие ошибки мы допустили.

— Какие существуют методы решения проблемы обратной маршрутизации (название придумали сами, так как тема ранее не была освещена).

Если вы работаете с микросервисами, распределенными системами и очередями сообщений — этот доклад поможет вам избежать наших ошибок и выбрать эффективные архитектурные паттерны для двустороннего роутинга.

О спикере

Даниил Берендеев

инженер по разработке и сопровождению @ Райффайзен банк
Санкт-Петербург

Пишу на Python уже 5 лет, люблю изучать как всё устроено и работает. Обожаю путешествия и уазики, увлекаюсь спортивной стрельбой.

Похожие доклады