Лучшая архитектура БД для поддержки / обновления счетчиков практически в реальном времени - PullRequest
0 голосов
/ 26 ноября 2018

Я нахожусь в начале проекта, где нам нужно будет управлять почти в реальном времени потоком сообщений, содержащих некоторые идентификаторы (например, идентификатор отправителя, идентификатор получателя и т. Д.).Мы ожидаем пропускную способность около 100 сообщений в секунду.

Что нам нужно сделать, это отслеживать количество раз, когда эти идентификаторы появлялись в определенный период времени (например, в последний час или последний день), и сохранятьэти значения где-то.Мы будем использовать значения, чтобы выполнить некоторый анализ в реальном времени (т. Е. Применить прогнозную модель) и обновлять их при необходимости при анализе сообщений.

Учитывая высокую пропускную способность и необходимость быть в режиме реального времени, какое решение БД будетбыть лучшим выбором?

Я думал о значении ключа в БД памяти, которое будет периодически сохранять данные на диске (например, Redis).

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 26 ноября 2018

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

При этом я бы построил счетчик поверх DynamoDB.Поскольку DynamoDB полностью управляется, вы не несете никакой операционной нагрузки (никаких обновлений сервера баз данных и т. Д.).Он может работать с очень высокой пропускной способностью и имеет задержку в одну цифру в миллисекундах для записи и чтения в одну строку.В AWS даже есть документация, описывающая , как использовать DynamoDB в качестве счетчика .

Я не так хорошо знаком с другими облачными платформами, но вы, вероятно, можете найти что-то в Azure или GCP, которое предлагает аналогичные функции.

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