Рубрика IT

Концепции Git менее чем за 10 минут

Понимание Git помогает В разработке, но изучение начинать сложно. Пусть это руководство станет первым шагом к знакомству с Git. Git используется для хранения и транспортировки кода по умолчанию, это основная система контроля версий для разработчиков сегодня. Каждый, кто использовал Git,…

Архитектура event-driven приложений

Что такое архитектура, управляемая событиями? Архитектура, управляемая событиями (EDA), — это шаблон архитектуры программного обеспечения, в котором особое внимание уделяется производству, обнаружению, потреблению и реакции на события, происходящие в системе или среде. Каковы преимущества использования EDA? Некоторые из преимуществ использования…

Happens Before в Java

В Java отношение happens before используется для определения порядка действий в многопоточной программе. Отношение happens before гарантирует, что изменения, внесенные одним потоком, будут видны другому потоку предсказуемым и последовательным образом. Правила happens before в Java следующие: Отношения happens before помогают…

Аутентификация с Keycloak

Keycloak — это решение для управления идентификацией и доступом с открытым исходным кодом, которое позволяет разработчикам добавлять функции аутентификации и авторизации в свои приложения. Он предоставляет централизованный сервер аутентификации, который можно использовать для аутентификации пользователей, управления учетными записями пользователей и…

Load Balancer / Балансировщик нагрузки

Балансировщик нагрузки — паттерн распределения входящего сетевого трафика между несколькими серверами, чтобы оптимизировать использование ресурсов, максимизировать пропускную способность, минимизировать время отклика и избежать перегрузки какого-либо отдельного сервера. Он действует как посредник между запросами клиента и ответами сервера, гарантируя, что каждый…

Основное по Kafka

Apache Kafka — это распределенная платформа, предназначенная для обработки больших объемов данных в режиме реального времени. Она работает с использованием системы обмена сообщениями «публикация-подписка», в которой продюсеры отправляют сообщения в топики, а потребители подписываются на эти топики, чтобы получать сообщения.…

Использование Entity Graph в Java

Entity Graph позволяет определить, как JPA должен загружать связи при запросе определенной сущности. Это позволяет разработчикам указывать, какие связанные объекты следует загружать быстро, а какие — лениво. Entity Graph можно определить с помощью аннотации @NamedEntityGraph в классе сущностей. Эта аннотация…

Webflux горячий и холодный паблишеры

В Spring WebFlux холодный паблишер можно реализовать с помощью класса Flux, а горячий – с помощью класса ConnectableFlux. Вот пример того, как реализовать холодный паблишер с помощью Flux: В этом примере мы возвращаем Flux, который генерирует список строк. Поскольку это…

Основные понятия Spring Webflux

Spring WebFlux — это реактивный веб-фреймворк, являющийся частью экосистемы Spring. Он позволяет разработчикам создавать приложения, управляемые событиями, которые могут обрабатывать большое количество одновременных запросов с низким потреблением ресурсов. Преимущества использования Spring WebFlux – производительность, масштабируемость и скорость реагирования благодаря его…

Основные понятия микросервисной архитектуры

Микросервисная архитектура — это архитектурный стиль, структурирующий приложение как набор небольших автономных сервисов, каждый из которых работает в своем собственном процессе и взаимодействует с другими сервисами через API. Преимущества использования микросервисной архитектуры включают в себя: Недостатки микросервисной архитектуры: Применительно к…

Kubernetes основные понятия

Kubernetes – это платформа оркестрации контейнеров с открытым исходным кодом, которая автоматизирует развертывание, масштабирование и управление контейнерными приложениями. Преимущества использования Kubernetes – масштабируемость, доступность и отказоустойчивость приложений. Это также позволяет упростить развертывание и управление контейнерными приложениями в нескольких средах. Pod…

Fail-safe и fail-fast коллекции в Java

Fail-safe и fail-fast являются двумя различными подходами к обработке изменений в коллекциях в Java. Fail-safe означает, что коллекция может безопасно изменяться (добавлять, удалять элементы) во время итерации. Это достигается путем создания копии коллекции и итерации по этой копии, а не…

Управление взаимодействием между сервисами: оркестрация и хореография

Оркестрация и хореография — это два разных подхода к управлению взаимодействием между сервисами в распределенной системе. Оркестрация относится к централизованному подходу, при котором один компонент (обычно планировщик или оркестратор) отвечает за координацию и управление взаимодействием между сервисами. В этой модели…

Методы equals() и hashcode() в Java

В Java, класс Object является базовым классом для всех остальных классов, и он содержит два важных метода: equals() и hashCode(). Метод equals() используется для сравнения двух объектов на равенство. По умолчанию, метод equals() в классе Object сравнивает объекты по ссылке…

Mockito отличие Spy и Mock

Mockito — это популярная платформа для создания заглушек в Java, которая позволяет разработчикам создавать моки объектов и методы-заглушки для целей тестирования. Mockito предоставляет два основных типа объектов для тестирования: Mock и Spy. Мок-объект — это фиктивный объект, созданный для имитации…

Как устроена JVM

JVM означает виртуальная машина Java и является неотъемлемой частью платформы Java. Она отвечает за выполнение байт-кода Java, который представляет собой скомпилированную версию исходного кода Java.Когда вы запускаете программу Java, исходный код сначала компилируется в байт-код с помощью компилятора Java. Этот…

Взаимодействие JVM с ядром Операционной Системы

JVM взаимодействует с ядром системы несколькими способами, в зависимости от конкретной операционной системы и аппаратной архитектуры. В общем, JVM полагается на операционную систему для предоставления определенных низкоуровневых услуг, таких как управление памятью и планирование потоков. На высоком уровне JVM взаимодействует…

Взаимодействие потоков и процессов с JVM и Операционной Системой

В JVM потоки и процессы управляются с помощью Java Thread API. JVM предоставляет планировщик потоков, который управляет выполнением нескольких потоков в одном процессе. Каждый поток имеет собственный стек вызовов и счетчик программ, что позволяет ему выполнять код независимо от других…

EXPLAIN и ANALYZE в SQL

EXPLAIN используется для отображения плана выполнения запроса без его фактического выполнения. Он предоставляет информацию о том, как ядро базы данных планирует выполнить запрос, включая порядок доступа к таблицам, тип используемого соединения и индексы, которые будут использоваться. ANALYZE, с другой стороны,…

Что из себя представляет и зачем нужен протокол DHCP

DHCP (протокол динамической конфигурации хоста) — это сетевой протокол, используемый для автоматического назначения IP-адресов и других параметров конфигурации сети устройствам в сети. Когда устройство подключается к сети, использующей DHCP, оно отправляет широковещательное сообщение с запросом IP-адреса. DHCP-сервер в сети получает…

Использование git cherry-pick

git cherry-pick — это команда, которая позволяет вам применить конкретный коммит из одной ветки в другую. Это может быть полезно, если вы хотите применить исправление ошибки или функцию из одной ветки в другую, не объединяя всю ветку. Чтобы использовать Cherry-Pick,…

Уровни изоляции транзакций

Уровни изоляции — это концепция систем управления базами данных, которая определяет, как транзакции взаимодействуют друг с другом. Транзакции — это набор операций, которые выполняются как единая единица работы, а уровни изоляции определяют, как одновременным транзакциям разрешен доступ к данным в…