Pull to refresh
0
0
Андрей @Enmity

Разработчик

Send message
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 объяснена выше. Сервер ловит пакет от клиента, и в виде респонса на этот пакет рассылает, в зависимости от типа чата, получателям сообщения. Чтоб не быть голословным:
скрин с идеи
image.

Так выглядят примерно 90% эмулей л2, если не заводить речь о совсем уж приватных решениях, напиленных с нуля.

ps: я не очень силён в вопросах залива пикч на хабр, если тут привыкли использовать исключительно habrastorage — заранее сорян, залил на свой сервак.

К сожалению (говорю как близкий к этому делу человек), вынос чата в отдельный сервер не всегда имеет смысл.

За пример возьмём ту же л2, на ней проще всего объяснить. В л2 существуют несколько пакетов для работы с чатом, которые отсылаются прямо в персонажа, а не в зону. Т.е, к примеру, если мы используем обычный, не глобальный чат, то получателям в фиксированном радиусе от персонажа сервер отсылает пакеты состоящие из типа чата и текста. Если глобальный, то мы отсылаем всем чарам в онлайне. Если партийный, то очевидно, всем персонажам в группе.

Вопрос: зачем городить огород и выкидывать чат в микросервис, когда в целом чат можно написать за пару часов, и он не будет нагружать примерно ничего? Опять же, это очень сильно зависит от проекта, архитектуры, онлайна игры, количества общающихся в чате (на дворе не 2004, войсчаты во всех минимально стабильных составах игроков давно присутствуют) и общей специфики чата, но… это какого унылого качества должен быть код, чтоб чат хоть как-то грузил машину (вопрос о масштабируемости)? А насчёт задержки — иногда задержка между сервером и клиентом выше. Та же л2 играбельна даже при пинге в 80мс.

Борьба с ветряными мельницами, имхо.
Просто нужно было обозвать письмо как «Ключи шифрования Telegram». Сразу бы открыли и прочитали.
если попытаться понять-посчитать к чему за свою жизнь в л2деве Альф приложил руку, можно немного свихнуться.
а про тернарные условия все забыли :<

for(int i=1; i<=100;i++) {System.out.println(i % 5 == 0 && i % 3 == 0 ? "MissKiss" : i % 5 == 0 ? "Kiss" : i % 3 == 0 ? "Miss" : i);}

Information

Rating
Does not participate
Date of birth
Registered
Activity