Все что вам нужно знать о таймаутах
В статье хорошо раскрыта тема таймаутов и даны ссылки на доп материал. В статье дается пример с использованием
https://engineering.zalando.com/posts/2023/07/all-you-need-to-know-about-timeouts.html
В статье хорошо раскрыта тема таймаутов и даны ссылки на доп материал. В статье дается пример с использованием
CompletableFuture, но лучше конечно полагаться на готовые решения типа
Resilience4j.https://engineering.zalando.com/posts/2023/07/all-you-need-to-know-about-timeouts.html
Zalando Engineering Blog
Zalando Engineering Blog - All you need to know about timeouts
How to set a reasonable timeout for your microservices to achieve maximum performance and resilience.
Аудит пользователей Spring Data JPA
В статье приводится одно из возможных решений по аудиту изменений в базе. Хочу также отметить, что с soft delete-ами нужно быть аккуратными. Обратите также внимание на комментарии к статье.
https://habr.com/ru/companies/nlmk/articles/757866/
В статье приводится одно из возможных решений по аудиту изменений в базе. Хочу также отметить, что с soft delete-ами нужно быть аккуратными. Обратите также внимание на комментарии к статье.
https://habr.com/ru/companies/nlmk/articles/757866/
Хабр
Аудит пользователей Spring Data JPA
Задача: в БД необходимо фиксировать кто создал сущность, кто её обновил, и кто её удалил. Все знают, как взять пользователя из контекста и сунуть его в сущность. Допустим,...
Высокие технологии или дешевые фокусы с двойным дном
Мне никогда не приходила идея мокать null. В этом случаи наблюдается достаточно интересный эффект, который на первый взгляд похож на «магию».
https://habr.com/ru/articles/759344/
Мне никогда не приходила идея мокать null. В этом случаи наблюдается достаточно интересный эффект, который на первый взгляд похож на «магию».
https://habr.com/ru/articles/759344/
Хабр
Высокие технологии или дешевые фокусы с двойным дном
Отлаживал я как-то тесты и параллельно размышлял о null-safety. Звезды сошлись и родилась довольно странная идея - замокать null . Искушения программиста смотрящего на Mockito.when().thenReturn() Ниже...
Прикольная игрушка про историю развития Spring
Браузерная игрушка в стиле «Марио», созданная к 20-летию Spring. Управляя листочком, мы узнаем о самых важных вехах развития фреймворка с 2003 года.
https://springone.io/history-of-spring
Браузерная игрушка в стиле «Марио», созданная к 20-летию Spring. Управляя листочком, мы узнаем о самых важных вехах развития фреймворка с 2003 года.
https://springone.io/history-of-spring
springone.io
History of Spring
Congratulations on 20 years of innovation!
JDBC Profiling with VisualVM
Думаю многие из вас пользовались старым добрым VisualVM. В нем есть прекрасная возможность попрофилировать взаимодействие с базой. В частности можно поисследовать медленные запросы к базе, а также проблему N+1
https://vladmihalcea.com/jdbc-profiling-visualvm/
Думаю многие из вас пользовались старым добрым VisualVM. В нем есть прекрасная возможность попрофилировать взаимодействие с базой. В частности можно поисследовать медленные запросы к базе, а также проблему N+1
https://vladmihalcea.com/jdbc-profiling-visualvm/
Vlad Mihalcea
JDBC Profiling with VisualVM - Vlad Mihalcea
Learn how to do JDBC profiling using the VisualVM tool and find slow-running SQL queries or N+1 query issues.
FizzBuzz и искусство фильтрации
Проблема FizzBuzz - это классическая задача, которая часто встречается на собеседованиях для программистов. В статье дается решение с использованием Stream API.
https://habr.com/ru/articles/760192/
Проблема FizzBuzz - это классическая задача, которая часто встречается на собеседованиях для программистов. В статье дается решение с использованием Stream API.
https://habr.com/ru/articles/760192/
Хабр
FizzBuzz и искусство фильтрации
Проблема FizzBuzz - это классическая задача, которая часто встречается на собеседованиях для программистов. Обычно она формулируется так: Создайте программу, которая выводит числа от 1 до n. - Если...
Искусство ETL. Пишем собственный движок SQL на Spark [часть 1 из 5]
В данной серии статей подробно рассказано о том, как написать на Java собственный интерпретатор объектно-ориентированного диалекта SQL с использованием Spark RDD API, заточенный на задачи подготовки и трансформации наборов данных.
https://habr.com/ru/articles/760504/
В данной серии статей подробно рассказано о том, как написать на Java собственный интерпретатор объектно-ориентированного диалекта SQL с использованием Spark RDD API, заточенный на задачи подготовки и трансформации наборов данных.
https://habr.com/ru/articles/760504/
Хабр
Искусство ETL. Пишем собственный движок SQL на Spark [часть 1 из 5]
В данной серии статей я подробно расскажу о том, как написать на Java собственный интерпретатор объектно-ориентированного диалекта SQL с использованием Spark RDD API, заточенный на задачи подготовки и...
OOM: direct memory при работе с сетью TCP/IP через NIO в Java
Эта статья основана на реальной практике борьбы с "OutOfMemory: direct memory" в шине данных гибридной интеграционной платформы.
https://habr.com/ru/companies/bercut/articles/762254/
Эта статья основана на реальной практике борьбы с "OutOfMemory: direct memory" в шине данных гибридной интеграционной платформы.
https://habr.com/ru/companies/bercut/articles/762254/
Хабр
OOM: direct memory при работе с сетью TCP/IP через NIO в Java
Вступление Привет, меня зовут Денис Агапитов, я руководитель группы Platform Core компании Bercut. Работаю в компании без малого 20 лет, из них 18 пишу на Java. Сегодня я расскажу об опыте...
Кэширование контекста Spring между запусками тестов: как ускорить процесс локального тестирования
Тестирование является важным элементом процесса разработки программного обеспечения. При этом работа с тестами может занимать достаточно большое количество времени в сравнении с самой разработкой, в связи с этим возникает необходимость оптимизировать этот процесс. В этой статье рассказывается про плагин Sprinter для IntelliJ IDEA, который может помочь значительно сократить время на локальный запуск тестов.
https://habr.com/ru/companies/jugru/articles/762632/
Тестирование является важным элементом процесса разработки программного обеспечения. При этом работа с тестами может занимать достаточно большое количество времени в сравнении с самой разработкой, в связи с этим возникает необходимость оптимизировать этот процесс. В этой статье рассказывается про плагин Sprinter для IntelliJ IDEA, который может помочь значительно сократить время на локальный запуск тестов.
https://habr.com/ru/companies/jugru/articles/762632/
Хабр
Кэширование контекста Spring между запусками тестов: как ускорить процесс локального тестирования
Тестирование является важным элементом процесса разработки программного обеспечения. При этом работа с тестами может занимать достаточно большое количество времени в сравнении с самой разработкой, в...
Microsoft начала выпускать сборки JDK 21,
которые скоро станут доступны на Azure PaaS.
Кроме того, Microsoft анонсировала новый выпуск семантического ядра для Java версии 0.2.9, который, по ее словам, находится в альфа-состоянии. Семантическое ядро - это облегченный SDK для интеграции больших языковых моделей для генеративного искусственного интеллекта с обычными языками программирования. Новая библиотека поможет разработчикам усовершенствовать Java-приложения с помощью расширенного интеллекта за счет идиоматической интеграции больших языковых моделей.
https://www.infoworld.com/article/3707711/microsoft-ships-java-21-builds.html
InfoWorld
Microsoft ships Java 21 builds
Microsoft made Microsoft Build for OpenJDK 21 binaries available for free download and announced that JDK 21 will soon be available in Azure PaaS services.
Микросервисы победили. Или не совсем
В статье представлена довольно оригинальная точка зрения. Обязательно стоит почитать. Меня особенно порадовал коммент где описывается попытка спроектировать калькулятор используя микросервисы ))
https://habr.com/ru/companies/haulmont/articles/766188/
В статье представлена довольно оригинальная точка зрения. Обязательно стоит почитать. Меня особенно порадовал коммент где описывается попытка спроектировать калькулятор используя микросервисы ))
https://habr.com/ru/companies/haulmont/articles/766188/
Хабр
Микросервисы победили. Или не совсем
«Мы хотим сделать систему по учету персонала. Только у наших архитекторов есть требование, что все у нас должно быть на микросервисах». Это, пожалуй, самый бесячий заход, который нам приходится...
Создание и тестирование gRPC сервиса (Spring Boot приложение)
Эта статья будет полезна для тех, кто только начинает знакомиться с gRPC и ищет руководство по написанию и тестированию сервисов.
https://habr.com/ru/articles/767130/
Эта статья будет полезна для тех, кто только начинает знакомиться с gRPC и ищет руководство по написанию и тестированию сервисов.
https://habr.com/ru/articles/767130/
Хабр
Создание и тестирование gRPC сервиса (Spring Boot приложение)
Привет, Хабр! Сегодня я поделюсь опытом работы с gRPC и расскажу как создать и протестировать gRPC -сервис в приложении на Spring Boot . Основная проблема — это отсутствие структурированной информации...
Oracle представила расширение для разработки на Java для Visual Studio Code
Расширение охватывает цикл разработки от редактирования до компиляции, отладки и тестирования, при этом поддерживается рефакторинг на уровне классов и переменных. Первоначальный выпуск предлагает такие функции, как просмотр проекта, автозавершение, выделение ошибок и возможности перехода к определению, а также поддержку модульного тестирования для Junit.
https://www.infoworld.com/article/3709228/oracle-unveils-java-development-extension-for-visual-studio-code.html#tk.rss_java
Расширение охватывает цикл разработки от редактирования до компиляции, отладки и тестирования, при этом поддерживается рефакторинг на уровне классов и переменных. Первоначальный выпуск предлагает такие функции, как просмотр проекта, автозавершение, выделение ошибок и возможности перехода к определению, а также поддержку модульного тестирования для Junit.
https://www.infoworld.com/article/3709228/oracle-unveils-java-development-extension-for-visual-studio-code.html#tk.rss_java
InfoWorld
Oracle unveils Java development extension for Visual Studio Code
Oracle said that its Oracle Java Platform extension would support current JDK releases and the next upcoming JDK version.
Паттерны распределенных транзакций для микросервисов
В статье архитектор из Red Hat проводит анализ паттернов распределенных транзакций для микросервисов.
https://developers.redhat.com/articles/2021/09/21/distributed-transaction-patterns-microservices-compared#the_dual_write_problem
В статье архитектор из Red Hat проводит анализ паттернов распределенных транзакций для микросервисов.
https://developers.redhat.com/articles/2021/09/21/distributed-transaction-patterns-microservices-compared#the_dual_write_problem
Red Hat Developer
Distributed transaction patterns for microservices compared | Red Hat Developer
As a consulting architect at Red Hat, I've had the privilege of working on legions of customer projects. Every customer brings their own challenges but I've found some commonalities. One thing most
Java Unsafe API для низкоуровневого манипулирования памятью
В Java на самом деле есть возможность манипулирования памятью, но лучше не пользоваться механизмом Unsafe. Лучшая альтернатива для него Foreign Function & Memory API.
https://habr.com/ru/companies/otus/articles/770878/
В Java на самом деле есть возможность манипулирования памятью, но лучше не пользоваться механизмом Unsafe. Лучшая альтернатива для него Foreign Function & Memory API.
https://habr.com/ru/companies/otus/articles/770878/
Хабр
Java Unsafe API для низкоуровневого манипулирования памятью
Привет, Хабр! Иногда приходится сталкиваться с задачами, которые требуют выхода за рамки стандартных абстракций и безопасности Java. Мы ищем способы оптимизации, решения проблем производительности,...
@Scheduled + @Async (в Spring Boot)
Допустим вам необходимо выполнять какое-то действие раз в минуту, например ходить в базу и смотреть есть ли там записи по которым не выполнилась отправка во внешнюю систему и если такие есть то выполнить отправку повторно (доотправка).
И еще одно действие, которое надо выполнять раз в день, например сформировать аналитический отчет, и формироваться он будет очень долго, целых 5 минут.
И мы начали замечать, что во время формирования отчета (а мы помним что это длится 5 минут), первый джоб доотправки не выполняется, почему так присходит?
https://habr.com/ru/articles/771112/
Хабр
@Scheduled + @Async (в Spring Boot)
Недавно отвечал на вопрос почему аннотации @Scheduled и @Async иногда используют вместе, данный вопрос попался человеку на собеседовании. Многие начинающие разработчики на java не до конца понимают в...
Жук, нумерология, хеш или ничо? Оптимизация работы с путями
Классическая задача программирования на практике логистики. Думаю, все согласятся, что не рационально гнать отдельную фуру с одной коробочкой для каждого заказа. Наша задача выстроить логистику таким образом, чтобы по пути загрузить и выгрузить как можно больше посылок и поехать дальше.
https://habr.com/ru/companies/cdek_blog/articles/771372/
Классическая задача программирования на практике логистики. Думаю, все согласятся, что не рационально гнать отдельную фуру с одной коробочкой для каждого заказа. Наша задача выстроить логистику таким образом, чтобы по пути загрузить и выгрузить как можно больше посылок и поехать дальше.
https://habr.com/ru/companies/cdek_blog/articles/771372/
Хабр
Жук, нумерология, хеш или ничо? Оптимизация работы с путями
Привет, Хабр! Меня зовут Евгений Кузьмин, я Java‑разработчик в CDEK. Надеюсь, все знают, что это за компания и чем занимается. Давайте представим, что вам нужно отправить посылку...
Трейсы в Spring Boot 3 с использованием Zipkin и Kafka в качестве транспорта
Для трассировки приложений используется Zipkin. Транспортом является Kafka. В статье не решен вопрос со сквозным traceId, но ход мыслей конечно интересный )) вообще конечно решение на jaeger/opentelemetry было бы поинтереснее.
https://habr.com/ru/companies/alfastrah/articles/770566/
Для трассировки приложений используется Zipkin. Транспортом является Kafka. В статье не решен вопрос со сквозным traceId, но ход мыслей конечно интересный )) вообще конечно решение на jaeger/opentelemetry было бы поинтереснее.
https://habr.com/ru/companies/alfastrah/articles/770566/
Хабр
Трейсы в Spring Boot 3 с использованием Zipkin и Kafka в качестве транспорта
Предисловие Страховая компания АльфаСтрахование (далее СК), в которой я работаю, продает страховые продукты не только в офисах, но и через сеть страховых агентов. Агенты могут оформлять полисы,...
Новый фреймворк для микросервисов Helidon 4 от Oracle делает ставку на виртуальные потоки из Java 21
На рынке фреймворков для микросервисов появился довольно интересный конкурент от Oracle. Для достижения высокой производительности там делается ставка на виртуальные потоки, которые появились в Java 21. Произошел по факту переход от парадигмы управления потоками как «ограниченного ресурса» к парадигме «ресурса практически неограниченного и доступного по требованию». До Helidon 4 «под капотом» использовался всеми любимый Netty, а начиная с 4 версии Helidon перешел на новый сервер Nima, который также делает ставку на виртуальные потоки.
Я думаю, что в какой-то момент остальные фреймворки также «подтянутся», но уже сейчас стоит попробовать новые очень вкусные механики.
https://www.infoworld.com/article/3709929/oracle-helidon-4-java-microservices-framework-stresses-virtual-threads.html#tk.rss_java
На рынке фреймворков для микросервисов появился довольно интересный конкурент от Oracle. Для достижения высокой производительности там делается ставка на виртуальные потоки, которые появились в Java 21. Произошел по факту переход от парадигмы управления потоками как «ограниченного ресурса» к парадигме «ресурса практически неограниченного и доступного по требованию». До Helidon 4 «под капотом» использовался всеми любимый Netty, а начиная с 4 версии Helidon перешел на новый сервер Nima, который также делает ставку на виртуальные потоки.
Я думаю, что в какой-то момент остальные фреймворки также «подтянутся», но уже сейчас стоит попробовать новые очень вкусные механики.
https://www.infoworld.com/article/3709929/oracle-helidon-4-java-microservices-framework-stresses-virtual-threads.html#tk.rss_java
InfoWorld
Oracle Helidon 4 Java microservices framework stresses virtual threads
Significantly higher performance is anticipated from the open source cloud-native set of libraries.
Ускоряем запуск Spring Boot-приложений в контейнере
Знаете ли вы, что Spring Boot-приложение в контейнере может запускаться за миллисекунды? При этом без ущерба для производительности, памяти, паритета окружений разработки-продакшена, без ограничений возможностей языка Java, и почти без изменения кода приложения. Но как? С помощью Liberty 23.0.0.10-beta…
https://habr.com/ru/companies/otus/articles/771738/
Знаете ли вы, что Spring Boot-приложение в контейнере может запускаться за миллисекунды? При этом без ущерба для производительности, памяти, паритета окружений разработки-продакшена, без ограничений возможностей языка Java, и почти без изменения кода приложения. Но как? С помощью Liberty 23.0.0.10-beta…
https://habr.com/ru/companies/otus/articles/771738/
Хабр
Ускоряем запуск Spring Boot-приложений в контейнере
Знаете ли вы, что Spring Boot-приложение в контейнере может запускаться за миллисекунды? При этом без ущерба для производительности, памяти, паритета окружений разработки-продакшена, без ограничений...