Size: a a a

2020 November 06

*

*( in pro.jvm
Yuri M
Я бы откликнулся на другую позицию — это задание можно коротко назвать ‘Земля без Радости’
другой нет
источник

D

Dima in pro.jvm
DOCDOCTOR
Аргумент дмитрия, о том что ентити не должно покидать транзакционную область,, очень логичен. Но я всегда передавал из сервиса в контроллер ентити, а дальше конвертил, теперь думаю, норм ли это? Просто что меня смущает, это то, разные контроллеры могут работать с разными дто, а вот может быть для всех них нужна какая то общая логика, и поэтому я всегда работал на уровне логики с ентитям, чтобы в контроллеры сконвертить и все, а дальше уже все методв работают конкретно с энтити
собственно мое объяснение выше было, JPA Entity != Model, тем более в Anemic Model, и передача ее в котроллер оборачивается неприятностями, от open-in-view до LazyInitializationException
источник

iG

invoke "Маэстро... in pro.jvm
Yuri M
Домашнее задание. Спроектировать приложение "Библиотека":
Автор
Книга
Читатель
Читатель может брать книги

Реализовать хранение сущностей в БД.

Реализовать сервисы и контроллеры для операций:
получить все книги, которые читает читатель с ID;
получить все книги автора с ID;
получить читателя, который читает книгу с ID
получить всех читателей, которые читают книги автора с ID.

Покрыть API тестами на MocKMvc
А я видел в вакансиях иногда требуют RabbitMQ, Kafka. Можно ли их тут как-то прикрутить к какой-то фиче? Что бы оно к месту было.
источник

iG

invoke "Маэстро... in pro.jvm
Если развить идею описанную в ДЗ, конечно
источник

D

DOCDOCTOR in pro.jvm
Dima
собственно мое объяснение выше было, JPA Entity != Model, тем более в Anemic Model, и передача ее в котроллер оборачивается неприятностями, от open-in-view до LazyInitializationException
Да я понял, спасибо)
источник

YM

Yuri M in pro.jvm
invoke "Маэстро" GrandSenior;
А я видел в вакансиях иногда требуют RabbitMQ, Kafka. Можно ли их тут как-то прикрутить к какой-то фиче? Что бы оно к месту было.
Лучше сделать отдельное задание — асинхронный запрос — ответ через Kafka.

Условно вы из одного сервиса через Spring KafkaTemplate шлете ‘hello’ — другой сервис запрос получает и отвечает во второй топик ‘HELLO’

Можете в рамках одного приложения эти сервисы сделать — в один топик пишете, из другого читаете
источник

YM

Yuri M in pro.jvm
Как именно сделать общение с Kafka в Spring — вариантов много.
Я бы начал с @KafkaListener
источник

iG

invoke "Маэстро... in pro.jvm
Yuri M
Как именно сделать общение с Kafka в Spring — вариантов много.
Я бы начал с @KafkaListener
Спасибо за помощь 😃
источник

AM

Aleksander Melnichni... in pro.jvm
Всем привет! А может кто-нибудь подсказать по настройкам
-XX:MinRAMPercentage=percent
-XX:MaxRAMPercentage=percent
-XX:InitialRAMPercentage=percent
Занимаюсь тюнингом своих прилаг, раньше указывал xms == xmx - но так
как запускаю все в контейнерах, хочу чтобы лимиты в процентах от значения в cgroups работали,
юзаю опцию -XX:+UseContainerSupport и -XX:+AlwaysActAsServerClassMachine так же.
Ожидал что это все будет работать аналогично опциям xms и xmx, но обнаружил, что
если сделать принудительный gc - реальный размер хипа режется в половину хотя выставил опцию -XX:MinRAMPercentage == -XX:MaxRAMPercentage,
а если выставлять еще -XX:InitialRAMPercentage == -XX:MaxRAMPercentage то хип только при запуске будет равен MaxRAMPercentage, а при первом full gc снова упадет
примерно в несколько раз. Вопрос такой, можно ли как-нибудь с помощью этих опций сделать так, чтобы хип не ресайзился?
источник

VP

Vladimir Petrakovich in pro.jvm
Aleksander Melnichnikov
Всем привет! А может кто-нибудь подсказать по настройкам
-XX:MinRAMPercentage=percent
-XX:MaxRAMPercentage=percent
-XX:InitialRAMPercentage=percent
Занимаюсь тюнингом своих прилаг, раньше указывал xms == xmx - но так
как запускаю все в контейнерах, хочу чтобы лимиты в процентах от значения в cgroups работали,
юзаю опцию -XX:+UseContainerSupport и -XX:+AlwaysActAsServerClassMachine так же.
Ожидал что это все будет работать аналогично опциям xms и xmx, но обнаружил, что
если сделать принудительный gc - реальный размер хипа режется в половину хотя выставил опцию -XX:MinRAMPercentage == -XX:MaxRAMPercentage,
а если выставлять еще -XX:InitialRAMPercentage == -XX:MaxRAMPercentage то хип только при запуске будет равен MaxRAMPercentage, а при первом full gc снова упадет
примерно в несколько раз. Вопрос такой, можно ли как-нибудь с помощью этих опций сделать так, чтобы хип не ресайзился?
Наверное,  AlwaysPreTouch поможет. А почему вас так беспокоит уменьшение хипа?
источник

AM

Aleksander Melnichni... in pro.jvm
Vladimir Petrakovich
Наверное,  AlwaysPreTouch поможет. А почему вас так беспокоит уменьшение хипа?
Запускаю в докере, и так как там я уже отдаю контейнеру конкретные значения, думаю зачем ему отдавать память. Я не уверен, конечно, я не мерил - есть ли какой-то от этого импакт на перфоманс. По крайней мере, так советую в некоторых статьях на хабре делать - если это не страшно, то я могу в принципе успокоиться и ничего не делать =)
источник

AM

Aleksander Melnichni... in pro.jvm
Ну те, у меня нет оверселлинга по памяти. Так как все четко расчитано по ресурсам. Нет смысла ее отдавать
источник

AM

Aleksander Melnichni... in pro.jvm
Забавно, но с -XX:+AlwaysPreTouch приложения зависают при старте.
источник

AL

Alexander Lobanov in pro.jvm
на совсем зависают, или стартуют по полчаса?
источник

AM

Aleksander Melnichni... in pro.jvm
второе
источник

AL

Alexander Lobanov in pro.jvm
ну это не удивительно
источник

AL

Alexander Lobanov in pro.jvm
потому что при старте надо пройтись и аллоцировать всю память
источник

AL

Alexander Lobanov in pro.jvm
и занулить
источник

AM

Aleksander Melnichni... in pro.jvm
Это происходит в фоне? Потому, что по логам все стартует - но ооооочень медленно. Я прочитал что до вызова main должно происходить
источник

AL

Alexander Lobanov in pro.jvm
да, до мейна, при старте процесса, даже если просто хелло ворд запустить сказав дав ему 64 гига и этой опцией он будет стартовать ооочень долго, а потом спринтит и упадет
источник