|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
hck2, Твоя очередь не существует с 2003 года SingleThreadModel https://www.google.com/search?q=singlethreadmodel&oq=singlethreadmodel&aqs=chrome..69i57j0j0i30l3.11433j0j4&client=tablet-android-huawei&sourceid=chrome-mobile&ie=UTF-8 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 13:23 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
[quot hck2#22251435] mayton ну а как остальные используют restTempalte ? врятли же выстраивают в очередь все вызовы рест клиента. по стектрейсу четко видно, что внутри restTemplate что-то ломается при параллельных вызовах. как я понимаю самый адекватный ответ - PROTOTYPE и плодить на каждый вызов отдельный инстанс restTemplate или я совсем неверно рассуждаю ? Ты имеешь в виду это? https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html Давай глянем доку. Я попробую с моим хреновым intermediate Хоть что-то перевести. Synchronous client to perform HTTP requests, exposing a simple, template method API over underlying HTTP client libraries such as the JDK HttpURLConnection, Apache HttpComponents, and others. The RestTemplate offers templates for common scenarios by HTTP method, in addition to the generalized exchange and execute methods that support of less frequent cases. NOTE: As of 5.0 this class is in maintenance mode, with only minor requests for changes and bugs to be accepted going forward. Please, consider using the org.springframework.web.reactive.client.WebClient which has a more modern API and supports sync, async, and streaming scenarios. Синхронный клиент предназначенный для выполнения HTTP-запросов предоставляющий простой шаблонный API сквозь базовые HTTP-библиотеки такие как HttpUrlConnection, Apache HttpComponents и другие. RestTemplate предлагает шаблон для общих сценариев с использованием HTTP, в дополнение к общим методам обмена данными и исполнения которые поддерживают не очень частые вызовы. Уведомление. Начиная с версии 5.0 этот класс - в режиме поддержки, которая делается только с минорными изменениями и багами в будущем. Пожалуйста рассмотрите использование org.springframework.web.reactive.client.WebClient который имеет более современный API и поддерживает sync, async, and streaming сценарии использования. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 13:24 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
mayton Не надо весь проект. Создай макет который делает тоже самое. 1-2 класса. Кстати это полезно еще тем что ты в процессе уже можешь сам исправить эту ошибку. я реально не понимаю для чего. разве стектрейс не снимает полностью "вину" с логики моего приложения ? почему по представленому стектрейсу поставить однозначный диагноз ? at org.springframework.web.client.RestTemplate$AcceptHeaderRequestCallback.doWithRequest(RestTemplate.java:891) заполняет какой-то свой ArrayList, разве не это показывает стектрейс ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 13:25 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
hck2 mayton Не надо весь проект. Создай макет который делает тоже самое. 1-2 класса. Кстати это полезно еще тем что ты в процессе уже можешь сам исправить эту ошибку. я реально не понимаю для чего. разве стектрейс не снимает полностью "вину" с логики моего приложения ? почему по представленому стектрейсу поставить однозначный диагноз ? at org.springframework.web.client.RestTemplate$AcceptHeaderRequestCallback.doWithRequest(RestTemplate.java:891) заполняет какой-то свой ArrayList, разве не это показывает стектрейс ? Стек трейс - это капитан-очевидность. Он говорит. Чувак. Ты нарушил базовые принципы мультипоточки в java. Как ты докатился до такой жизни - это вопрос к тебе. Переделывай приложение. Выше по стек ты что-то нарушил или сдела неправильное допущение. На самом деле в Java - хорошие стектрейсы. Если не веришь - сходи в С++ и там ты просто впадешь в депрессию от "информативности" ошибок. Будешь читать состояния регистров процессора и по ним пытсться раскурить что случилось ДО ТОГО и как. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 13:28 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
hck2 mayton Не надо весь проект. Создай макет который делает тоже самое. 1-2 класса. Кстати это полезно еще тем что ты в процессе уже можешь сам исправить эту ошибку. я реально не понимаю для чего. разве..... Еще один ленивый показать код ошибки... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 13:30 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
PetroNotC Sharp >jdbc стандарт тоже вроде как синхронный по спеке но при этом драйвера плодят поток на каждый коннекшон. Он синхронный и не Thread Safe, ПОЭТОМУ приходится плодить! Причина и следствие! Если следовать этой логике то это взаимоисключащие характеристики и вместо синхронный можно использовать thread safe и избавить еще от одного ненужного термина. Повторю еще раз что resttemplate что apache http client под синхронным не подразумевается thread safety а то что используется блокирующее IO. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 13:32 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
Ну вот навскидку https://stackoverflow.com/questions/22989500/is-resttemplate-thread-safe RestTemplate is thread-safe once constructed не потому что он синхронный а потому что обычный паттерн использования в спринге, подразумевается что его состояние не меняется после инициализации при старте контейнера. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 13:38 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
Thread safe и синхронизм - это желтое и квадратное. Потокобезопасность может быть реализована по разному. На блокировках. На атомиках. Вообще на отсутсвии конкуренции если задача такое позволяет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 13:43 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
mayton Стек трейс - это капитан-очевидность. Он говорит. Чувак. Ты нарушил базовые принципы мультипоточки в java. Как ты докатился до такой жизни - это вопрос к тебе. Переделывай приложение. Выше по стек ты что-то нарушил или сдела неправильное допущение. На самом деле в Java - хорошие стектрейсы. Если не веришь - сходи в С++ и там ты просто впадешь в депрессию от "информативности" ошибок. Будешь читать состояния регистров процессора и по ним пытсться раскурить что случилось ДО ТОГО и как. да блин, я же никого не обвиняю и не жалуюсь. я реально напрегся, почему по этому стектрейсу люди с опытом не поставили однозначный диагноз и просят код, прототип и т.п. я волнуюсь, что что-то упустил глобально. разве стектрейс не говорит однозначно, что это restTemplate свой внутренний ArrayList заполняет и падает при параллельном использовании ? если именно это происходит, то понятно, что я неверно использую restTemplate. зы. по документации я вроде читаю по английски и вижу про Synchronous client, в про thread safe ничего не говорится. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 13:54 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
Хватит уже болтать. Показывай где ArrayList или его итератор. Ты его - шаришь между потоками. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 13:58 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
hck2 mayton Стек трейс - это капитан-очевидность. Он говорит. Чувак. Ты нарушил базовые принципы мультипоточки в java. Как ты докатился до такой жизни - это вопрос к тебе. Переделывай приложение. Выше по стек ты что-то нарушил или сдела неправильное допущение. На самом деле в Java - хорошие стектрейсы. Если не веришь - сходи в С++ и там ты просто впадешь в депрессию от "информативности" ошибок. Будешь читать состояния регистров процессора и по ним пытсться раскурить что случилось ДО ТОГО и как. да блин, я же никого не обвиняю и не жалуюсь. . И мы тебя не обвиняем. Ты хороший. Но закругляйся болтать и дай пример на sleep() ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 14:12 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
hck2 mayton Стек трейс - это капитан-очевидность. Он говорит. Чувак. Ты нарушил базовые принципы мультипоточки в java. Как ты докатился до такой жизни - это вопрос к тебе. Переделывай приложение. Выше по стек ты что-то нарушил или сдела неправильное допущение. На самом деле в Java - хорошие стектрейсы. Если не веришь - сходи в С++ и там ты просто впадешь в депрессию от "информативности" ошибок. Будешь читать состояния регистров процессора и по ним пытсться раскурить что случилось ДО ТОГО и как. да блин, я же никого не обвиняю и не жалуюсь. я реально напрегся, почему по этому стектрейсу люди с опытом не поставили однозначный диагноз и просят код, прототип и т.п. я волнуюсь, что что-то упустил глобально. разве стектрейс не говорит однозначно, что это restTemplate свой внутренний ArrayList заполняет и падает при параллельном использовании ? если именно это происходит, то понятно, что я неверно использую restTemplate. зы. по документации я вроде читаю по английски и вижу про Synchronous client, в про thread safe ничего не говорится. стектрей это и говорит но не видно зачем ктото меняет ему его. Код: java 1. 2. 3. 4. 5. 6.
точно нигде setMessageConvertes() или getMessageConverters не вызывается и руками не меняется ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 14:28 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
Нужно везде если инжектится RestTemplate поменять на RestOperations и если приложение не компилируется то где то косяк ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 14:30 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
lleming стектрей это и говорит но не видно зачем ктото меняет ему его. Код: java 1. 2. 3. 4. 5. 6.
точно нигде setMessageConvertes() или getMessageConverters не вызывается и руками не меняется ? вызывается, чуть выше код где я restTemplate bean создаю https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1331858&msg=22250648 выходит редиска найдена ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 14:45 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
Попробуй работать с копией массива. Код: java 1.
Только копию создавай не здесь. А до того как стартовал поток. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 15:18 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
lleming Ну вот навскидку https://stackoverflow.com/questions/22989500/is-resttemplate-thread-safe RestTemplate is thread-safe once constructed не потому что он синхронный а потому что обычный паттерн использования в спринге, подразумевается что его состояние не меняется после инициализации при старте контейнера. Я писал объект ThreadSafe который перестал падать просто добавив синхронизацию или блокировку в метод. То есть я тупой и глючный объект просто затормозил! Теперь мы почему то топим за restTemplate который тоже модели поток на запрос. Пока не вернется ответ, поток будет заблокирован! Спринг след версии сменят объект класс на НЕБЛОКИРУЮЩИЙ! И не буде этого restTemplate. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 15:21 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
Эволюция: - контейнер SingleMode для тех кто пишет по старинке на глобальных)) - контейнер не SingleMode и убрана эта галка - для продвинутых в 2003 году - потоки в приложении и пул для тех кто не доверяет потоку и пулу выше и любит свои велосипеды (ТС тут) - асинхронный неблокирующий клиент спринг бут с java8 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 15:28 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
Он не может решить простую задачу. Правильно пошарить Java ArrayList (которая всегда thread unsafe) между потоками. А SpringBoot это просто внешняя обертка этой проблемы. Ну был-бы Google Guice, Или сервлеты. Тот-же баг бы словили. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 15:32 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
mayton, При использовании потоков и пула серверного никаких багов. А счас он полубеременный. Спринг заменил класс на котором он пишет асинхронно. Асинхронно блокируя он пишет)))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 15:41 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
mayton Он не может решить простую задачу. Правильно пошарить Java ArrayList (которая всегда thread unsafe) между потоками. А SpringBoot это просто внешняя обертка этой проблемы. Ну был-бы Google Guice, Или сервлеты. Тот-же баг бы словили. а вот тут у меня вопрос. если это спринг, почему не проканало ? без анотации как я понимаю при старте должен был оздатся бин restTemplate, в нем просетится setMessageConvertes() и дальше все должны были использовать этот бин без изменений. почему я получил ошибку ? с анотацией @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) каждый тред должен был бы создавать свой бин и каждый делать setMessageConvertes() своему бину. тем не менее я снова получил ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 15:48 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
hck2 mayton Он не может решить простую задачу. Правильно пошарить Java ArrayList (которая всегда thread unsafe) между потоками. А SpringBoot это просто внешняя обертка этой проблемы. Ну был-бы Google Guice, Или сервлеты. Тот-же баг бы словили. а вот тут у меня вопрос. если это спринг, почему не проканало ? без анотации как я понимаю при старте должен был оздатся бин restTemplate, в нем просетится setMessageConvertes() и дальше все должны были использовать этот бин без изменений. почему я получил ошибку ? с анотацией @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) каждый тред должен был бы создавать свой бин и каждый делать setMessageConvertes() своему бину. тем не менее я снова получил ошибку. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Если так написать проект компилируется ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 15:55 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
PetroNotC Sharp lleming Ну вот навскидку https://stackoverflow.com/questions/22989500/is-resttemplate-thread-safe RestTemplate is thread-safe once constructed не потому что он синхронный а потому что обычный паттерн использования в спринге, подразумевается что его состояние не меняется после инициализации при старте контейнера. Я писал объект ThreadSafe который перестал падать просто добавив синхронизацию или блокировку в метод. То есть я тупой и глючный объект просто затормозил! Теперь мы почему то топим за restTemplate который тоже модели поток на запрос. Пока не вернется ответ, поток будет заблокирован! Спринг след версии сменят объект класс на НЕБЛОКИРУЮЩИЙ! И не буде этого restTemplate. поток мысли какой то претензия к PetroNotC>это что, получается restTemplate нифига не thread safe Ну дак в справке по нему написано - для СИНХРОННОГО доступа. То что написано в справке не иммет отновшения к thead safe а только то что внизу блокирующее IO. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 16:02 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
lleming Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Если так написать проект компилируется ? компилируется, но тесты попадали с No qualifying bean of type 'org.springframework.web.client.RestTemplate' available: expected at least 1 bean which qualifies as autowire candidate. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 16:05 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
lleming, То что спринг НЕ РЕКОМЕНДУЕТ использоаать restTemplate это для тебя поток мыслей? Ну ОК)) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 16:08 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
Я имею ввиду нигде в коде руками не вызывается getConverters() setConverters() ? Если вместо RestTemplate инжектить RestOperations то это гарантируется чистоту RestTemplate помимо того что конфигурацию поправлена нужно и инжекты поменять Код: java 1. 2. 3. 4. 5. 6. 7.
ну и в конструкторах если иньекция через конструктор ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 16:11 |
|
|
start [/forum/topic.php?fid=59&msg=40029741&tid=2120566]: |
0ms |
get settings: |
27ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
442ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 561ms |
0 / 0 |