|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
Добрый день. Хочу ознакомится со Spring https://projects.spring.io/spring-roo/ в рамках следующей задачи. Задача Есть операции\документы которые идут из шины Rabbit в Xml, сообщения сначала сохраняются в буфер далее Parsing и перекладываются в реляционную базу данных . Ключевым в данной задаче является маштабирование приложения на несколько серверов (параллельная обработка пакетов документов) поскольку оно high load . Из интерфейса простая админ консоль С точки зрения Java EE реализация понятна, а вот документации Spring не нашел никаких архитектурных концепций Есть ли где то внятное описание по построению high load приложений на Spring https://projects.spring.io/spring-roo/ в основном их концепции разработки а не архитектура? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 13:42 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
selis76Хочу ознакомится со Spring https://projects.spring.io/spring-roo/ в рамках следующей задачи.Вот это ты откопал реликвию :) Это мертворожденный проект. selis76С точки зрения Java EE реализация понятна, а вот документации Spring не нашел никаких архитектурных концепцийА что понятно с точки зрения Java EE? Spring особо архитектуру не диктует. Как в общем-то и Java EE. Так что если понятно как это на Java EE сделать, то наверно должно быть понятно как и вне его делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 13:59 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev>Spring особо архитектуру не диктует. Как в общем-то и Java EE. Ок хорошо архитектуру в Java EE диктуют официальные курсы типа "Java EE 7: Back-End Server Application Development" для java beans. У сприга своя концепция контейнеров и бинов и набор аннотаций, означает что у них должен быть свой best practice \ patterns для high load приложений. Хотелось бы об этом почитать ? Но поиски spring high load ничего не дают, только про мелкий тюнинг. Возможно разработчики spring в принципе на High load не закладывались поэтому эта тема обходится стороной. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 14:50 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
selis76, Может начать с термина "высоконагруженное приложение?". С чего вы взяли что горизонтальное масштабирование это золотая пуля и все для вас решит? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 15:03 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
selis76 поиски spring high load ничего не дают, А вы хотите экстерном пропустив hello world говорить про шины ESB и интеграционные платформы ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 15:07 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
PetroNotC Sharp selis76, Может начать с термина "высоконагруженное приложение?". С чего вы взяли что горизонтальное масштабирование это золотая пуля и все для вас решит? Потому что это опыт. PetroNotC - если бы я хотел порассуждать на тему https://www.section.io/blog/scaling-horizontally-vs-vertically/ то набросал бы на вентилятор всем желающим. А так у меня маленький конкретный вопрос по документации. А еще проще хочу понять - Spring экосистема со своими ++ подходит для этой задачи или нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 15:50 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
selis76, А где ЗАДАЧА? Высокая нагрузка это расплывчатый термин. А слова "экосистема" вообще от менеджера. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 16:03 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
selis76, Спринг - это средство для упорядочивания и упрощения структуры кода. Структура кода и архитектура систем - это разные вещи. Поэтому вопрос "Есть ли где то внятное описание по построению high load приложений на Spring" звучит не лучше чем "Я форматирую код через табы, а не пробелы. Есть ли внятное описание по построению high load приложений с табами". Ладно, звучит лучше, но суть думаю ясна В spring есть средства для удобной работы и с rabitmq, с базами данных и еще куча готовых решений для упрощения работы. Первично надо понять, что вы хотите конкретно сделать, а потом понять упростит ли работу с этим spring или нет ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 18:32 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
SpringMan, +1 Тут один профи говорил. Спринг - это клей. Аффтар, Дак в чем ваш вопрос для клея? ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 19:17 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
SpringMan selis76, Спринг - это средство для упорядочивания и упрощения структуры кода. Структура кода и архитектура систем - это разные вещи. Поэтому вопрос "Есть ли где то внятное описание по построению high load приложений на Spring" звучит не лучше чем "Я форматирую код через табы, а не пробелы. Есть ли внятное описание по построению high load приложений с табами". Ладно, звучит лучше, но суть думаю ясна В spring есть средства для удобной работы и с rabitmq, с базами данных и еще куча готовых решений для упрощения работы. Первично надо понять, что вы хотите конкретно сделать, а потом понять упростит ли работу с этим spring или нет Т.е. они понаделали столько Spring Cloud, Spring data ради "упорядочивания и упрощения структуры кода" так что их документация это отдельная область знаний . Да в современном мире все бывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 19:44 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
selis76, Spring Cloud это конкретное облако. Его пощупать можно. Spring Data тоже конкретика. А вот ваш впрос это бла бла бла ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 20:26 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
selis76 Т.е. они понаделали столько Spring Cloud, Spring data ради "упорядочивания и упрощения структуры кода" так что их документация это отдельная область знаний . Да в современном мире все бывает. Еще что немаловажно это уменьшение количества технического кода. Обычно документацию спринга всю подряд никто и не читает. Обычно ищут решение конкретной проблемы. Задача "писать из rabbit mq в базу" это слишком общая постановка - непонятно какие кокретно у вас там узкие места (а их может быть много, а может и не быть вообще). Может достаточно просто написать сервис, который сохраняет из очереди в базу, и разложить его на несколько машин ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 21:16 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
SpringMan, угу. Учитывая что Rabbit поддерживает кластеры и сам имеет свою БД. То есть уже есть из коробки масштабирование. Вот оно - high load)) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 21:45 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
selis76 Stanislav Bashkyrtsev>Spring особо архитектуру не диктует. Как в общем-то и Java EE. Ок хорошо архитектуру в Java EE диктуют официальные курсы типа "Java EE 7: Back-End Server Application Development" для java beans.Но там же нет ничего про high load? Вот и в спринге нет. High load - это ортогонально EE, Spring'ам. Это то как ты настраиваешь app server'a и как ты пишешь свой код. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2021, 10:19 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
SpringMan ....Задача "писать из rabbit mq в базу" это слишком общая постановка - непонятно какие кокретно у вас там узкие места (а их может быть много, а может и не быть вообще). Может достаточно просто написать сервис, который сохраняет из очереди в базу, и разложить его на несколько машин Постановка может быть общей но достаточной для построения архитектуры. Все зависит от разрезов анализа через которые проходит любая! задача по разработке у Вас в голове. Это в голове либо есть либо нет и поэтому PetroNotC Sharp ждет ЗАДАЧУ . Я использую около 10 . Если применить 2 - обработка ошибок и логгирование. "сервис, который сохраняет из очереди в базу, и разложить его на несколько машин[" Плохое решение. Напр произошла ошибка - прикладная и техническая. Что будете делать? Оба сервиса независимо ее обработают и попытаются записать один и тот же пакет операций повторно? А логи мы будем по разным машинам отдельно собирать? И наконец без диспетчера делить операции на пакеты трудновато Получается придется выделять диспетчера который управляет загрузкой на разных машинах. А если диспетчер то чтото просто разложить уже не получается А узкие места тоже ясны это всегда будет субд для такой задачи ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2021, 10:39 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
selis76, Извини. Ты кто по должности в этом топике? Постановщик пишет ТЗ по ГОСТ. Ты не захотел. Архитектор знает java. Ты вроде не знаешь. Кроме того здесь программисты и любят топики с кодом. Постановщики сидят в ветке "Разработка ИС. Давай код что ли. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2021, 13:36 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
selis76Добрый день. Хочу ознакомится со Spring.... С точки зрения Java EE реализация понятна, а вот документации Spring не нашел никаких архитектурных концепций Есть ли где то внятное описание по построению high load приложений на Springтебе нужно искать подсказки отностительно deployment-a. Java EE - ceрвер куда деплоится приложение, хотя и Java EE сервер можно засунуть в контейнер, String не платформа для деплоймента. Наверное надо выбрать облака из нескольких возможных. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2021, 19:08 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
ra-001 тебе нужно искать подсказки отностительно deployment-a. Java EE - ceрвер куда деплоится приложение, хотя и Java EE сервер можно засунуть в контейнер, String не платформа для деплоймента. Наверное надо выбрать облака из нескольких возможных. Спасибо посмотрю ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2021, 11:26 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
>PetroNotC Sharp Постановка для ответа на конкретный вопрос по документации в топике достаточна. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2021, 11:44 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
selis76 >PetroNotC Sharp Постановка для ответа на конкретный вопрос по документации в топике достаточна. Вопрос публичный. Чтобы другие не делали как ты. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2021, 16:52 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
selis76 Хочу ознакомится со Spring https://projects.spring.io/spring-roo/ в рамках следующей задачи. Ключевым в данной задаче является маштабирование приложения на несколько серверов (параллельная обработка пакетов документов) поскольку оно high load . Так нельзя ставить задачу. Если ты хочешь изучать Spring - изучай. Если тебе нужно сделать масштабирование - то это другие усилия в другом перпендикулярном направлении. Их можно делать со Spring или без Spring но важно поставить приоритеты. С точки зрения Java EE реализация понятна, а вот документации Spring не нашел никаких архитектурных концепций Мне просто интересно а что ты вообеще хотел найти? Шаблон параллельной обработки документов? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2021, 18:24 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
selis76 Добрый день. Есть ли где то внятное описание по построению high load приложений на Spring https://projects.spring.io/spring-roo/ в основном их концепции разработки а не архитектура? Есть... только для Spring-Boot и с использованием kuberntes + docker. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2021, 08:01 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
mad_nazgul, Угу. Только не надо делать синонимы из слов Микросервисы и высоконагруженные) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2021, 08:04 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
Вот я-бы рассмотрел эту задачу в вакууме (pure-java) Есть операции\документы которые идут из шины Rabbit в Xml, сообщения сначала сохраняются в буфер далее Parsing и перекладываются в реляционную базу данных . Ключевым в данной задаче является маштабирование приложения на несколько серверов (параллельная обработка пакетов документов) поскольку оно high load . и подумал что здесь собственно параллелится? Чтение из Rabbit MQ (вряд-ли)? Parsing - эээ... скорее всегда да. Это будет идеальный параллелизм по Амдалу если у нас на входе 1 документ и на выходе 1 независимый документ. Или россыпь data-rows которые независимы. Запись в БД? Да. Может быть распараллелится но я-бы сделал ставку просто на грамоттный батчинг с регулировкой размера пачки. Тоесть я-бы предложил проговорить эти вопросы. Сделать макет на pure-java или можете с любым фреймворков. А потом уже сделать Spring как связующий цемент для компонентов. Просто я не хочу чтобы интересные и сложные вопросы мультипоточки и декомпозиции XML документов на атомы с загрузкой в БД были просто "заболтаны" под слоем всяких SpringData/Orm и прочей чепухи которая пока что несет смысл косметический а не перформансный. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2021, 15:49 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
SpringMan selis76, Спринг - это средство для упорядочивания и упрощения структуры кода. Вот оно как оказывается, а я всегда думал наоборот. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2021, 16:18 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mad_nazgul, Угу. Только не надо делать синонимы из слов Микросервисы и высоконагруженные) Stateless и горизонтальное масштабирование. Не?! <:o) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2021, 08:31 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
mad_nazgul, А если тонкое место в субд? Например, не успевает записывать? А если тонкое место в консолидации данных? Например, нужно перед записью собрать "портрет заёмщика и кредитную историю.? То есть причем тут тогда микросервисы или JSP? Ведь JSP тоже можно написать высоконагруженным и нет. Например, создав сессию в оперативке повысим скорость записи в сотню раз. Среди самолетов есть быстрые и медленные. Среди поездов есть скорые. Среди велосипедов есть трековые. Аналогия понятна? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2021, 10:54 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
mad_nazgul PetroNotC Sharp mad_nazgul, Угу. Только не надо делать синонимы из слов Микросервисы и высоконагруженные) Stateless и горизонтальное масштабирование. Не?! <:o) 2 all. Я-бы всё таки различал high-load и горизонтальное мастабирование. Мне кажется что одно из другого не вытекает. Приведу примеры. Spark/Hadoop - горизонтально мастабируется но работает в импульсном режиме. Отработал запрос и дальше - делать нечего. Это не highload. Хайлоад вообще предполагает постоянную загрузку железа на 100% возможностей. Пока делать нечего - ноды можно выкинуть или задейстовать под что-то другое. Следующий каскад запросов в spark придет в следующем месяце когда бизнес аналитики вернутся к месячным данным. Еще пример. Docker/Kuber кластер обеспечивает работу бизнеса в будние дни и в праздничные дни и дни маркетинг-акций с разницей нагрузки в 1000%. Но скорость добавление новых вычислительных ресурсов в кластер - не бесконечна. Возможно кластер должен исполнить какие-то протоколы кворумов и согласнований. Тоесть со старта "чёрной пятницы" кластер будет испытывать какие-то переходные процессы до того как он добавит новые ноды в кластер и согласует их. Также нужно время чтобы клиентские сессии перебалансировались на новые адреса. Тоесть хайлоад то у нас заявлен. Но нужно время на подготовку. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2021, 11:10 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mad_nazgul, А если тонкое место в субд? Например, не успевает записывать? И-и-и? Для "размазывания" нагрузки есть асинхронщина и очереди. PetroNotC Sharp А если тонкое место в консолидации данных? Например, нужно перед записью собрать "портрет заёмщика и кредитную историю.? Кеширование?! PetroNotC Sharp То есть причем тут тогда микросервисы или JSP? Ведь JSP тоже можно написать высоконагруженным и нет. Например, создав сессию в оперативке повысим скорость записи в сотню раз. Тем что jsp это фронтенд, который может работать с микросервисным бакендом. :-) PetroNotC Sharp Среди самолетов есть быстрые и медленные. Среди поездов есть скорые. Среди велосипедов есть трековые. Аналогия понятна? Нет. Аналогия ничего не доказывает и ничего не объясняет. ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2021, 11:41 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
mayton mad_nazgul пропущено... Stateless и горизонтальное масштабирование. Не?! <:o) 2 all. Я-бы всё таки различал high-load и горизонтальное мастабирование. Мне кажется что одно из другого не вытекает. Как сказали на одной high-load конференции. High-load это про недостаток средств/ресурсов. :-) Грубо говоря когда у вас не хватает ресурсов для обработки текущих данных. Если вы можете нарастить мощности экстенсивно, то это не high-load. А вот когда приходится наращивать мощности интенсивно, то это уже high-load. <:o) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2021, 11:46 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
mad_nazgul, Не. Текст maytona мне более понятен. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2021, 12:57 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
mad_nazgul Как сказали на одной high-load конференции. High-load это про недостаток средств/ресурсов. :-) Грубо говоря когда у вас не хватает ресурсов для обработки текущих данных. Если вы можете нарастить мощности экстенсивно, то это не high-load. А вот когда приходится наращивать мощности интенсивно, то это уже high-load. <:o) Странное опредление. А если наращивать интенсивно невозможно? Хайлоад закончился? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2021, 13:05 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
mayton mad_nazgul Как сказали на одной high-load конференции. High-load это про недостаток средств/ресурсов. :-) Грубо говоря когда у вас не хватает ресурсов для обработки текущих данных. Если вы можете нарастить мощности экстенсивно, то это не high-load. А вот когда приходится наращивать мощности интенсивно, то это уже high-load. <:o) Странное опредление. А если наращивать интенсивно невозможно? Хайлоад закончился? Скорее наоборот. Если уже нельзя наращивать экстенсивно, то приходится интенсивно. А если уже нельзя наращивать интенсивно, то все "приехали". :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2021, 20:18 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
mad_nazgul Тем что jsp это фронтенд, который может работать с микросервисным бакендом. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2021, 20:28 |
|
Архитектура приложения на spring
|
|||
---|---|---|---|
#18+
maytonЕще пример. Docker/Kuber кластер обеспечивает работу бизнеса в будние дни и в праздничные дни и дни маркетинг-акций с разницей нагрузки в 1000%. Но скорость добавление новых вычислительных ресурсов в кластер - не бесконечна. Возможно кластер должен исполнить какие-то протоколы кворумов и согласнований. Тоесть со старта "чёрной пятницы" кластер будет испытывать какие-то переходные процессы до того как он добавит новые ноды в кластер и согласует их. Также нужно время чтобы клиентские сессии перебалансировались на новые адреса. Тоесть хайлоад то у нас заявлен. Но нужно время на подготовку.Критикуешь, не опасно ? maytonОпасно стало в наше время что-то критиковать или призывать. Покритикуешь в соц-сетях ... и потом забанят тебя уже не в соц-сетях. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2021, 08:34 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120336]: |
0ms |
get settings: |
17ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
79ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
536ms |
get tp. blocked users: |
1ms |
others: | 5ms |
total: | 649ms |
0 / 0 |