Java guru
2.78K subscribers
1 photo
1 video
1 file
268 links
Новости из мира Java, обзоры интересных библиотек и фреймворков, обучающие статьи. Онлайн обсуждения актуальных тем и обмен опытом. Для связи @RodmanDV
Download Telegram
🔍 Разбираемся с Vespa. Часть 2

Продолжаем погружение в мир поиска и обработки данных с Vespa!

Сегодня разберём ключевые аспекты платформы:

Узнаете:

- Что такое Document и Query Processing: этапы обработки документов и запросов.
- Обработка текста: токенизация, стемминг и оптимальные методы для русского языка.
- Алгоритмы поиска: как эффективно находить нужную информацию среди множества данных.
- Ранжирование результатов: почему одни результаты оказываются выше других.

https://habr.com/ru/companies/sportmaster_lab/articles/848992/

#Vespa
🔥2👍1
🔥 API-Шлюз или опять тестировать

Разработчики часто сталкиваются с вопросом централизации обработки запросов при увеличении количества микросервисов. Важность Gateway подчеркивается двумя аспектами:

Безопасность: благодаря единому пункту входа легко организовать полный аудит событий.
Производительность: такие сервисы помогают разгрузить основную систему, предотвращая обработку некорректных запросов.

Просто закупка мощного железа неэффективна и ведет к дополнительным расходам.

Проблемы существующих подходов

Автор статьи отмечает недостатки популярного инструмента Spring Cloud Gateway:

- Необходимость написания множества фильтров вручную.
- Увеличение трудоемкости проекта.
- Сложность реализации прозрачности авторизации и проверки данных.

🆕 Предлагаемое решение

Предлагается новый подход, позволяющий оптимизировать работу над проектом Mireapay:

1. Использование проверенных методов авторизации: интеграция авторизационных механизмов прямо в инфраструктуру.
2. Снижение расходов на разработку: автоматическая генерация шаблонов gateways и клиентов снижает количество ручного программирования.
3. Выявление ошибок заранее: переход к обнаружению багов на этапе компиляции повышает качество конечного продукта.

Эти меры позволят сократить затраты на сопровождение сложной инфраструктуры и повысить эффективность командной работы.

https://habr.com/ru/articles/854880/

#микросервисы #шлюз
🔥5👍42
🔥 Знакомьтесь с Tribuo 🚀

Tribuo — это библиотека машинного обучения на Java от Oracle. Она помогает решать разные задачи, такие как классификация, регрессия и кластеризация. Сегодня поговорим именно о регрессии — важной задаче, позволяющей предсказывать численные значения (например, цены или температуры).

Главные плюсы Tribuo:
Удобный интерфейс для быстрого построения моделей
Простота оценки качества созданных моделей

https://habr.com/ru/companies/otus/articles/853300/

#машинноеобучение #tribuo #java #oracle
🔥7👌5
Что ищет он в краю далёком? Как найти смысл жизни с PostgreSQL

Эта статья — о том, как адаптировать PostgreSQL для векторного поиска, исследуя возможности и расширения, такие как pgvector, и показывая, как они работают на практике. В результате у вас будет полноценное руководство по тому, как развернуть смысловой поиск на PostgreSQL, обходя стороной дорогие и сложные специализированные решения.

https://habr.com/ru/companies/rostelecom/articles/855712/

#PostgreSQL #pgvector #LLM
👏6🔥51
HHH90003004: firstResult/maxResults specified with collection fetch; applying in memory

Hibernate выводит важное предупреждение, когда для постраничного вывода приходится загружать сразу ВСЕ записи из базы данных — вместо того, чтобы запрашивать страницы порциями.

Проблема возникает потому, что число записей не совпадает с числом самих объектов (например, один пост имеет много комментариев). Из-за этого пагинация на SQL-уровне невозможна.

Чтобы реализовать пагинацию программно, Hibernate вытаскивает все данные целиком — и вот тут-то кроется подвох!

В статье разобраны разные способы устранения проблемы 🚀

https://habr.com/ru/articles/856092/

#Hibernate #Database
🔥64👍2
Виртуальные потоки Java: разбор тестовых сценариев

Команда Open Liberty изучила влияние виртуальных потоков на производительность Java-приложений и поделилась результатами исследования.

🔹 Что нового: Виртуальные потоки предлагают альтернативу классическим пулам потоков, реализованным в Liberty.

🔸 Основные выводы:
Для большинства облачных рабочих нагрузок использование виртуальных потоков не даёт заметных преимуществ перед адаптивными пулами потоков Open Liberty.
Нагрузки, активно использующие процессор, показывают меньшую пропускную способность с виртуальными потоками, хотя причина этого ещё выясняется.
⚡️ Время выхода на полную мощность обработки запросов сокращается благодаря использованию виртуальных потоков («один поток на запрос»).
📊 Объем занимаемой памяти зависит от множества факторов, поэтому снижение потребления памяти виртуальными потоками не гарантирует общего снижения затрат ресурсов.
⚠️ Обнаружены случаи неожиданных падений производительности, над которыми продолжается работа совместно с сообществом OpenJDK.

Статья подробно описывает тестирование, сравнение технологий и рекомендации по выбору подходящей стратегии многопоточности для приложений на платформе Open Liberty.

https://habr.com/ru/companies/otus/articles/856464/

#java #OpenLiberty #multithreading #VirtualThreads
👍4🔥32😱1
🔥 Как защитить персональные данные пользователей в условиях строгих правовых ограничений?

Многие компании, особенно в сфере финансов, вынуждены сталкиваться с проблемой хранения персональных данных пользователей ограниченное количество времени. Например, хранение данных кредитных карт возможно лишь на короткий период — буквально считанные минуты! 🚨

В статье простой пример реализации подобного сценария с использованием Spring и Redis. Вот что делает этот микросервис:

Получает POST-запросы с зашифрованными карточными данными (для демонстрации используем простую строку).
Хранит данные всего 5 минут в Redis.
Автоматически удаляет запись после её прочтения через GET-запрос.

Этот микросервис подходит для внутренних нужд компаний, обеспечивая защиту данных внутри корпоративного периметра. Пользователи и внешние сервисы доступа к данным не имеют!

https://habr.com/ru/articles/857518/

#DataProtection #PrivacyFirst #CyberSecurity #SpringBoot #Redis #Microservices #FinTech #SecureDevelopment #NoSQL #JavaDev #BackendDevelopment
4🔥4😱1
Представьте себе мир, где ваш поиск становится умнее и быстрее благодаря современным технологиям. Сегодня мы погрузимся в увлекательную тему RAG-систем и выясним, почему они становятся незаменимым инструментом для разработчиков и компаний, стремящихся улучшить качество поиска.

Что вас ждёт?
Теория, объясняющая суть RAG-технологий простым языком
Практический разбор с использованием популярных инструментов: Spring AI, векторных баз данных и моделей машинного обучения (LLM)
Подробный гайд по созданию собственного приложения на Java и Spring Boot — от задумки до готового продукта
Чёткие инструкции и живой код, который легко повторить

Забудьте о сложных формулах и непонятных концепциях — здесь всё разложено по полочкам!

https://habr.com/ru/companies/ruvds/articles/924100/

#RAG #SpringAI #Java #SpringBoot #ИскусственныйИнтеллект #МашинноеОбучение #ПоисковыеАлгоритмы #ПрактическоеРуководство
🔥6👍54🤡1