|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
блин, нашел. одной строчкой выше же Код: java 1. 2. 3. 4. 5.
ок, теперь понятно почему в без анотаци падало. один единственный бин и ему меняют ... а все это время работало потому, что именно этот метод был по synchronize. поток вызовов вырос, synchronize начал создавать проблемы, а без него ... вот оно что. я почти начал понимать как оно у меня работает lleming No qualifying bean of type 'org.springframework.web.client.RestTemplate' available: а, наверно в одном только тесте мало поменять на RestOperations, надо было же во всем коде подменить, остальной код тоже же автовайрит ... попозже попробую. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 16:29 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
PetroNotC Sharp lleming, То что спринг НЕ РЕКОМЕНДУЕТ использоаать restTemplate это для тебя поток мыслей? Ну ОК)) Одни рекомендуют апаче коммонс другие не рекомендуют. Это лишь мнение, и же не имеет отношения к обсуждаемому нами вопросу и его истинности ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 20:47 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
lleming, Хмм. Чтобы не обсуждать нужность или не нужность класса достаточно просто афишировать вот так: "Я в курсе что рекомендовано не поворачивать направо и в курсе что потеряю коня". То есть, я как ТС в курсе, что данный шаблон это калька jdbcTemplate. И спринг его в след версии прекратит поддержку. Но мне надо так, и мы это не обсуждаем. ... После этой фразы я интерес то потеряю к этому топику)). Нафиг легаси обсуждать. Если он уберет все Runnable/future/thread и отдаст это контейнеру то все и так заработает))) на 10 юзверей. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2020, 22:18 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
Да легаси это не страшно. По 10-20 лет легаси работает. Другое дело что джунский вопрос о ConcurrentModificationException вызывает у автора беспомощность. А это вопрос по java-core. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2020, 00:20 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
mayton, Согласен. До 2000 года меня не было)). Когда все java прогеры писали потоки. Потом сделали контейнер чтобы они не делали это. Просто контейнер сам запускал поток чтобы юзверь вложил свой кусок кода. Наверно думали что так проще и юзверю потоки знать не нужно. Для 10 клиентов то)) Потом что то пошло не так и IT опять качнуло на future/runable. А потом вообще на стримы потоки данных. Как знатно качает то лодку в периоде 20лет. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2020, 08:32 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
mayton Да легаси это не страшно. По 10-20 лет легаси работает. Другое дело что джунский вопрос о ConcurrentModificationException вызывает у автора беспомощность. А это вопрос по java-core. вы на меня наговариваете не было беспомощности, я сразу начал обвинять restTemplate в отсутствии thread safe PetroNotC Sharp lleming, Нафиг легаси обсуждать. Если он уберет все Runnable/future/thread и отдаст это контейнеру то все и так заработает))) на 10 юзверей. до этих выходных так и работало: б24 слал рест запрос в апп1, апп1 писала в mariadb и дергала апп2, апп2 шла в б24 выясняя, что собственно обновилось в б24. в итоге все всех ждали. и в принципе эта схема работала, пока летом я не заметил "11-го пользователя" - какой-то робот массово что-то в товарах меняет. мои приложения параллельно получают сотню вызовов и я испугался за б24, если я в рамках своей тупой схемы буду делать сотни реквестов разом в б24, ему поплохеет. вот тут я и бахнул не долго думая synchronize только на обработчик товаров. интересно, что мина сработала лишь спустя пол года. ладно, на выходных я все общение переделал отдельными тредами. апп1 получая от б24 реквест отвечает 200, в отдельном потоке оповещает апп2, апп2 тоже сразу отвечает 200, в отдельном потоке стартует бизнес логику. synchronize я убрал, но теперь мне нужно думать, как при массовом обновлении товаров в ответ не заддосить б24. как я понимаю самое правильное было бы городить полноценную очередь, может у спринга что-то такое есть, относительно полноценное но в mysql базе, без messanging quene типа кафки и кролика. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2020, 11:11 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
hck2, Если про архитектуру, то - можно построить без очередей синхронно и по старинке. Но надо знать занафига впереди стоит тормоз app1 и пишет в бд - можно построить очередь и Message oriented middleware. Но вы не хотите делать полноценные корпоративные - можно сделать на новой boot 2.0 где модуль web разъехался на servlet or reactive Решать вам. Развилочка зависит от лени и изучать что то новое ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2020, 11:31 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Если про архитектуру, то - можно построить без очередей синхронно и по старинке. Но надо знать занафига впереди стоит тормоз app1 и пишет в бд без очередей и синхронно это сколько запросов получил я столько же навалится на б24, а тот не факт, что сдюжит. апп1 спасает от полного фейла, если я завтра снова накосячу с synchronize в апп2 и апп2 встанет колом, то я смогу исправить, передеплоить, найти еще косяк, снова передплоить, но быть уверенным, что апп1 все это время пишет задания и я пропущенные вызовы, пусть и с опазданием, но обработаю. PetroNotC Sharp - можно построить очередь и Message oriented middleware. Но вы не хотите делать полноценные корпоративные у меня есть опыт со спарком на основной работе и уже есть приложение на спарке в этом проекте ... да, шедуллер на spark streaming, читает из кафки и запускает нужный процессинг звучит как страница кода, но меня пока пугает администрирование кафки. но в связке с уже имеющимся спарк может оно и ничего. PetroNotC Sharp - можно сделать на новой boot 2.0 где модуль web разъехался на servlet or reactive а чем реакт может помочь в регулировании потока вызовов в сторону б24 ? это же просто колбэк функции, много прилетит ко мне, много вылетит и от меня. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2020, 21:58 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
hck2 без очередей и синхронно это сколько запросов получил я столько же навалится на б24, а тот не факт, что сдюжит Переведи свою мысль ты бы схемку нарисовал как обрабатываюся запросы б24. Где твой б24 на картинке? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2020, 23:41 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
hck2 но быть уверенным, что апп1 все это время пишет задания и я пропущенные вызовы, пусть и с опазданием, но обработаю. Чем плохо? hck2 и я пропущенные вызовы, пусть и с опазданием, но обработаю. а почему нельзя регистрировать сущность Заявка в ИС и потом их хоть послезавтра обработать? А вы для такой ерунды ставите целый app2 с СУБД. hck2 а чем реакт может помочь в регулировании потока вызовов в сторону б24 ? это же просто колбэк функции, много прилетит ко мне, много вылетит и от меня. вот поэтому надо разобраться "с потоками данных" DFD (диаграммы потоков данных). авторДиаграмма потоков данных (data flow diagram, DFD) — один из основных инструментов структурного анализа и проектирования информационных систем, существовавших до широкого распространения UML. Википедия Потому что ваше: "апп1 все это время пишет задания" любой бизнес аналитик перепишет как: "в ИС предусмотреть регистрацию заявок". И нету вашей проблемы вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2020, 23:50 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
авторпомочь в регулировании потока Автор! Надо начать ещё раньше - от печки. У тебя 10 юзверей. Нагрузка небольшая. Кто придумал регулировать потоки? Программист? Зачем? Почему? Где сама проблема? Где тонкое место? Вот с этого надо начинать в архитектуре. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2020, 23:56 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
hck2, Обоснование нужности апп1 у вас такое: авторапп1 спасает от полного фейла, если я завтра снова накосячу с synchronize в апп2 и апп2 встанет колом, то я смогу исправить, передеплоить, найти еще косяк, снова передплоить, но быть уверенным, что апп1 все это время пишет задания и я пропущенные вызовы, пусть и с опазданием, но обработаю. Непонятен юз кейс: - вы накосячили с апп2 и он встал колом (порт 8085 не отвечает) - апп1 при этом должен логировать(накапливать) задания от битрикса? Юзверь ничего не должен замечать? ... Тогда вопросы: - почему не взять позже самому aпп2, запросив у битрикса, что он там наработал во время болезни? Битрикс же полноценная платформа с рест и СУБД? - если это нельзя, то почему изначально app1 и апп2 не отвязаны друг от друга? Например, апп1 пишет в бд инфу, а апп2 это JOB/ шедулер проходящий раз в минуту по таблице заданий? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2020, 08:19 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
hck2, я бы посоветовал Spring Cloud Stream Kafka, если страшно сначала на низком уровне с кафкой возиться. Но без брокера очередей достаточно трудно будет избежать затора между вашими приложениями, если скорость обработки большого числа сообщений от одного превышает скорость другого ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2020, 00:14 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
Кофейник2 если скорость обработки большого числа сообщений от одного превышает скорость другого ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2020, 11:23 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
PetroNotC Sharp а почему нельзя регистрировать сущность Заявка в ИС и потом их хоть послезавтра обработать? А вы для такой ерунды ставите целый app2 с СУБД. ок, попробую нарисовать поток данных сверху вниз. 1) 1с склады, 1с может быть инициатором массовых обновлений товара в битрикс24, думаю остатков. пока сталкиваюсь порядка 200 одновременных событий. 2) битрикс24 црм, тут 10 пользователей + некие роботы, они могут десятки событий, например задачи генерировать. битрикс24 не может послать в рест вызов, что именно у него изменилось. там можно подписаться лишь на оповещение о том что такая-то сущность изменилась. вот такие оповещения по рест битрикс24 шлет в ап1. 3) апп1 - записывает факт вызова в табличку с автоинкрементом, отвечает 200 на вызовы от б24 и в отдельном потоке дергает апп2. задача апп1 не пропустить ни одного вызова б24 и работать в моменты когда я редеплою или решаю проблемы апп2. 4) апп2 - получает вызовы от апп2, с выходных тут же отвечает 200 и в отдельном потоке процессит события. задачи решает разноплановые: - постройка витрин для отчетной системы (строит исторические таблицы, т.к. црм не хранит историю) - синхронизирует данные с инет магазинчиком (синхронизирует товары, сделки, клиентов) - контролирует некоторые бизнес процессы б24, например при выполнении складским работником б24 задачи, дергает бизнес процесс. - помогает с массовыми загрузками, периодическими выгрузками. 5) инет магазинчик получает рест вызовы от апп2 если апп2 решило что изменение в товаре или сделке должно отобразится в инет магазине 6) powerbi отчетики, поверх витрин построенных апп2 так вот возвращаясь к вопросу, ждать послезавтра нельзя. послезавтра сделка уже пару стадий сменит и апп2 в исторических таблицах много интересного пропустит. поэтому ради витрин истории, некоторые вещи, желательно обработать поскорей, что бы застать как можно больше изменений. если сделка в течении пары минут изменилась несколько раз, апп2 что-то пропустит, но все таки трагедии не будет. пострадает точность прогнозов и отчетики, но если речь о минутах, то не критично страдает. у покупателя инет магазинчика тоже не будет трагедии если он увидит статус заявки опозданием несколько минут, но часы уже могут породить вопросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2020, 12:53 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
Кофейник2 hck2, я бы посоветовал Spring Cloud Stream Kafka, если страшно сначала на низком уровне с кафкой возиться. Но без брокера очередей достаточно трудно будет избежать затора между вашими приложениями, если скорость обработки большого числа сообщений от одного превышает скорость другого я размышляю на счет spark + kafka, но еще не уверен, что готов именно админить кафку. если сломается оракл или mysql, я знаю что такое redo, как починить в любой ситуации. просто запустить кафку по инструкции не выйдет, надо понимать куда бежать, если она поломается. и еще есть такой вопрос, допустим апп1 пишет в один единственный топик кафки, апп2 читает этот топик, но у меня такой нюанс, что в сделке 100 позиций товара, я пытаюсь сохранить остаток товара в момент создания сделки. для этого я делаю запрос на сущность сделки и 100 запросов в на каждую позицию в сделке, что бы выяснить остаток в сущности товар. вероятно мне нужно 2 топика, в первом от апп1, одно сообщение, во втором 101 сообщение. выходит апп2 будет само себе сообщение слать. как-то ... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2020, 13:13 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
hck2 если сломается оракл или mysql, я знаю что такое redo - выбор простой. Вы развиваетесь как java программист или как прогер на двухзвенке клиент-сервер. Работать будет и там и там. Вам решать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2020, 13:28 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
hck2 4) апп2 - получает вызовы от апп2, с выходных тут же отвечает 200 и в отдельном потоке процессит события. задачи решает разноплановые: - постройка витрин для отчетной системы (строит исторические таблицы, т.к. црм не хранит историю) - синхронизирует данные с инет магазинчиком (синхронизирует товары, сделки, клиентов) - контролирует некоторые бизнес процессы б24, например при выполнении складским работником б24 задачи, дергает бизнес процесс. - помогает с массовыми загрузками, периодическими выгрузками. получает вызовы от апп1, конечно же, и забыл самое главное - на каждый событие, делает минимум один рест колл в б24, запрашивая сущность, по которой произошло событие (сделку, товар, задачу, контакт, и т.п.). при этом в случае со сделкой анализирует таблицу событий (записанной апп1) и выфильтровывает дублирующие сообщения на тему сделки, в случае с товаром анализирует кол-во запросов и пытается ограничивать кол-во одновременных запросов в битрикс24, что бы не заддосить сервис. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2020, 13:31 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
hck2, нарисовать можете квадратики и стрелочками вызовы? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2020, 13:35 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
ТС, вы не ответили на все вопросы. Я их много задал. Возможно надо было по одному задавать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2020, 13:37 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
PetroNotC Sharp нарисовать можете квадратики и стрелочками вызовы? нет. вы на каждую стрелочку лишь наплодите больше бестолковых и неинтересных мне вопросов. остальные как я вижу и так понимают, что я пытаюсь надизайнить. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2020, 13:41 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
hck2 Кофейник2 hck2, я бы посоветовал Spring Cloud Stream Kafka, если страшно сначала на низком уровне с кафкой возиться. Но без брокера очередей достаточно трудно будет избежать затора между вашими приложениями, если скорость обработки большого числа сообщений от одного превышает скорость другого я размышляю на счет spark + kafka, но еще не уверен, что готов именно админить кафку. если сломается оракл или mysql, я знаю что такое redo, как починить в любой ситуации. просто запустить кафку по инструкции не выйдет, надо понимать куда бежать, если она поломается. Полностью поддерживаю это беспокойство. Если ломается БД - у нас есть 100% документированные механизмы восстановления незакоммиченных данных и главное... есть саппорт и есть вменяемая оценка по срокам. В случае с кафкой, как мы видим у джавистов - нулевой опыт восстановления сбойных хранилищ. И тут любое неверное движение или неверно понятая документация - и данные ресетнулись и месседжинг покатился с нуля. А возможностей прокачать подобный опыт у джавистов мало - т.к. технологий очень много а ситуации когда надо восстанавливать файловые структуры - бывают редко. По срокам тут - вообще непонятно. Продуктовая система не может стоять на паузе пока джависты делают investigation что за ситуация и как вообще из нее выходить. И главное где провисли эти сообщения и как их восстановить если какой то API радостно сообщает сто сбой контрольной суммы файла или блока и что дальше делать непонятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2020, 13:46 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
hck2 1с склады hck2 инет магазинчик hck2 апп1 hck2 апп2 hck2 витрин + битрикс Я фигею! У вас куча отдельных независимых систем! Вам по любому строить Message arhitecture с каким нибудь сервером сообщений(необязательно кафка). Нарисуйте 6 квадратиков и стрелки между ними ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2020, 13:46 |
|
Tomcat из Spring boot перестает отвечать
|
|||
---|---|---|---|
#18+
Учитывая такое количество тревожных звоночков - я-бы попробовал уже не Кафку а Rabbit-MQ. Просто ... так. Инженерная интуиция. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2020, 13:48 |
|
|
start [/forum/topic.php?fid=59&msg=40030355&tid=2120566]: |
0ms |
get settings: |
13ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
39ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
421ms |
get tp. blocked users: |
0ms |
others: | 300ms |
total: | 784ms |
0 / 0 |