Как организовать архитектуру проекта?

У меня есть игровой проект в котором сейчас игровые данные и данные сайта находятся в общей базе данных. Игра реалтайм по сокету со своим клиентом. Все общение с данными между сайтом и игрой происходит по средствам запросов базы данных в конкретную таблицу. Мне кажется что это неправильно и что это 2 не зависимых ресурса которые не должны ходить так за данными друг к другу. Я рассматривал вариант перехода на микросервесную архитектуру через JSON API. Хотел уместить все сервисы в один API с публичным и приватным апи. Я уже было взялся делать, но меня оттолкнула необходимость устанавливать каждый раз соединение и необходимость получать данные некоторых таблиц полностью. Придумывать свою сокетную прослойку? Подскажите, как решаются такие проблемы?
  • Вопрос задан
  • 275 просмотров
Пригласить эксперта
Ответы на вопрос 1
@arezvov
Все общение с данными между сайтом и игрой происходит по средствам запросов базы данных в конкретную таблицу. Мне кажется что это неправильно и что это 2 не зависимых ресурса которые не должны ходить так за данными друг к другу.

Обмен данными через БД - плохая идея, верно.
Обычно выделяют API сервис (в тренде RESTful), который раздает данные, это может быть третий сервис в вашем случае или можете возложить это на одно из имеющихся сервисов.
Я уже было взялся делать, но меня оттолкнула необходимость устанавливать каждый раз соединение и необходимость получать данные некоторых таблиц полностью.

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

микросервесную архитектуру

Микросервисы - это нечто иное, скорее всего они вам пока еще не нужны, хороший комментарий:
https://habrahabr.ru/post/249183/#comment_8256405
"В такой формулировке вопроса — скорее никак. Микросервисы — это про частные решения небольших частных проблем наиболее подходящими для этим проблем способами. Чем более общий вопрос — тем хуже он решается микросервисами. Если ставить вопрос «у меня куча данных, как их распихать по микросервисам», то ответ будет «никак, пихай в одну обычную реляционную субд»."
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы