Создание и тестирование gRPC сервиса (Spring Boot приложение)
Эта статья будет полезна для тех, кто только начинает знакомиться с gRPC и ищет руководство по написанию и тестированию сервисов.
https://habr.com/ru/articles/767130/
Эта статья будет полезна для тех, кто только начинает знакомиться с gRPC и ищет руководство по написанию и тестированию сервисов.
https://habr.com/ru/articles/767130/
Хабр
Создание и тестирование gRPC сервиса (Spring Boot приложение)
Привет, Хабр! Сегодня я поделюсь опытом работы с gRPC и расскажу как создать и протестировать gRPC -сервис в приложении на Spring Boot . Основная проблема — это отсутствие структурированной информации...
👍1
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
👍1
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. Мы ищем способы оптимизации, решения проблем производительности,...
🔥1
@Scheduled + @Async (в Spring Boot)
Допустим вам необходимо выполнять какое-то действие раз в минуту, например ходить в базу и смотреть есть ли там записи по которым не выполнилась отправка во внешнюю систему и если такие есть то выполнить отправку повторно (доотправка).
И еще одно действие, которое надо выполнять раз в день, например сформировать аналитический отчет, и формироваться он будет очень долго, целых 5 минут.
И мы начали замечать, что во время формирования отчета (а мы помним что это длится 5 минут), первый джоб доотправки не выполняется, почему так присходит?
https://habr.com/ru/articles/771112/
Хабр
@Scheduled + @Async (в Spring Boot)
Недавно отвечал на вопрос почему аннотации @Scheduled и @Async иногда используют вместе, данный вопрос попался человеку на собеседовании. Многие начинающие разработчики на java не до конца понимают в...
🔥3
Жук, нумерология, хеш или ничо? Оптимизация работы с путями
Классическая задача программирования на практике логистики. Думаю, все согласятся, что не рационально гнать отдельную фуру с одной коробочкой для каждого заказа. Наша задача выстроить логистику таким образом, чтобы по пути загрузить и выгрузить как можно больше посылок и поехать дальше.
https://habr.com/ru/companies/cdek_blog/articles/771372/
Классическая задача программирования на практике логистики. Думаю, все согласятся, что не рационально гнать отдельную фуру с одной коробочкой для каждого заказа. Наша задача выстроить логистику таким образом, чтобы по пути загрузить и выгрузить как можно больше посылок и поехать дальше.
https://habr.com/ru/companies/cdek_blog/articles/771372/
Хабр
Жук, нумерология, хеш или ничо? Оптимизация работы с путями
Привет, Хабр! Меня зовут Евгений Кузьмин, я Java‑разработчик в CDEK. Надеюсь, все знают, что это за компания и чем занимается. Давайте представим, что вам нужно отправить посылку...
👍1
Трейсы в 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 в качестве транспорта
Предисловие Страховая компания АльфаСтрахование (далее СК), в которой я работаю, продает страховые продукты не только в офисах, но и через сеть страховых агентов. Агенты могут оформлять полисы,...
👍1
Новый фреймворк для микросервисов 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.
🔥3❤1
Ускоряем запуск 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-приложение в контейнере может запускаться за миллисекунды? При этом без ущерба для производительности, памяти, паритета окружений разработки-продакшена, без ограничений...
AI добрался и до JVM
Разработанная командой JVM в компании Oracle, Oracle Java Management Cloud Service представила искусственный интеллект для анализа и генерации рекомендаций по настройке, чтобы улучшить производительность java-приложений. В ролике показано, как он работает и как им пользоваться.
https://youtu.be/HwCW1RjQfd4
Разработанная командой JVM в компании Oracle, Oracle Java Management Cloud Service представила искусственный интеллект для анализа и генерации рекомендаций по настройке, чтобы улучшить производительность java-приложений. В ролике показано, как он работает и как им пользоваться.
https://youtu.be/HwCW1RjQfd4
YouTube
Where the JVM is Entering the Era of AI Performance Tuning! By Ana Maria Mihalceanu
Developed by the JVM team at Oracle, Oracle Java Management Cloud Service (JMS) recently introduced a performance AI engine to analyze and generate tuning recommendations to improve the performance of Java applications.
Core Features:
JMS collects JVM telemetry…
Core Features:
JMS collects JVM telemetry…
🔥3
Helidon 4 вышел, а никто и не заметил
Про Helidon 4 уже была ссылка на канале. Хочу с вами поделиться еще одной. Статья примечательна в том числе сравнением Helidon 4 и Spring. Можно сказать, что виртуальные потоки просто «творят чудеса».
https://habr.com/ru/companies/bar/articles/772726/
Про Helidon 4 уже была ссылка на канале. Хочу с вами поделиться еще одной. Статья примечательна в том числе сравнением Helidon 4 и Spring. Можно сказать, что виртуальные потоки просто «творят чудеса».
https://habr.com/ru/companies/bar/articles/772726/
Хабр
Helidon 4 вышел, а никто и не заметил
Однажды на Joker мы собрали BOF под названием "Java EE vs Spring". Дуэль была оформлена по всем правилам, сообщество Spring пришло в полном составе... а вот второй дуэлянт предпочел не появиться....
🔥1
Разработка высоконагруженного игрового WebSocket сервера на Java, Netty с поддержкой BattleRoyale/Matchmaking
Я люблю Netty. В статье неплохо описан процесс разработки бекенда для игрового сервера. Версия Java правда выбрана странная.
https://habr.com/ru/articles/774322/
Я люблю Netty. В статье неплохо описан процесс разработки бекенда для игрового сервера. Версия Java правда выбрана странная.
https://habr.com/ru/articles/774322/
Хабр
Разработка высоконагруженного игрового WebSocket сервера на Java, Netty с поддержкой BattleRoyale/Matchmaking
Всем доброго времени суток. В предыдущей статье я затронул тему клиентской разработки браузерной игры. В этой же публикации попробую пролить свет на детали разработки мультиплеера, а именно -...
👍3
Garbage Collection и JVM
JVM работает как хорошо отлаженный механизм, автоматически распределяя и освобождая память. Это и есть суть Garbage Collection. Это процесс, который автоматически находит и удаляет объекты, которые больше не используются вашим приложением. Благодаря этому, разработчики могут сосредоточиться на логике приложения, не беспокоясь о ручном управлении памятью.
Знание того, как работает GC и JVM, необходимо каждому Java-разработчику. Правильное управление ресурсами напрямую влияет на производительность и стабильность приложений.
https://habr.com/ru/companies/otus/articles/776342/
JVM работает как хорошо отлаженный механизм, автоматически распределяя и освобождая память. Это и есть суть Garbage Collection. Это процесс, который автоматически находит и удаляет объекты, которые больше не используются вашим приложением. Благодаря этому, разработчики могут сосредоточиться на логике приложения, не беспокоясь о ручном управлении памятью.
Знание того, как работает GC и JVM, необходимо каждому Java-разработчику. Правильное управление ресурсами напрямую влияет на производительность и стабильность приложений.
https://habr.com/ru/companies/otus/articles/776342/
Хабр
Garbage Collection и JVM
Привет, Хабр! JVM работает как хорошо отлаженный механизм, автоматически распределяя и освобождая память. Это и есть суть Garbage Collection. Это процесс, который автоматически находит и удаляет...
👍2
Java 20: огромные разреженные сегменты памяти
Знаете ли вы, что можно выделять сегменты памяти, которые больше, чем физический размер оперативной памяти вашего компьютера, и даже больше, чем размер всей вашей файловой системы?
Новая функция Foreign Function and Memory, которая во второй раз появляется в Java 20, позволяет сопоставлять большие сегменты памяти с файлом.
https://habr.com/ru/articles/710664/
Знаете ли вы, что можно выделять сегменты памяти, которые больше, чем физический размер оперативной памяти вашего компьютера, и даже больше, чем размер всей вашей файловой системы?
Новая функция Foreign Function and Memory, которая во второй раз появляется в Java 20, позволяет сопоставлять большие сегменты памяти с файлом.
https://habr.com/ru/articles/710664/
Хабр
Java 20: огромные разреженные сегменты памяти
Знаете ли вы, что можно выделять сегменты памяти, которые больше, чем физический размер оперативной памяти вашего компьютера, и даже больше, чем размер всей вашей файловой системы? Прочтите эту статью...
👍3
Генерация контрактов OpenApi или прикладной API first: гайд по генерации в Spring Boot приложении
В этой статье будет описана только техника хранения спецификаций и конкретные шаги по их подключению в приложении. Для упрощения здесь не будут описаны некоторые принципы важные для использования в production коммерческих проектов.
https://habr.com/ru/articles/770528/
В этой статье будет описана только техника хранения спецификаций и конкретные шаги по их подключению в приложении. Для упрощения здесь не будут описаны некоторые принципы важные для использования в production коммерческих проектов.
https://habr.com/ru/articles/770528/
Хабр
Генерация контрактов OpenApi или прикладной API first: гайд по генерации в Spring Boot приложении
В этой статье будет описана только техника хранения спецификаций и конкретные шаги по их подключению в приложении. Для упрощения здесь не будут описаны некоторые принципы важные для использования в...
👍2
Польза создания однородных задач для параллельного вычисления
Очень важная мысль из книги "Java concurrency in action"! "Реальная отдача от разделения рабочей нагрузки программы на задачи достигается при наличии большого числа независимых, однородных задач, которые могут обрабатываться конкурентно."
https://habr.com/ru/articles/779188/
Очень важная мысль из книги "Java concurrency in action"! "Реальная отдача от разделения рабочей нагрузки программы на задачи достигается при наличии большого числа независимых, однородных задач, которые могут обрабатываться конкурентно."
https://habr.com/ru/articles/779188/
Хабр
Польза создания однородных задач для параллельного вычисления
Как правильно использовать возможности параллельного программирования? Зачем программистам математика и зачем знать алгоритмы? Представьте что у вас есть 10 задач. Каждая пронумерована от 1 до 10, а...
🔥2
Микросервисы на основе событий с Kafka Streams и Spring Boot
Статья основана на публикациях Confluent о том, как можно реализовать микросервисную архитектуру на основе событий с помощью Kafka Streams и KSQL.
https://habr.com/ru/articles/775900/
Статья основана на публикациях Confluent о том, как можно реализовать микросервисную архитектуру на основе событий с помощью Kafka Streams и KSQL.
https://habr.com/ru/articles/775900/
Хабр
Микросервисы на основе событий с Kafka Streams и Spring Boot
Предисловие Всем привет! Это моя первая статья на Habr, так что не судите строго за стиль, а вот по содержанию буду рад любой конструктивной критике. Статья основана на публикациях Confluent о том,...
👍1🔥1👏1
Операция «K». Ищем баги в коде IntelliJ IDEA
Интересно учиться на чужих ошибках. Давайте посмотрим какие ошибки были выявлены в IntelliJ IDEA.
https://habr.com/ru/companies/pvs-studio/articles/780560/
Интересно учиться на чужих ошибках. Давайте посмотрим какие ошибки были выявлены в IntelliJ IDEA.
https://habr.com/ru/companies/pvs-studio/articles/780560/
Хабр
Операция «K». Ищем баги в коде IntelliJ IDEA
В этой статье мы проверим проект IntelliJ IDEA Community Edition на наличие ошибок и отправим наши правки разработчикам. Крупный проект, Open Source база и использование статического анализатора при...
👍2🔥1
В Spring Boot 3.2 появилась поддержка Virtual Threads и новых RestClient и JdbcClient
Оперативненько надо признать )) Helidon задал тренд. Помимо виртуальных потоков там появилась еще поддержка Coordinated Restore at Checkpoint (CRaC).
Для того чтобы использовать виртуальные потоки в Spring Boot 3.2 вам нужно будет добавить в конфигурацию параметр
Оперативненько надо признать )) Helidon задал тренд. Помимо виртуальных потоков там появилась еще поддержка Coordinated Restore at Checkpoint (CRaC).
Для того чтобы использовать виртуальные потоки в Spring Boot 3.2 вам нужно будет добавить в конфигурацию параметр
spring.threads.virtual.enabled
и выставить ему true. Не забываем что все это будет работать только на Java 21 ))
Очень круто! Я безмерно рад ))
https://www.infoq.com/news/2023/12/spring-boot-virtual-threads/
InfoQ
Spring Boot 3.2 Delivers Support for Virtual Threads and Modern RestClient and JdbcClient
The Spring Boot team released Spring Boot 3.2 in November 2023. This latest release is packed with features, the most noteworthy of which is the support for Virtual Threads and Coordinated Restore at Checkpoint (CRaC). Other features include SSL Bundle reloading…
🔥6❤2
Интеграция Keycloak в приложение Spring Boot 3 с использованием протокола OAuth2.0
В данной статье представлен процесс интеграции Keycloak в приложение Spring Boot 3 в качестве сервера авторизации с использованием протокола OAuth2.
Keycloak - это средство с открытым исходным кодом, предоставляющее полнофункциональную платформу для управления идентичностью и доступом.
https://habr.com/ru/companies/axenix/articles/780422/
В данной статье представлен процесс интеграции Keycloak в приложение Spring Boot 3 в качестве сервера авторизации с использованием протокола OAuth2.
Keycloak - это средство с открытым исходным кодом, предоставляющее полнофункциональную платформу для управления идентичностью и доступом.
https://habr.com/ru/companies/axenix/articles/780422/
Хабр
Интеграция Keycloak в приложение Spring Boot 3 с использованием протокола OAuth2.0
В современном мире веб-разработки обеспечение безопасности пользовательских идентификаторов и управление доступом к ресурсам становятся все более важными задачами. Один из мощных инструментов,...
👍3🔥3