wkhtmltopdf имеет свойство разваливаться если на вход ему приходит HTML больше чем 50мб. Видел в проде случай когда преобразование 80мб XML в HTML выдало HTML размером в 120мб, который за 20 часов так и не смог перевариться даже скушав 24гб оперативы. В один момент просто умер.
Бегите с этого ужаса. Я перевёл на openhtmltopdf от danfickle (https://github.com/danfickle/openhtmltopdf), скорость увеличилась в 200 раз.
Проблемы были, я пытался написать в сэндбокс, но выбор хаба не работал.
Попытка написать в саппорт так же окончилась ничем (ну, или там так и должно быть никакого респонса после нажатия сабмита).
Замечание к первому замечанию — хорошо работает только если чат между игровыми серверами общий (мы же не о физических машинах говорим, верно?). Во всех иных случаях, имхо, смысла не имеет.
Если брать ретейл L2, то мы получим поделенные на сервисы логинсервер, геймсервер, нпцсервер, CacheD, являющийся прослойкой между базой и гсом и сервер коммуникаций (alt+b, community board, темы, клановые борды, етс. что-то вроде внутриигрового форума, который является практически рудиментом, так как им никто не пользуется.). Чат засунут в l2server, т.е в геймсервер.
Если брать эмули, то проект поделен на геймсервер и логинсервер в 99% случаев. Смысла в распиливании на микры нет никакого.
Логика работы чата в л2 объяснена выше. Сервер ловит пакет от клиента, и в виде респонса на этот пакет рассылает, в зависимости от типа чата, получателям сообщения. Чтоб не быть голословным:
скрин с идеи
.
Так выглядят примерно 90% эмулей л2, если не заводить речь о совсем уж приватных решениях, напиленных с нуля.
ps: я не очень силён в вопросах залива пикч на хабр, если тут привыкли использовать исключительно habrastorage — заранее сорян, залил на свой сервак.
К сожалению (говорю как близкий к этому делу человек), вынос чата в отдельный сервер не всегда имеет смысл.
За пример возьмём ту же л2, на ней проще всего объяснить. В л2 существуют несколько пакетов для работы с чатом, которые отсылаются прямо в персонажа, а не в зону. Т.е, к примеру, если мы используем обычный, не глобальный чат, то получателям в фиксированном радиусе от персонажа сервер отсылает пакеты состоящие из типа чата и текста. Если глобальный, то мы отсылаем всем чарам в онлайне. Если партийный, то очевидно, всем персонажам в группе.
Вопрос: зачем городить огород и выкидывать чат в микросервис, когда в целом чат можно написать за пару часов, и он не будет нагружать примерно ничего? Опять же, это очень сильно зависит от проекта, архитектуры, онлайна игры, количества общающихся в чате (на дворе не 2004, войсчаты во всех минимально стабильных составах игроков давно присутствуют) и общей специфики чата, но… это какого унылого качества должен быть код, чтоб чат хоть как-то грузил машину (вопрос о масштабируемости)? А насчёт задержки — иногда задержка между сервером и клиентом выше. Та же л2 играбельна даже при пинге в 80мс.
Бегите с этого ужаса. Я перевёл на openhtmltopdf от danfickle (https://github.com/danfickle/openhtmltopdf), скорость увеличилась в 200 раз.
Возьму на заметку, спасибо.
Попытка написать в саппорт так же окончилась ничем (ну, или там так и должно быть никакого респонса после нажатия сабмита).
Если брать эмули, то проект поделен на геймсервер и логинсервер в 99% случаев. Смысла в распиливании на микры нет никакого.
Логика работы чата в л2 объяснена выше. Сервер ловит пакет от клиента, и в виде респонса на этот пакет рассылает, в зависимости от типа чата, получателям сообщения. Чтоб не быть голословным:
Так выглядят примерно 90% эмулей л2, если не заводить речь о совсем уж приватных решениях, напиленных с нуля.
ps: я не очень силён в вопросах залива пикч на хабр, если тут привыкли использовать исключительно habrastorage — заранее сорян, залил на свой сервак.
За пример возьмём ту же л2, на ней проще всего объяснить. В л2 существуют несколько пакетов для работы с чатом, которые отсылаются прямо в персонажа, а не в зону. Т.е, к примеру, если мы используем обычный, не глобальный чат, то получателям в фиксированном радиусе от персонажа сервер отсылает пакеты состоящие из типа чата и текста. Если глобальный, то мы отсылаем всем чарам в онлайне. Если партийный, то очевидно, всем персонажам в группе.
Вопрос: зачем городить огород и выкидывать чат в микросервис, когда в целом чат можно написать за пару часов, и он не будет нагружать примерно ничего? Опять же, это очень сильно зависит от проекта, архитектуры, онлайна игры, количества общающихся в чате (на дворе не 2004, войсчаты во всех минимально стабильных составах игроков давно присутствуют) и общей специфики чата, но… это какого унылого качества должен быть код, чтоб чат хоть как-то грузил машину (вопрос о масштабируемости)? А насчёт задержки — иногда задержка между сервером и клиентом выше. Та же л2 играбельна даже при пинге в 80мс.
Борьба с ветряными мельницами, имхо.