Базы Данных — Способы Управления Данными Для Множества Микросервисов, Обслуживающих Множество Клиентов.

  • Автор темы Lgj430skestSoky
  • Обновлено
  • 20, Oct 2024
  • #1

Учитывая (в будущем, не в настоящее время):

  • 100 мультитенантных микросервисов
  • 5000 клиентов (или арендаторов)
  • каждый микросервис должен иметь возможность хранить данные каждого арендатора
  • данные управляются в реляционных базах данных, поскольку требуются транзакции ACID (по каким-либо причинам)
    • Я полностью осознаю ограничение масштабирования таких баз данных. Предположим, что за арендатора объем данных, а также интенсивность запросов не требуют дополнительных требований к масштабированию.
  • Облако Azure (это то, что есть :-()

Из них я делаю следующие выводы:

  1. База данных на одного арендатора.

    Хотя мы предполагаем, что за арендатора объем данных и интенсивность запросов не гарантируют расширенного масштабирования, если в одну базу данных «вставлено» более одного арендатора, это предположение может больше не соответствовать действительности.

  2. N баз данных на сервер БД

    Теоретически серверы БД могут содержать тысячи баз данных. Однако мы хотим минимизировать количество сбитых арендаторов, если «пригодность наступит». Следовательно, N не будет тысячами. Но, наверное, десятки.

  3. Каждый сервер БД имеет выделенное развертывание микросервиса, связанное только с ним.

    Таким образом, сервер БД Х может обслуживать запросы от микросервиса А версии 1 и сервер БД Да может обслуживать запросы от микросервиса А версии 2. Схема БД в этих версиях может отличаться.

Таким образом, эти выводы приводят к множеству вопросов:

  1. Что такое Н?
    • 50 ?
    • 100 ?
  2. Какую базу данных использовать?
    • База данных Azure для PostgreSQL
    • База данных Azure для MySQL
    • База данных SQL Azure
  3. Серверы БД 5000/N для охвата всех клиентов одного микросервиса. Для 100 микросервисов это дает 500 000/N серверов БД. Например.:
    • N = 50 --> 10 000 серверов БД (развертываний)
    • N = 100 --> 5000 серверов БД (развертываний)

Это множество серверов БД и множество развертываний микросервисов. Предположим, для каждого развертывания требуется 2 узла веб-сервера. Это означает 20 000 (или 10 000) узлов веб-сервера! При добавлении геоизбыточности это означает удвоение количества узлов веб-серверов, а также серверов БД (чтобы иметь возможность переключения в другой регион). Это сумасшедшее количество серверов БД и узлов веб-серверов.

Я ошибаюсь в корне в некоторых своих предположениях? Что мне не хватает?

#базы данных #микросервисы #мультиарендность

Lgj430skestSoky


Рег
16 Apr, 2006

Тем
72

Постов
199

Баллов
599
Тем
403,760
Комментарии
400,028
Опыт
2,418,908