Please open Telegram to view this post
VIEW IN TELEGRAM
😁17❤13👍3💯2
🔥 Коллеги, годный практикум по микросервисной архитектуре!
По шагам — чем «учебный» монолит отличается от продакшна:
— observability-стек 👀 (Grafana/Prometheus/Loki/Tempo/Alloy),
— распределённые транзакции по Saga 🔄 (оркестрация/хореография),
— безопасность на Keycloak 🔐,
— API Gateway, OpenAPI + codegen 🚪 (DTO/Feign),
— инфраструктура на Docker Compose + Makefile + Nexus 🐳.
В конце — полный прогон: Docker → Postman → метрики/трейсы в Grafana.
▶️ Смотреть: Основы работы с микросервисами
P.S. У автора — техканал с продолжением темы: https://t.iss.one/esuleimanov 🤓
По шагам — чем «учебный» монолит отличается от продакшна:
— observability-стек 👀 (Grafana/Prometheus/Loki/Tempo/Alloy),
— распределённые транзакции по Saga 🔄 (оркестрация/хореография),
— безопасность на Keycloak 🔐,
— API Gateway, OpenAPI + codegen 🚪 (DTO/Feign),
— инфраструктура на Docker Compose + Makefile + Nexus 🐳.
В конце — полный прогон: Docker → Postman → метрики/трейсы в Grafana.
▶️ Смотреть: Основы работы с микросервисами
P.S. У автора — техканал с продолжением темы: https://t.iss.one/esuleimanov 🤓
👍6🤔2❤1😁1
Forwarded from Библиотека задач по Java | тесты, код, задания
Что будет результатом кода?
Anonymous Quiz
27%
Значение меньше 2000
43%
Всегда 2000
5%
Ошибка компиляции
12%
ConcurrentModificationException
13%
Посмотреть ответ
👍5❤1🔥1
⚡️ Просто о сложном: JIT-компилятор
Чтобы ускорить работу приложения, JVM включает в дело Just-In-Time (JIT) компилятор.
Он превращает часто выполняемый байткод в нативные машинные инструкции прямо во время исполнения.
🔹 Как это работает
— При старте приложения JVM интерпретирует байткод.
— Когда видит, например, что метод вызывается часто (т.н. hot method), — JIT компилирует его в машинный код.
— В следующий раз этот метод исполняется уже как нативный, без интерпретации.
— Всё это происходит «на лету» — поэтому Java-программы разгоняются после первых секунд работы.
🔹 Зачем нужен JIT
Он сочетает плюсы интерпретации и компиляции:
— Быстрый старт приложения (интерпретация).
— Высокая производительность после разогрева (JIT).
🔹 Что он умеет оптимизировать
— Inlining: подставляет код мелких методов прямо в место вызова.
— Escape Analysis: определяет, можно ли объект хранить на стеке вместо heap.
— Loop unrolling: разворачивает циклы для ускорения.
— Dead code elimination: выбрасывает ненужные операции.
— И другие алгоритмы.
⚙️ Как посмотреть, что делает JIT
Включите флаг:
И увидите, какие методы компилируются во время исполнения.
Интересно почитать про алгоритмы JIT подробнее → ставь 👾
🐸 Библиотека джависта
#CoreJava
Чтобы ускорить работу приложения, JVM включает в дело Just-In-Time (JIT) компилятор.
Он превращает часто выполняемый байткод в нативные машинные инструкции прямо во время исполнения.
🔹 Как это работает
— При старте приложения JVM интерпретирует байткод.
— Когда видит, например, что метод вызывается часто (т.н. hot method), — JIT компилирует его в машинный код.
— В следующий раз этот метод исполняется уже как нативный, без интерпретации.
— Всё это происходит «на лету» — поэтому Java-программы разгоняются после первых секунд работы.
🔹 Зачем нужен JIT
Он сочетает плюсы интерпретации и компиляции:
— Быстрый старт приложения (интерпретация).
— Высокая производительность после разогрева (JIT).
🔹 Что он умеет оптимизировать
— Inlining: подставляет код мелких методов прямо в место вызова.
— Escape Analysis: определяет, можно ли объект хранить на стеке вместо heap.
— Loop unrolling: разворачивает циклы для ускорения.
— Dead code elimination: выбрасывает ненужные операции.
— И другие алгоритмы.
Включите флаг:
-XX:+PrintCompilation
И увидите, какие методы компилируются во время исполнения.
Интересно почитать про алгоритмы JIT подробнее → ставь 👾
#CoreJava
Please open Telegram to view this post
VIEW IN TELEGRAM
👾23👍3🔥3
🛰 Event-Driven Architecture с Apache Kafka
Монолиты и REST-взаимодействие упираются в масштабируемость. Event-driven архитектура с Kafka позволяет строить реактивные цепочки бизнес-логики, где события становятся мостом между сервисами.
📝 Промпт:
💡 Расширения:
— Настройте Kafka Streams для real-time агрегатов.
— Интегрируйте с Schema Registry для версионирования событий.
— Добавьте Observability: trace event flow with OpenTelemetry.
🐸 Библиотека джависта
#Enterprise
Монолиты и REST-взаимодействие упираются в масштабируемость. Event-driven архитектура с Kafka позволяет строить реактивные цепочки бизнес-логики, где события становятся мостом между сервисами.
📝 Промпт:
Generate a Spring Boot 3 microservice architecture example with Apache Kafka event-driven communication.
— Configure Kafka producer and consumer with Spring Kafka.
— Use JSON Schema/Avro for message serialization and schema validation.
— Implement a domain event publisher (e.g. OrderCreatedEvent).
— Add event listener services that react asynchronously (e.g. notification service, billing service).
— Implement idempotency strategy for consumers (deduplication of events).
— Use Kafka Transactions for exactly-once semantics.
— Add Dead Letter Queue (DLQ) handling for failed messages.
— Настройте Kafka Streams для real-time агрегатов.
— Интегрируйте с Schema Registry для версионирования событий.
— Добавьте Observability: trace event flow with OpenTelemetry.
#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2👏1
Топ-3 статьи о Java и смежных технологиях за неделю по версии нашего канала.
Крупное обновление фреймворка. Теперь требуется Java 17+, все модули объединены в единую версию, устаревшие API удалены, добавлены аннотации JSpecify для строгой null-безопасности.
Мощное расширение IDE для Spring-проектов. Позволяет генерировать CRUD-код, миграции, OpenAPI и управлять сущностями прямо из IDE.
Статья о том, почему стоит смотреть в сторону Kotlin: меньше шаблонного кода, выше читаемость и меньше ошибок. Kotlin даёт прирост скорости и лаконичности, особенно для команд, уставших от громоздкости Java.
#News
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👏2👍1
Anonymous Poll
32%
Без Lombok писать больно
6%
Удаляю Lombok из всех проектов
28%
Только для DTO и простых моделей
33%
Зависи от команды, проекта и кодстайла
🔥3❤1👍1💯1
Forwarded from Библиотека собеса по Java | вопросы с собеседований
Продолжаем тестить новый формат. Представим задачу 👇
У вас есть Spring Boot-приложение. Нужно собрать Docker-образ, который:
1. Основан на официальном JDK 21
2. Поддерживает порт 8080
3. Настраивает часовой пояс контейнера на Москву (Europe/Moscow)
📦 Задание:
Составьте Dockerfile, который корректно запускает приложение в контейнере по условиям выше.
Ставьте →🔥, если зашёл формат. Если нет, то → 🤔
#practise
Please open Telegram to view this post
VIEW IN TELEGRAM