Эффективная архитектура / инструменты для реализации асинхронного веб-API - PullRequest
0 голосов
/ 25 декабря 2018

Рассмотрим управляемое событиями веб-приложение на основе микросервиса, которое должно иметь некоторые асинхронные веб-API.AFAIK предлагаемый способ достижения асинхронного http-запроса / ответа - отвечать на каждый вызов API с помощью, скажем, 202 Accepted кода состояния и заголовка местоположения, чтобы позволить вызывающей стороне получать результаты позже.

Таким образом, мы должныгенерируйте уникальный идентификатор (например, uuid или guid) для каждого запроса и сохраняйте идентификатор и все связанные события в будущем в постоянном хранилище, чтобы вызывающая сторона API могла отслеживать ход выполнения своего запроса.

Мой вопрос - как реализовать этот уровень API, учитывая, что у нас может быть десятки или сотни тысяч запросов и ответов в секунду.Какова наиболее эффективная архитектура и инструменты для создания такого API с такой нагрузкой?

Одним из способов может быть сохранение всех запросов и всех связанных событий как в базе данных, так и в кеше, таком как redis (только в течение определенного ограниченного временикак 30 минут).Есть ли лучший шаблон / архитектура / инструменты?Как крупные компании и сайты решили эту проблему?Какая база данных может быть лучше для этого сценария?(MongoDB, MySQL, ...)

Я очень ценю любой полезный ответ, особенно если у вас есть некоторый опыт производства.

1 Ответ

0 голосов
/ 26 декабря 2018

очень правильный вопрос!С точки зрения архитектуры или инструментов вы должны проверить zipkin , которая является открытой распределенной системой трассировки, проверенной и проверенной Twitter, и особенно если у вас есть микросервисная архитектура, это действительнополезно отслеживать все ваши запросы / ответы.Он также включает в себя параметры хранения, такие как in-memory, JDBC (mysql), Cassandra и Elasticsearch.

Если вы используете подпружиненную загрузку для своих микросервисов, то она легко подключается.
Даже если вы этого не делаетеЗипкин полностью убежден, что архитектура стоит того, чтобы ее изучить.Из производственного опыта я использовал его, и это было действительно полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...