@vGrabko99
html, css, js, php, golang, mysql

Какую субд выбрать для моего сервиса?

Привет. Я делаю игрушку с помощью архитектуры микросервисов.
Есть у меня сервис auth (с названия понятно за что он отвечает)
сейчас у него своя mysql база (как и у каждого сервиса)
Задачи к этому сервису такие
- хранение связки логин/пароль/e-mail/date_reg
- проверка авторизации и запись в какое то быстрое key - value хранилище формата
[token] - [json data user]
- регистрация
- система бана

Помогите выбрать в этом зоопарке самое подходящее key - value хранилище (на нём будет огромная нагрузка. К нему будут подключатся другие сервисы где нужна авторизация)
Также нужна SQl база данных которую можно легко маштабировать
которая может хранить хоть петабайты данных
нужна надёжность хранения данных (производительность не очень важна)
Всем спасибо.
  • Вопрос задан
  • 814 просмотров
Решения вопроса 4
mahoho
@mahoho
Full stack certified PHP developer.
Используйте ту базу, в которой вы и ваш DBA лучше разбираетесь. Можно взять омега навороченную СУБД и из-за ее непонимания деталей и тонкостей ее настроек и просто работы понаделывать делов.
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
SQL база - Postgres, насчет Петабайт не уверен, но когда до этого дойдет - нанятый тимлид перестроит

а вот с Key-Value хз, обычно начинают с Mongo и не парятся, но можно какой-нибудь arangodb заюзать, типа не как все

кстати Json поддерживает и Postgres и MySQL уже, если обязательно нужно две базы - может, имеет смысл заюзать Мускуль? Говорят, данные посохраннее
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
по авторизации мы можем использовать JWT и уменьшить нагрузку на базу (для верификации токена не нужна база и не нужно этот токен нигде хранить, очень удобно).

Для всего остального и mysql справится если индексы расставить и возможно партицирование таблиц в далеком будущем (не ближайший год).

К нему будут подключатся другие сервисы где нужна авторизация

А зачем им то подключаться? вы ж микросервисы ваяете, вам zeromq надо а не давать доступы к key-value хранилищам которые использует сервис авторизации. Так вы создательно усложняете последующее масштабирование этой части системы.

хоть петабайты данных

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

В целом... мне кажется что вы слишком много-го ждете от своего проекта. С учетом характера вопроса и того где вы его задаете вам хватит и mysql. Все остальное решит ваша команда разработчиков.
Ответ написан
@kshvakov
Оставьте как есть

с петабайтами ниодна СУБД сама несмаштабируется, когда к 100 гб подойдете можно будет смотреть что будет дальше и на сколько рост, вполне себе его может и не быть, так что сейчас об этом думать не стоит

key - value хранилище

Зачем ? Если действительно "парит" нагрузка - сделайте кэширование в memcache
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы