Найти в Дзене
Закреплено автором
16:34
Уголок сельского джависта
О цикле роликов - Разработка проектов со Spring
1 год назад
✅ Гибкие конструкторы
JDK 25 привнесёт ещё одно небольшое, но важное, на мой взгляд, изменение в язык программирования Java - гибкие конструкторы (JEP 513). Цель изменения - позволить выполнять действия в конструкторе класса-наследника до вызова конструктора родительского класса. Представим себе достаточно банальную ситуацию: нам нужно создать экземпляр некоторого класса-наследника, но в процессе создания нужно провалидировать переданные в аргументах данные. До Java 25 сделать это можно только после вызова конструктора...
3 месяца назад
Сборщики стримов
Одним из наиболее важных нововведений, на мой взгляд, в стандартной библиотеке в грядущем релизе JDK 25 станут сборщики стримов (JEP 485 Stream Gatherers). Да, стабильными они стали ещё в JDK 24, но для себя я рассматриваю только LTS-релизы. Сборщики стримов описываются типизированным интерфейсом Gatherer<T, A, R>, где T - тип входящего элемента стрима, R - тип выходящего элемента, а A - потенциально изменяемое состояние сборщика. Внутри Gatherer используются четыре компонента: Создать сборщик стрима можно при помощи метода Gatherer...
3 месяца назад
Переменные с областью действия
Ещё одно интересное нововведение, которое ждёт нас в грядущем релизе JDK 25 — переменные с областью действия. Наверняка многие сталкивались с ситуацией, когда нужно передать какую-то информацию между двумя компонентами, но при этом по каким-то причинам не хочется добавлять новые аргументы в методы или свойства в классы. Зачастую такая задача решалась при помощи ThreadLocal - локальных переменных потока. В одном месте данные добавлялись в локальные переменные потока, а в другом - извлекались. Но у локальных переменных потоков есть свои недостатки и достаточно существенные...
3 месяца назад
Компактные файлы исходных кодов в JDK 25
С релизом JDK 25, который произойдёт уже на следующей неделе - 16 сентября, стабильными станут компактные файлы исходных кодов и главные методы (JEP 512), которые были в разработке начиная с JDK 21. Все мы знаем, что любая программа, написанная на языке программирования Java, начинает выполнение с класса с main-методом, который в общих чертах имеет следующую форму: class Application { public static void main(String[] args) { System.out.println("Hello world!"); } } И у людей, только начинающих...
3 месяца назад
Компактные файлы исходных кодов в Java 25 С релизом JDK 25, который произойдёт уже на следующей неделе - 16 сентября, стабильными станут компактные файлы исходных кодов и главные методы (JEP 512), которые были в разработке начиная с JDK 21. С релизом Java 25 можно будет убрать класс, модификаторы public и static, а так же аргументы. В этом случае class и package будут объявлены неявно. Кроме этого в компактных файлах исходных кодов автоматически импортируются все публичные классы из пакетов, экспортируемых из модуля java.base, что значительно упрощает написание простых программ. Как вам нововведение?
3 месяца назад
📖 Получение сообщений из Kafka Получение сообщений из Kafka на первый взгляд выглядит достаточно просто, но на деле обладает большим количеством нюансов, связанных с членством получателя в группе, её перебалансировкой, получением ранее отправленных сообщений, фиксацией смещений и семантиками доставки. Все эти вопросы я постарался осветить в этой статье. 📖 Читать на сайте 📖 Читать в VK 📖 Читать в Telegraph #kafka 💬 Обсудить в Telegram Поддержать: 💵 На карту T 💵 В VK 💵 В Boosty 💵 ЮМани 5599 0050 8286 9475
1 год назад
📖 Отправка сообщений в Kafka В предыдущих статьях я вкратце рассказал об Apache Kafka, некоторых нюансах его внутреннего устройства, а так же о способах развёртывания. В этой же статье я хочу поговорить об использовании стандартной клиентской библиотеки Kafka для отправки сообщений в проектах на платформе Java. 📖 Читать на сайте alexkosarev.name/...ges 📖 Читать в VK vk.com/...ges 📖 Читать в Telegraph telegra.ph/...-03 #kafka 💬 Обсудить в Telegram: t.me/...wqy Поддержать: 💵 На карту T: www.tinkoff.ru/...qus 💵 В VK vk.com/...des 💵 В Boosty boosty.to/...ate 💵 ЮМани 5599 0050 8286 9475
1 год назад
📖 Запуск Apache Kafka с ZooKeeper
С выпуском версии 4.0 Apache Kafka лишится поддержки ZooKeeper, и единственным вариантом развёртывания кластера останется использование KRaft, о котором было рассказано в одной из предыдущих статей. Несмотря на это, я предлагаю в этой статье рассмотреть вариант развёртывания кластера Apache Kafka с кворумом Apache ZooKeeper...
1 год назад
Запуск Apache ZooKeeper в кластере
Сервис Apache ZooKeeper применяется в качестве сервера метаданных и конфигураций сервисов и часто используется для реализации механизма поиска сервисов (Service Discovery). Например, в Apache Kafka, популярном инструменте для организации обмена сообщениями в распределенных системах, до версии 4.0 ZooKeeper может использоваться в качестве хранилища метаданных кластера. Как и любой другой компонент распределённой системы ZooKeeper желательно запускать в кластере для обеспечения отказоустойчивости системы, чему посвящена данная статья...
1 год назад
📖 Apache Kafka: партиции и реплики
Проект Apache Kafka разрабатывался с прицелом на применение в высоко нагруженных и отказоустойчивых системах. Кроме развёртывания сервисов в кластере, которому была посвящена предыдущая статья, высокую производительность и отказоустойчивость обеспечивают партиции и реплики. Топики в Apache Kafka делятся на партиции, и это помогает повысить производительность системы. Партиции распределяются между узлами кластера, что позволяет распределить и нагрузку между узлами. Давайте создадим топик с четырьмя партициями в кластере из трёх узлов: $ bin/kafka-topics...
256 читали · 1 год назад
Запуск Apache Kafka в кластере
Как и любой другой компонент распределённой информационной системы Apache Kafka в условиях реальной эксплуатации рекомендуется разворачивать в кластере для обеспечения отказоустойчивости. Кластер Kafka может быть развёрнут в двух вариантах: с использованием KRaft и Apache ZooKeeper. В рамках кластера ноды Kafka могут иметь две роли: При использовании Apache ZooKeeper контроллер выбирается автоматически из числа брокеров, а при использовании KRaft некоторому количеству нод назначается роль контроллера, и из их числа автоматически выбирается лидер...
1 год назад
Начало работы с Kafka
Apache Kafka является одной из наиболее популярных систем для обмена сообщениями в распределённых информационных системах. В этой статье рассматривается базовое устройство Kafka, терминология, установка и запуск для локальной разработки, а так же выполнение базовых операций из командной строки и из приложения на языке программирования Java. Apache Kafka — это система стриминга событий (или сообщений). В основе процесса обмена сообщениями в Kafka лежит стрим или поток данных — абстрактная упорядоченная структура данных, которая предусматривает только добавление новых элементов в её конец...
1 год назад