— NLB (Network Load Balancer) – распределяет трафик на уровне IP. Он работает на более низком уровне и не анализирует HTTP-запросы.
— ALB (Application Load Balancer) – маршрутизирует запросы на основе HTTP-заголовков или URL. ALB предлагает более сложные правила маршрутизации. Выбор между NLB и ALB зависит от ваших потребностей. Для простых сервисов в небольших масштабах одного балансировщика нагрузки может быть достаточно.
— API Gateway – работает на уровне приложений и берет на себя задачи, такие как аутентификация, ограничение скорости запросов, кэширование и другие. Его функции отличаются от Load Balancer.
Схема иллюстрирует детали работы этих компонентов. Чаще всего Load Balancer и API Gateway используются вместе, чтобы создать масштабируемую и безопасную архитектуру для современных веб-приложений.
🔹 Два подхода к архитектуре:
— Опция A: ALB + сервисы
ALB распределяет запросы между различными сервисами. Ограничение запросов, аутентификация и другие функции реализуются на уровне сервисов. Это более гибкий подход, но требует больше работы при разработке.
— Опция B: API Gateway + сервисы
API Gateway берет на себя функции аутентификации, ограничения запросов, кэширования и других задач. Это упрощает разработку сервисов, но уменьшает гибкость по сравнению с первым вариантом.
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы активно используете Stream API, стоит посмотреть на библиотеку JOOλ (jOOL). Она расширяет стандартные возможности потоков, добавляя удобные методы для более гибкой обработки данных.
🔹 Что умеет:
— Операции с парами и кортежами
— Группировка с несколькими уровнями (groupBy c несколькими ключами).
— Трансформации коллекций через удобные методы (например, zip, window, cartesianProduct).
— Функции SQL-подобного стиля, позволяющие писать более декларативный и читабельный код.
JOOλ упрощает работу с потоками и делает код более лаконичным и читаемым.
Please open Telegram to view this post
VIEW IN TELEGRAM
Друзья, нас часто спрашивают про публикацию материалов о личном опыте и знаниях в IT. Пора это систематизировать!
Если у вас есть история о том, как вы:
— выросли в профессии
— освоили новые технологии
— сделали крутой карьерный скачок
— эпично лажанулись
— создали интересные проекты
Требования простые:
— Реальный опыт
— Конкретные шаги
— От 5000 знаков
— Ссылка на Google Docs
🔥 Лучшие истории опубликуем на сайте и в наших соцсетях с общим охватом 1млн+ человек.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Java | тесты, код, задания
Какого инструмента для работы с БД не существует?
Anonymous Quiz
2%
Hibernate
52%
SpringDB
19%
Jooq
22%
MyBatis
5%
Spring Data JPA
🔥 — никогда, требования всегда стабильные
🎉 — редко, бывает нужно немного доработать
👍 — часто, бывает перерабатываю значительные части
🌚 — требования меняются быстрее, чем успеваю писать код
Please open Telegram to view this post
VIEW IN TELEGRAM
— Мониторинг JVM: позволяет отслеживать использование памяти (heap и non-heap), количество потоков, загрузку процессора и частоту сборки мусора. Также предоставляет данные в реальном времени.
— Профилирование: помогает определить, какие методы или участки кода потребляют больше всего ресурсов, а также сравнить затраты времени между различными частями приложения.
— Анализ дампов памяти: дает возможность загружать и исследовать heap-дампы для выявления утечек памяти или избыточного использования объектов.
— Трейсинг потоков: отслеживает состояние потоков, показывая, активны ли они, находятся в ожидании или блокируются.
— Расширения: поддерживает подключение плагинов, таких как интеграция с JConsole, мониторинг серверов приложений (например, Tomcat) и другие функции.
1. Установить VisualVM. До 9 java он уже входит в JDK. Для более новых версий его можно скачать отдельно с официального сайта: VisualVM.
2. Запустить локальное приложение — для этого достаточно открыть VisualVM и выбрать активный процесс JVM.
3. Подключиться к приложению, чтобы начать мониторинг. Профилируйте наиболее загруженные части, например, выполнение запросов к базе данных, тяжелые вычисления или работу с потоками.
— Проблемы с производительностью, такие как задержки или повышенное потребление памяти.
— Необходимость в оптимизации кода.
— Диагностика ошибок в многопоточных приложениях.
— Устранение утечек памяти.
Please open Telegram to view this post
VIEW IN TELEGRAM
🌵🕵️♂️ Git-квест: 10 испытаний для повелителя репозиториев
Готовы проверить свои навыки работы с Git? Пройдите наш квест и узнайте, насколько искусны в управлении репозиториями.
Посмотрим, пугают ли вас git stash, git rebase и прочие страшные слова 😁
🔗 Пройти тест
Готовы проверить свои навыки работы с Git? Пройдите наш квест и узнайте, насколько искусны в управлении репозиториями.
Посмотрим, пугают ли вас git stash, git rebase и прочие страшные слова 😁
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
☁️ Какое облако выбрать?
Для наглядности подготовили для вас карточки со сравнением технологий облачных решений!
📎 Подробнее можно почитать в предыдущем посте
🐸 Библиотека devops'a
Для наглядности подготовили для вас карточки со сравнением технологий облачных решений!
Please open Telegram to view this post
VIEW IN TELEGRAM
Interpreter — это поведенческий паттерн, который предоставляет способ вычисления выражений, заданных на каком-либо языке. Он определяет грамматику языка, а также интерпретатор, который использует эту грамматику для выполнения выражений.
Когда использовать
🔹 Для интерпретации выражений на языке, когда есть грамматика для их описания.
🔹 Для создания простых языков с ограниченным синтаксисом, таких как математические выражения, поисковые запросы или фильтры.
🔹 Для упрощения расширения и модификации языка или грамматики, особенно, если эти изменения требуются часто.
Преимущества
Недостатки
Interpreter хорошо подходит для создания простых языков, например, DSL (domain-specific language), и позволяет реализовать мощные возможности анализа и исполнения выражений.
Однако для более сложных языков лучше использовать специализированные инструменты вроде ANTLR или парсеров.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Книги для джавистов | Java
📚Mastering Spring Framework: Java Development Made Easy: Learn Spring JDBC, Spring AOP, JUnit, and Mockito for Expert-Level Java (2024)
✍️Автор: R. Parvin
📃Страниц: 390
Вы Java-разработчик, готовый раскрыть весь потенциал Spring Framework и Spring Boot? Это подробное руководство познакомит вас с основами и передовыми технологиями, которые помогут вам создавать надежные, масштабируемые и эффективные приложения.
Скачать книгу
✍️Автор: R. Parvin
📃Страниц: 390
Вы Java-разработчик, готовый раскрыть весь потенциал Spring Framework и Spring Boot? Это подробное руководство познакомит вас с основами и передовыми технологиями, которые помогут вам создавать надежные, масштабируемые и эффективные приложения.
Скачать книгу
Forwarded from Java jobs — вакансии для java-разработчиков
#дайджест #Javadevjob
Вакансии Java разработчиков уровня Junior
▪️ Java Developer
Офис (Москва), Trend Soft
▪️ Java Developer
Офис (Ярославль), STRONG TEAM
Вакансии Java разработчиков уровня Middle
▪️ Java-разработчик
Удалёнка / Офис (Иркутск), SMART DATA
▪️ Java программист
Офис, Совкомбанк Технологии
Вакансии Java разработчиков уровня Senior
▪️ Java-разработчик
Удалёнка / Гибрид (Москва), Росгосстрах
▪️ Java-разработчик
Офис (Томск) / Удалёнка, Т-Банк
Понравились вакансии?
❤️ — да
🤔 — нет
Вакансии Java разработчиков уровня Junior
▪️ Java Developer
Офис (Москва), Trend Soft
▪️ Java Developer
Офис (Ярославль), STRONG TEAM
Вакансии Java разработчиков уровня Middle
▪️ Java-разработчик
Удалёнка / Офис (Иркутск), SMART DATA
▪️ Java программист
Офис, Совкомбанк Технологии
Вакансии Java разработчиков уровня Senior
▪️ Java-разработчик
Удалёнка / Гибрид (Москва), Росгосстрах
▪️ Java-разработчик
Офис (Томск) / Удалёнка, Т-Банк
Понравились вакансии?
❤️ — да
🤔 — нет
hh.ru
Вакансия Junior Java Developer в Москве, работа в компании Trend Soft, студия (вакансия в архиве c 13 февраля 2025)
Зарплата: от 50000 до 70000 ₽ за месяц. Москва. Требуемый опыт: не требуется. Полная. Дата публикации: 10.02.2025.
В декабре 2024 года российские компании «Группа Астра», Haulmont и Axiom JDK объявили о создании OpenIDE — открытой среды разработки, основанной на IntelliJ IDEA Community Edition.
В OpenIDE нет проприетарных компонентов, она не обращается к зарубежным серверам и включает собственный маркетплейс плагинов. Публичный релиз запланирован на март 2025 года, а бета-тестирование начнётся совсем скоро.
Ключевые особенности OpenIDE
🔹 Поддержка Java и Kotlin. Далее планируют расширение на Go, TypeScript, Rust и другие языки через интеграцию с LSP-серверами.
🔹 Поддержка Axiom JDK. Также готовят взаимодействие с платформой GitFlic для безопасной и удобной работы над проектами.
🔹 Маркетплейс плагинов, который включает около 400 популярных плагинов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Proglib.academy | IT-курсы
🤖 📈 Data Science в 2025 году: 7 главных трендов
Разработчики JetBrains и Python Software Foundation рассказали, как изменится Data Science в ближайшие годы.
➡️ В статье:
▪️ Почему доля Python в анализе данных снижается
▪️ Какие библиотеки набирают популярность вместо pandas
▪️ Что происходит с AutoML, MLOps и визуализацией данных
▪️ И почему Rust и Julia наступают Python на пятки
Подробный разбор, новые инструменты и прогнозы на будущее — всё это читай в нашей статье.
🔵 Тренды меняются, но основы остаются — укрепи базу с нашим курсом «Математика для Data Science»
Разработчики JetBrains и Python Software Foundation рассказали, как изменится Data Science в ближайшие годы.
▪️ Почему доля Python в анализе данных снижается
▪️ Какие библиотеки набирают популярность вместо pandas
▪️ Что происходит с AutoML, MLOps и визуализацией данных
▪️ И почему Rust и Julia наступают Python на пятки
Подробный разбор, новые инструменты и прогнозы на будущее — всё это читай в нашей статье.
Please open Telegram to view this post
VIEW IN TELEGRAM