Вопрос разработки: Разработка отказоустойчивой (ведущей-ведомой) системы: источник монго и пункт назначения Кассандра или Монго или Кафка - PullRequest
0 голосов
/ 13 марта 2019

Дизайн вопрос: Для разработки-создания масштабируемой и отказоустойчивой базы данных временных рядов.

Технология используется: Монго, Кафка, Кассандра, Ява, Spring Boot

1) Мы создаем базу данных временных рядов и ожидаем около 4-5 миллионов сообщений в день (с экспоненциальным ростом), поскольку на сегодняшний день для каждого варианта использования мы открываем несколько потоков изменений Mongo в различных коллекциях (может быть одни и те же или разные базы данных) и захватывать вставки и обновлять из исходного потока базы данных Mongo, а затем сохранять / публиковать данные в месте назначения, которое настраивается и может быть Mongo или Cassandra или Kafka.

2) В конфигурационном файле Spring мы предоставляем подробную информацию об исходной базе данных и коллекциях, а в случае назначения у пользователя есть выбор: Монго Коллекция Стол Кассандры Кафка Тема.

3) Используя код Spring + Java, мы извлекаем информацию об источнике и месте назначения из файла конфигурации и порождаем поток для каждой коллекции.

4) Мы используем реактивную среду для нашей структуры подписчик - издатель.

5) Мы запустили эту службу и теперь хотим, чтобы она была масштабируемой и отказоустойчивой.

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

PS: порядок сообщений, полученных от источника назначения, должен быть сохранен.

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