Alexander
даже если проджойнить с еще парой таблиц
Alexander
Alexander
и типа коннект уже не был открыт в каком-нибудь из соседних запросов?
Alexander
похоже на желание устроить оверхайлоад на ровном месте
Valeriy
А если будет, то лучше сразу сделать, чтобы потом не переделывать
Valeriy
Тем более, что делается довольно быстро
Alexander
я не вижу смысла и в будущем переделывать. экономить 0.5% мощностей, чтобы добавить потенциальные дыры и дополнительный гемор в разработке
Alexander
то есть весь пэйлоад один запрос?
Maks
При этом если делать без жвт а через базовую авторизацию - то потребуется даже не 2000 а 3000 запросов в бд. Первый авторизация, второй получение ролей, третий получение контента.
Alexander
ээээээээ. это может вообще реальным кейсом быть?
Maks
В случае с жвт ты присылаешь роли пользователя в самом токене и айди пользователя если надо т в бд будет 1000 запросов за секунду а не 3к потому что все данные есть в пейлоаде важные и постоянно нужные
Alexander
ну дай клиенту 100 страниц текста, к примеру про запас. если такой кейс
Maks
Нет, пейлоад это данные которые нужны на каждый запрос а так же нужны например фронту для отображения каких то вкладок, кнопок и тому подобное
Alexander
я имею в виду, полезная работа. помойму слово пэйлоад в данном случае тоже применимо
Alexander
да и даже если кейс ну прямо такой. ну ок. есть необходимые траты. как в реальной жизни, ты не можешь без штанов прийти, даже если достаточно тепло
Alexander
все, конечно, в разумных рамках должно быть
Maks
Ну у тебя ведь помимо этого есть множество другой работы с базой данных. Тебе придется масштабироваться в 3 раза больше или чаще, чем если оптимизировать некоторые вещи
Alexander
Maks
Так клиент шлет один запрос на получение данных. А серверу нужно узнать что пользователь авторизован (через бд же) потом узнать что у пользователя есть права(через бд) и получить запись из бд.
Maks
А клиент отправил один запрос
Alexander
ок
Alexander
и?
Maks
Что и? 3 запроса в бд на хайлоаде хуже чем 1 запрос в бд.
Alexander
если у тебя 100 элементов в гуе и для каждого отправляется отдельных запрос, то это как бы уже кретинизм
Maks
При чем тут 100 элементов в гун
Alexander
ну а в каком случае это еще страшно?
Maks
У тебя 1000 пользователей в секунду запрашивают страницы какие то разные
Maks
И тебе нужно их авторизовать, аутентифицировать, отдать данные
Alexander
и в каком еще случае это будет 1 полезный запрос в бд?
Alexander
на весь запрос на сервер
Maks
И ты делаешь 3000 запросов в случае если использовать базовую авторизацию
Maks
Запросов в бд
Maks
Именно в бд
Maks
А в случае с жвт ты сделаешь только 1 запрос
Alexander
ну ок, токен я передаю. делаю 2000
Maks
Ты передаешь жвт в котором у тебя есть роли
Maks
Пользователя
Alexander
но бле
Alexander
ну сколько можно request дрочить в котором один query
Alexander
ну не бывает так, либо это совсем не горячее место. либо можно забатчить с чем-то другим
Alexander
либо, если такое реальный юзкейс, то еще один позволить себе сделать ты можешь
Maks
Если тебе нужно сделать много отдельных запросов в бд в одном обращении к серверу - это повод подумать об оптимизации
Alexander
Maks
Ну я тебе описал кейс когда на авторизацию и аутентификацию тебе приходится жертвовать дополнительно двумя обращениями к базе данных. На каждый запрос. Тебе либо эти данные в оперативу выносить(редис например) либо на процессоре проверять валидность(жвт). Иначе у тебя просто будет бд заспамливаться запросами даже тогда когда это не нужно. Например контент который не требует никаких ролей и по факту просто отображает какие то публичные данные из таблицы. А ты будешь делать запрос в базу что бы просто произвести аутентификацию.
Жвт только про это. Потому что нужно иначе расширят инстансы бд например. Это стоит денег всегда.
Alexander
Я ещё подумал. Вот ты запихнул какую-то критичную для бизнес логики инфу в жвт, или новые токены ты выдаешь с доп инфой. В итоге тебе надо хранить две версии кода для старого токена и нового, либо форсить инвалидацию. Это того стоит?
Илья
Илья
Alexander
Alexander
Maks
Maks
Если у него введны данные авторизации
Alexander
Valeriy
@maks_vesnin @edwvee Спор ни о чем, получается, Макс, разберись в jwt сначала, потом давай спорить. Сейчас речь начинает идти о том, нужна ли вообще оптимизация. Это уже другой вопрос
Alexander
а по поводу нагрузки. ну серьезно? сколько rps субд выжмет на современой машине на ядро при 100М пользователей? более чем достаточно
Maks
Я знаю для чего его придумали изначально. Понятно что его применять можно в микросервисах и оно там довольно оправдано. Я знаю и сильные и слабые стороны жвт и когде не подходит. В целом я его обычно не использую. Потому что обычно не нужно. Чаще всего не нужно даже.
Alexander
ок, давайте айди юзера там хранить. права можно кэшировать, держать айдишник в записи юзера. ну пусть у нас 100 полей в юзере. опять это будет более чем достаточно
Alexander
просто реально экономия на спичках даже для любого хайлоадистого хайлоада. а проблем потенциально море
Марина
Всем привет. Подскажите пожалуйста востребованы ли тестировщики? Можно ли устроиться конкретно на написание юнит-тестов и тестирования в целом. Безопасность, бэкдоры, оптимизация кода и тд ..
Сколько средняя цена часа работы тестировщика?
Alexander
и кэш не нужен тоже. если у нас отдельная база для юзеров (микросервисы же, не?), то уж юзеров по айди она сама закэшит прекрасно
Valeriy
Alexander
опиши ситуацию.
1. клиенту нужно 15 ресурсов и он шлет одновременно 15 реквестов на разные эндпоинты
2. или у нас допустим есть гейтвей и какой-то один реквест, который задействует 15 микросервисов?
Ron Mount
Maks
челы не шарят короче))))))))))))
Alexander
Alexander
допустим даже для этого шлют запрос в микросервис юзеров и он 15 раз им честно проверяет и говорит какие права
Илья
Valeriy
Да и вообще, что значит эти 5 мс
Ron Mount
ну если ты на телефоне 15 сервисов поднимаешь, то нагрузка действительно приличная может выйти
Valeriy
Сколько у тебя пользователей? 4?
Alexander
Ron Mount
два с половиной землекопа
Alexander
ну короче один хрен, это все сводится к одной авторизации
1. учимся как-то батчить запросы в один. вай нот?
2. авторизуемся один раз, и уже на микросервисы шлем инфу по юзеру дополнительно
Alexander
1. или если не хотим батчить запросы, то нас вообще не волнует производительность и о чем говорить
Evgeny
а, чо, а давно у нас io стал бесплатным?
Alexander
ну оки оки