Как стать автором
Обновить
1
0

Пользователь

Отправить сообщение

Spring Boot Starter: практически, принципиально и подробнее. Часть 3

Время на прочтение11 мин
Количество просмотров2.9K

Привет, Хабр! С вами снова Сергей Соловых, Java-разработчик в команде МТС Digital. Мы продолжаем изучать возможности и нюансы построения собственного Spring Boot Starter. В предыдущих частях мы разобрали структуру стартеров, автоконфигурацию и зависимости бинов. А сегодня давайте поговорим о параметрах приложения.

Умение работать с файлами конфигураций позволяет избежать hard-coding-данных в коде библиотеки. Это делает ее более гибкой и легко конфигурируемой, это значит, что ее можно адаптировать под конкретные требования. С помощью параметров можно настроить контекст или изменить поведение сервиса. Начнем с рассмотрения нескольких способов интеграции параметров из файла конфигурации в код приложения.

Читать далее
Всего голосов 5: ↑5 и ↓0+8
Комментарии3

Создание масштабируемых приложений при помощи Kafka и реактивного программирования

Время на прочтение12 мин
Количество просмотров7.6K
image


Введение


В современном цифровом мире критически важна возможность обрабатывать данные в режиме реального времени и масштабировать приложения. Для этого хорошо подходит Kafka – платформа для распределённой потоковой обработки событий, особенно, если сочетать её с реактивным программированием. В данной статье будет рассказано, как создавать реактивные приложения при помощи этого инструментария.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+15
Комментарии5

AirPort Extreme: Root Доступ и избавление от региональной привязки

Время на прочтение2 мин
Количество просмотров1.8K

Почему приобретенные в России устройства не поддерживают beamforming и ограничены шириной канала до 40 МГц? В результате, максимальная скорость передачи данных составляет 600 Мбит/с вместо заявленных 1300 Мбит/с. Можно долго задаваться данным вопросом, но решение этой проблемы существует.

Читать далее
Всего голосов 4: ↑4 и ↓0+6
Комментарии10

Цикл статей о Greenplum. Часть 2. Оптимальный DDL

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров1.6K

Всем привет!

В прошлой статье мы с вами разобрались, как устроена MPP-архитектура Greenplum. Сегодня мы в сотрудничестве с @imzorin углубимся и разберемся, что представляет из себя DDL в этом хранилище. Также постараемся выделить основные моменты, на которые стоит обращать внимание при выборе типа таблиц, дистрибуции и прочего.

Читать далее
Всего голосов 5: ↑5 и ↓0+7
Комментарии1

Переадресация портов в Kubernetes: команда kubectl port-forward

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.9K

Недавно я столкнулся с задачей, требующей доступа к одному из сервисов внутри кластера Kubernetes. Работая над отладкой сложной микросервисной структуры, нужно было проверить работоспособность одного из компонентов, но доступ к нему был возможен только изнутри кластера. Я нашел подходящее решение - переадресация портов с помощью kubectl.

Переадресация портов — это процесс перенаправления сетевого трафика с одного порта на другой, что позволяет получать доступ к внутренним сервисам кластера Kubernetes из внешней сети.

Команда kubectl port-forward позволяет перенаправлять трафик с локального компьютера на определенный порт внутри пода

Рассмотрим подробней.

Читать далее
Всего голосов 5: ↑3 и ↓2+4
Комментарии2

Windows 11 24H2 IoT Enterprise LTSC – что за зверь, и чем он хорош?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров28K

Месяц назад я писал статью об издании Enterprise G, созданную Microsoft для китайского правительства, в котором много лишнего отключено. Статья вызвала большой интерес, много кому нужна ОС с максимальным функционалом — при вашем желании его использовать, но с возможностью отключить всё (или почти всё) ненужное. У версии Enterprise G основной недостаток в том, что политика продукта, прописанная в цифровой лицензии, запрещает установку любых языковых пакетов, отличных от китайского и английского. То бишь, русского интерфейса легким путем не достичь. Возникает вопрос выбора другого издания.

Сразу на ум приходит версия Enterprise LTSC, как полнофункциональная с длительным циклом обслуживания и поддержки, благо для Windows 11 24H2 она утекла еще в апреле. Но, оказывается, есть и более достойный выбор, о котором мы сейчас с вами и поговорим. Речь идёт об издании IoT Enterprise LTSC. Что это такое? Чем оно лучше, чем Enterprise LTSC? А чем хуже? Как её русифицировать и как активировать? Об это сегодняшний разговор.

Чем же так отличается IoT Enterprise LTSC?
Всего голосов 48: ↑47 и ↓1+55
Комментарии106

Расширение Keycloak для перехвата и обработки событий в системе

Время на прочтение9 мин
Количество просмотров14K

Продолжаю тему моего коллеги о Keycloak.

Кому не нужна вода, а просто пример кода, прыгайте сразу сюда.

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

Keycloak написан на языке Java, и создатели изначально заложили очень удобную возможность расширять функционал готового решения так называемыми аддонами или официально: extensions.

Расширение представляет собой обычный проект на Java, состоящий из классов, расширяющих дефолтные классы/интерфейсы Keycloak с необходим дополнительным функционалом. Причём расширить можно функционал чуть ли не любого класса Keycloak и для любых целей: от минимального изменения текста сообщения о некорректном вводе пользователем пароля, до привязки Discord'а, как Identity provider'а.

В данной статье речь пойдёт о расширении дефолтного слушателя событий в Keycloak.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии3

Nifi — когда record-oriented не оправдывает себя

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров1.7K

Добрый день. Меня зовут Иван Клименко, и я архитектор департамента поддержки продаж компании Arenadata. В основном занимаюсь продуктом Arenadata Streaming (ADS) — это масштабируемая отказоустойчивая система для потоковой обработки данных в режиме реального времени, адаптированная для корпоративного использования и построенная на базе Apache Kafka и Apache NiFi. В продукт входит замечательный сервис Arenadata Streaming NiFi, который является low‑code средством построения интеграционных потоков с возможностью масштабирования.

Сегодня хочу показать на одном из практических случаев, что не всегда в NiFi удаётся следовать шаблонному подходу record‑oriented в разработке потоков обработки и трансформации данных.

Будет большой JSON, будет Avro‑схема, будет JOLT‑спецификация.

Интересно?
Всего голосов 14: ↑13 и ↓1+14
Комментарии0

Создание микросервисов на Groovy с Micronaut

Время на прочтение5 мин
Количество просмотров926

Micronaut — фреймворк для ЯП Groovy. Он предназначен для создания микросервисов и серверных приложений на JVM. Он был разработан с учетом всех недостатков и ограничений предыдущих фреймворков, таких как Spring и Grails.

В статье рассмотрим, как работать в Groovy с Micronaut на практическом примере.

Читать далее
Всего голосов 8: ↑5 и ↓3+6
Комментарии2

Работа с информерами Java kubernetes client

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров2K

Привет, меня зовут Сергей, старший разработчик 80 уровня компании DataBlend (группа компаний GlowByte). Наша команда занимается разработкой продукта ClusterManager, который управляет поведением и мониторит состояния таких продуктов, как GreenPlum, ClickHouse, DWH, Nova и т. д.

Около полутора лет назад у нас появилась необходимость собирать и отображать в удобном виде и разрезах метрики и данные об объектах кластеров Kubernetes, в которых развернут продукт Nova.

Для этих целей был выбран официальный kubernetes‑client для Java.

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

Лучше всего для этой цели подходит механизм информеров kubernetes‑client.

И сейчас мы посмотрим, с какой стороны их лучше начинать есть.

Читать далее
Всего голосов 10: ↑10 и ↓0+12
Комментарии0

Kotlin Coroutines. Часть 2

Время на прочтение10 мин
Количество просмотров2.9K

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

Итак, начинаем. Сначала кратко расскажу о материале в этой статье. Для разогрева поговорим о скоупе и о том, для чего он вообще нужен, далее перейдем к контексту, там я попробую объяснить сложное на пальцах, и, наконец, затронем к Continuation.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии2

Хранилища данных. Обзор технологий и подходов к проектированию

Уровень сложностиПростой
Время на прочтение26 мин
Количество просмотров8K

В эру цифровых технологий данные стали жизненно важным ресурсом для организаций.  Но просто наличие данных без формы или модели недостаточно. Чтобы данные превратились в информацию, а затем в ценные инсайты и знания, способные вывести организацию в лидеры рынка, необходимо применение соответствующих подходов к управлению, хранению и обработке данных. Хранилище данных как система как раз предоставляет инфраструктуру и инструменты для эффективного выполнения этих функций. По этой причине сегодня темы по проектированию архитектуры хранилищ данных настолько востребованы и актуальны.

В этой статье будут рассмотрены основные подходы к проектированию архитектуры хранилищ данных (DWH), эволюция архитектур, взаимосвязь Data Lake, Data Factory, Data Lakehouse, Data Mesh c DWH, преимущества и недостатки подходов к моделированию данных. Материал будет полезен тем, кто работает с корпоративными данными: аналитики, инженеры и архитекторы данных.

Читать далее
Всего голосов 17: ↑14 и ↓3+15
Комментарии3

SOLID в Go и щепотка паттернов

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров7.5K

SOLID-ная статья о принципах SOLID, которую вы можете предложить тем, кто хочет понять эти принципы в контексте языка Go. Или прочитать самостоятельно, если это интересно и вам.

И да, как сказал бы волк из небезызвестного мультика: «SOLID? Шо, опять?»

Читать далее
Всего голосов 24: ↑21 и ↓3+18
Комментарии9

Полное руководство по Suricata: основы и важные команды

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров4.4K

Введение

Suricata — это многофункциональная и мощная система обнаружения вторжений в сеть (IDS), система предотвращения вторжений (IPS) и инструмент мониторинга сетевой безопасности (NSM). Разработанная Фондом открытой информации безопасности (OISF), Suricata известна своей высокой производительностью и масштабируемостью, что делает её популярной среди специалистов по безопасности для мониторинга и защиты сетевых инфраструктур. Это полное руководство охватывает основы Suricata, её ключевые функции, процесс установки, детали конфигурации и важные команды, чтобы помочь вам максимально использовать её потенциал.

Читать далее
Всего голосов 5: ↑4 и ↓1+4
Комментарии4

Volatile, Lock-free, Immutable, Atomic в Java. Как понять и начать использовать

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров8.6K

Привет, меня зовут Денис Агапитов, я руководитель группы Platform Core компании Bercut.

Сегодня хочу поговорить об одном из lock-free алгоритмов в Java. Разберём как с ним связано ключевое слово volatile и паттерн immutable.

Читать далее
Всего голосов 12: ↑12 и ↓0+14
Комментарии13

Отказоустойчивый деплой приложений в Kubernetes. Принципы, паттерны и приемы

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров7.4K

Привет, Хабр! Я  исполнительный директор по разработке департамента ML и BD Газпромбанка. Сегодня хочу поговорить с вами о деплое.

По данным, приведенным в Google SRE book, до 70% проблем происходит вследствие изменений в уже работающих системах. По моим личным ощущениям, это близко к правде: если у вас хорошо спроектированное и написанное приложение и стабильная, отлаженная инфраструктура, именно деплой — узкое место (которое можно улучшить). Для минимизации рисков Google SRE BOOK рекомендует использовать постепенные выкаты, быстро и точно анализировать проблемы, а в случае необходимости легко откатываться обратно. 

Эта статья о деплое в Kubernetes, потому что это самая популярная инфраструктурная платформа, которая уже имеет множество возможностей для построения отказоустойчивых выкатов. А то, чего не хватает «из коробки», покрывается возможностями инструментов развитой экосистемы. 

Но начать нужно не с возможностей Kubernetes, а с архитектурных особенностей, которые должны быть реализованы при создании приложений, предназначенных для работы в ней. 

Те, кто больше любит слушать, чем читать, могут посмотреть мой доклад про это на HighLoad++. Остальным — добро пожаловать под кат.

Читать далее
Всего голосов 20: ↑20 и ↓0+22
Комментарии0

Пакетная обработка в PostgreSQL

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров5.3K

Привет, Хабр!

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

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

В этой статье рассмотрим, как реализовать пакетную обработку в PostgreSQL.

Читать далее
Всего голосов 16: ↑9 и ↓7+6
Комментарии18

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

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров7.6K

Несмотря на то, что данная статья была опубликована более полугода назад, команда Spring АйО по-прежнему считает ее актуальной, важной и интересной.

Себастьян Делойзе, контрибьютор Spring Framework, делится обзором усилий команды Spring по оптимизации эффективности приложений во время выполнения. Он рассматривает Virtual Threads, GraalVM Native Image, Project CRaC, Project Leyden и всё это в контексте Spring!

Читать далее
Всего голосов 19: ↑18 и ↓1+18
Комментарии0

Go и pgx. Пагинация в запросах к БД Postgres

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров3.7K

Доброго дня! Хочу поделиться лайфхаком по реализации универсального способа пагинации в произвольных запроса к БД для получания списков.

Имеем изначально задачу по реализации HTTP REST CRUD сервера на Go. База данных - PostgreSQL. Используемый драйвер - pgx - PostgreSQL Driver and Toolkit.

Задача в общем тривиальная - сделать так, чтоб запросы получали на вход параметры пагинации (номер страницы, количество записей на страницу) и отдавали на выход поля таблицы и общее доступное количество страниц.

Общее количество страниц в таблице БД получить несложно:

Читать далее
Всего голосов 9: ↑5 и ↓4+3
Комментарии57

Запускаем Stable Diffusion на GPU AMD Radeon в Docker

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров5.9K

Для запуска нам понадобится Ubuntu с установленными: git, make, docker и ROCm.

Инструкция по запуску короткая и простая, поэтому дополнительно разберём пример генерации изображения для этой статьи и продеманстрируем работу Stable Diffusion на AMD Radeon. Всё нижеизложенное протестировано на AMD Radeon RX 7900 XTX.

Читать далее
Всего голосов 10: ↑9 и ↓1+11
Комментарии17
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность