Я ищу сеть серверов bukkit, которые все работают под единым игровым модом, обеспечивающим межсерверную связь. Обычный способ сделать это - использовать базу данных MySQL и периодически (5 секунд или около того) извлекать все серверы из базы данных, чтобы поддерживать все серверы в актуальном состоянии. Мне интересно, есть ли лучший способ сделать это.
У меня есть идея, но я недостаточно разбираюсь в сетях, чтобы понять, осуществима ли она. Я рассматриваю возможность запуска игрового мода под собственным Java-сервером (далее именуемым сервером модов и не связанным с bukkit). Сервер модов будет иметь все данные, связанные с модом, и он будет отвечать за выполнение всех вычислений, связанных с модом (обработка денежных транзакций, добавление и удаление заявленных земель, а также работа с налоговым циклом). Все bukkit-серверы взаимодействуют с мод-сервером всякий раз, когда ему нужно определить, например, может ли игрок сломать блок или причинить вред другому игроку. Все изменения данных мода производятся на сервере мода. Серверы bukkit — это, по сути, просто порталы для взаимодействия с сервером модов. Пока мод-сервер является однопоточным, не должно быть проблем с параллелизмом, условий гонки или конфликтов.
Я читал вызов удаленного метода и подумал, что, возможно, это был способ добиться этого. Сервер модов будет считаться сервером RMI, а клиенты будут серверами Bukkit. Я прочитал документацию по сокетам Java, но не уверен что это то, что я ищу. Мне трудно гуглить, потому что это всего лишь концепция, для которой я не знаю всех технических терминов. Любые идеи или предложения? Спасибо.
synchronized
или не используетеsynchronized
блоки самостоятельно. - person user207421   schedule 31.07.2014