Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Как сделать что бы информация была всегда актуальна на разных серверах

Метки:
Теги Теги
bungeecord java server

Cristalix

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Test
Здравствуйте. Появился вопрос. У меня есть несколько bukkit серверов и bungeecord. Все они берут данные из одной единой базы. Данные которые используют сервера может изменяться в любой момент из любого места. И как только она измениться bukkit сервера и bungeecord в зависимости от новых данных в базе данных должны работать по другому. Вопрос каким образом можно сделать что бы при изменений в базе данных записи она сразу же обновлялась на всех серверах? И да, количество данных очень большое и хранить их в в кеше все время не вариант. Так же нужно что бы получить новую актуальную информацию можно было в кратчайшие сроки(что бы запрос в бд допустим не занимал более секунды).
 
Здравствуйте. Появился вопрос. У меня есть несколько bukkit серверов и bungeecord. Все они берут данные из одной единой базы. Данные которые используют сервера может изменяться в любой момент из любого места. И как только она измениться bukkit сервера и bungeecord в зависимости от новых данных в базе данных должны работать по другому. Вопрос каким образом можно сделать что бы при изменений в базе данных записи она сразу же обновлялась на всех серверах? И да, количество данных очень большое и хранить их в в кеше все время не вариант. Так же нужно что бы получить новую актуальную информацию можно было в кратчайшие сроки(что бы запрос в бд допустим не занимал более секунды).
Даже интересно, насколько "количество данных очень большое"
 
Не особо понятно, что вы собираетесь синхронизировать и "держать в актуальном состоянии". Если требуется высокопроизводительная БД для обмена данными в виде JSON - то вам к Redis, если нет - MariaDB.

Чтобы данные были одни и те же в актуальном состоянии на каждом сервере, достаточно подключить их к одной БД. При этом (если изменения выполняются вручную) мб будет требоваться "пинать" сервер с BungeeCord, условно, ping запросом, чтобы они получили актуальные данные из БД или задавать интервал синхронизации с БД (в этом случае получать измененные данные в ту же секунду не получится).
 
Не особо понятно, что вы собираетесь синхронизировать и "держать в актуальном состоянии". Если требуется высокопроизводительная БД для обмена данными в виде JSON - то вам к Redis, если нет - MariaDB.

Чтобы данные были одни и те же в актуальном состоянии на каждом сервере, достаточно подключить их к одной БД. При этом (если изменения выполняются вручную) мб будет требоваться "пинать" сервер с BungeeCord, условно, ping запросом, чтобы они получили актуальные данные из БД или задавать интервал синхронизации с БД (в этом случае получать измененные данные в ту же секунду не получится).
Можете ли вы объяснить, почему именно Redis или же MariaDb? Чем они хороши и в каких случаях?
 
MariaDB - просто форк MySQL с кучей оптимизации, но без поддержки JSON(пока)
 
Можете ли вы объяснить, почему именно Redis или же MariaDb? Чем они хороши и в каких случаях?
Redis сама по себе как разработка является высокоскоростной базой данных, предназначенной для, кратко говоря, обмена ключей. Ключ представляет собой данные в JSON формате, что позволяет в одном ключе хранить несколько значений.

Если требуется связать несколько серверов, которые находятся на разных машинах, то Redis использовать нецелесообразно. Поскольку он является высокоскоростным, то и брутоспособен он на столько же. Соответственно, лучше не давать ему выходить в сеть и биндить по локальному адресу.

https://ru.wikipedia.org/wiki/Redis
https://aws.amazon.com/ru/redis/

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

Поделиться этой страницей

Назад
Верх