Обновить

Комментарии 2

Здравствуйте!

Подскажите пожалуйста, какую проблему Вы решаете? Хотелось бы уловить суть дизайна без прочтения Ваших предыдущих статей. Ещё вопрос -- поддерживает ли универсальный сервис шардирования решардинг?

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

И касательно решардинга, это в общем-то продолжение ответа на первый вопрос.
Если коротко, то сейчас нет, но этот функционал закладывался на этапе проектирования сервиса универсального шардирования, но не реализовывался. Как раз за счет централизации конфигурации, в шардируемых сервисах можно будет добавлять поддержку миграции сущностей между шардами. Описываемый универсальный сервис - это реестр, где искать данные. В этом плане удобно, что мигрирующие сущности можно модифицировать в реестре и сообщать всем клиентам, что информация лежит в шарде А, но сейчас осуществляется переезд в Б. Сам же шард А всегда может сообщать каким-нибудь http кодом, что эта сущность переехала (не важно, инвалидацией кеша информации о шарде сущности или же через редирект). Т.е. для пользователя будет в худшем случае чуть больше время запроса на время миграции.
Сейчас этим заниматься не вижу смысла. Если коротко, то вот такие есть домены:

HQ-account
HQ-wallet
Node-wallet
Node-balance
Node-contract
Node-contract-history
Node-debt

При этом решардинг не нужен только для контрактов - потому что каждый новый контракт (считай платеж) всегда попадает в рандомный шард и горячих шардов в принципе возникнуть не может, кроме случаев, когда все они такими станут одновременно. Так что статья по этому вопросу будет, но не сейчас - есть более приоритетные задачи.

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации