Фильтры это реализация chain of responsibility
Т.е. в прямом направлении запрос проходит через логику до взрыва doNext(), в обратном проходит логику после возврата из doNext()
Все интерцепторы и обработчики ошибок это фильтр, который отвечает за реализацию mvc - он идёт последним в цепочке
Т.о. пишешь фильтр, после возврата из doNext() ставишь нужный хидер в респонс. Либо делаешь try-finally и в finally блоке ставишь хидер, тогда он будет установлен и при исключении
Фильтры ж подключаются до выполнения кода контроллера, который может выплюнуть исключение. В этом случае отваливается механизм обработки ошибок с ControllerAdvise. Или я не прав?
Читать полностью…И весь ваш трафик идёт через владельца этого самого ngrok, который может делать с ним что захочет.
Если у вас паранойя - это ещё не значит что за вами не следят.
Доброго времени суток !
кто разбирается в ddns?
нужна помощь (с оплатой)
ситуация проста и сложна)
виртуалка убунту подключена через хост через моб инет, мне нужно на неё принимать файлы по sftp
нужна помощь как настроить дднс или ssh туннель или vpn чтобы передавать на неё файлы как на обычный сервак с белым ip
Ну я в общем попробую Gatling, и эту статью, может будет проще да и про false positive это правда, я тоже думал, что релевантные метрики посчитать будет не просто.
Читать полностью…Вроде есть готовые семплеры: Guide to RADIUS Server Load Testing. Надо смотреть, подходит ли.
Читать полностью…Хм. Что за такой метод отправки и реагирования на ответы, с чем не может справиться jmeter, но может самописный сервис? 🤔
Читать полностью…а задача какая?
для промышленного SVT жметер эталон, это надо веские причины (сильнее чем «янешмогла») чтобы что-то другое смотреть
тем более пытаться свое написать чтобы «ускорить». Получить false positive на самописном тесте производительности не просто, а очень просто
Всем привет!
Мне надо написать сампописный на java сервис, который будет грубо говоря как Jmeter.
Собственно у меня запрос довольно простой, может кто дать советов (кроме используй Jmeter) как лучше организовать это счастье. В части Jmeter его не получится использовать, так как там слишком специфический метод отправки запросов и реагирования на ответы (грубо говоря это некий Challenge).
Под лучше я понимаю наибольший достигаемый RPS.
Или может простого тредпулла на 100500 потоков хватит (причём тут мне не понятно как рассчитать размер этого тред пулла, типо взять количество физических ядер * 2 - 1 или как лучше...).
В общем-то буду рад любым советам!
Это все срабатывает, если до контроллера дело дошло, а если не дошло и ошибка в фильтрах, то там ентрипойнты для обработки ошибок, заткнуть все дыры в случае выброса исключений в спринге не так-то просто
Читать полностью…На самом деле подходы везде примерно одинаковые. Паттерн декоратор(враппер), который имплементится через явное делегирование внутри декоратора + оборачивание в свой специфический код иди через AOP.
В других языках могут быть другие подходы само собой, но сомнительно что отличтя кардинальные.
Вот сейчас с этим всем и разбираюсь. Прошу ногами не пинать сразу, я Java начал изучать на этой неделе:) Пошел читать как работают фильтры.
Читать полностью…Не подходит, мне надо обрабатывать ошибки глобально, а не в каждом контроллере это писать.
Читать полностью…Нужно сымитировать нагрузку на протоколе RADIUS, нагрузку надо имитировать вида EAP-PEAP, это некий вид TLS, то есть сначала создаётся туннель, потом передаются данные, потом туннель закрывается
И мне что-то подсказывает что такую классную вещь через Jmeter не получится сымитировать, но возможно это от слабого знакомства с этим инструментом, я лично помню что это нечто с гуём, в которое надо пихать что-то, но только не java, но я вот вроде про гатлинг сейчас смотрю, может и можно это всё подружить...
Единственное там если нужно координировать сразу несколько инстансов нагрузочных -- будет сложновато, надо будет обвязочки написать (akka cluster мы использовали), но в принципе вещь вполне расширяемая. Плагины для разных систем (не только rest если или grpc) пишутся без особых проблем. Вот например плагин для apache ignite -- https://github.com/apache/ignite-extensions/tree/master/modules/gatling-ext
Читать полностью…А что, свой фильтр воткнуть в цепочку и отдавать по ней свой враппер httpservletresponse, который заголовок обыграет, не получается?
Читать полностью…Методы с аннотацией ExceptionHandler могут иметь разные сигнатруы. Там может быть и HttpServletRequest, и HttpServletResponse, в общем вот джавадок https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/ExceptionHandler.html Можно создать ResponseEntity с нужными заголовками, можно HttpServletResponse модифицировать
Читать полностью…Ну слишком длинное либо не нужно, либо тогда надо думать как именно этот кейс обыгрывать на фронте. Например, я обычно делаю так, если брать сайт, по дефолту вывожу сообщения в Toast-message. Если же заполняется форма, то ошибки валидации приходят на фронт в универсальном формате и выводятся каждая возле своего поля, это код который один раз написал и у себя по всему приложению это работает во всех формах одинаково. И возможность обыгрывать нестандартные кейсы, чтобы на фронте можно было свой интерсептор для обработки ответов сервера написать и уже как угодно крутить и отображать определенные ошибки.
Читать полностью…