Pull to refresh
9
0
Send message

Java-рантаймы с точки зрения Spring Boot

Level of difficultyEasy
Reading time10 min
Views4.8K

На первый взгляд, выбор правильного Java-рантайма для вашего проекта на Spring Boot может показаться тривиальным. В конце концов, все популярные рантаймы основываются на коде OpenJDK и предлагают одинаковые программные интерфейсы (от англ. Application Programming Interface).

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

Оригинал статьи написан на английском языке Aleksey Stukalov, который является Team Lead’ом проекта IntelliJ IDEA в компании JetBrains, и Catherine Edelveis, работающей Developer Advocate в компании BellSoft, в соавторстве.

Читать далее
Total votes 12: ↑12 and ↓0+13
Comments6

Блеск и нищета нового Scrolling API в Spring Data

Level of difficultyEasy
Reading time9 min
Views6.6K

В Spring Data 3.1 появилось новое API для итерирования по большому объему данных: Scrolling API. Давайте изучим его, посмотрим на практические применения с примерами кода и преимущества по сравнению со всем известным Pageable. А также разберём, чего Scrolling API пока не хватает, и можно ли его вообще брать в свои проекты. Если хотите выяснить, как с новым API в теории ускорить пагинацию больших данных, — заходите под кат.

Читать далее
Total votes 21: ↑21 and ↓0+27
Comments5

Введение в gRPC: Основы, применение, плюсы и минусы. Часть I

Level of difficultyEasy
Reading time4 min
Views9.2K

Эта статья содержит краткую теорию о gRPC, обсудит преимущества и особенности использования данной технологии для создания высокопроизводительных и масштабируемых микросервисов.

Читать далее
Total votes 8: ↑3 and ↓5+2
Comments3

Решение проблем общего кода в микросервисах Spring Boot и не только

Level of difficultyMedium
Reading time11 min
Views6.3K

Привет, Хабр! Меня зовут Александр Митин, я работаю в Т1 на проектах одного крупного банка. Занимаюсь развитием продкутовых сервисов компании (проект по обслуживанию и проведению ЧДП/ПДП клиентов). Опыт разработки 13 лет, последние 5 лет — в финтехе.

Сегодня микросервисная архитектура используется во многих проектах. Зачастую в таких системах применяют журналирование, авторизацию и прочие служебные сервисы, общие для всех приложений. А при разработке возникает огромное желание не дублировать одну и ту же логику, а вынести её в отдельную библиотеку, тем самым переиспользовав код. Что мы имеем в итоге? В лучшем случае одну библиотеку «common», которая разрастается до огромных размеров и становится ядром распределённого монолита. В дальнейшем новые версии этой библиотеки теряют обратную совместимость, а каждое её обновление в проектах сильно осложняет поддержку. Более того, становится невозможным разобраться, где и какие классы используются, что делает архитектуру хрупкой и уязвимой.

Читать далее
Total votes 15: ↑14 and ↓1+15
Comments12

Почему JOOQ — идеальный инструмент для работы с БД при интеграционном тестировании API

Level of difficultyMedium
Reading time6 min
Views2.8K

Привет! Меня зовут Евгений, я SDET-специалист в SimbirSoft. Хочу поделиться примером того, как я автоматизировал тестирование API, заменив встроенные JDBC-средства на JOOQ. И расскажу, почему считаю это лучшим решением.

Все началось с того, что передо мной поставили задачу автоматизировать тестирование API с проверкой данных в БД. Так как проект только начинался, а я один отвечал за эту часть работы, то надо было сделать всё с нуля. Мне хотелось сделать все идеально (удобно, понятно, масштабируемо, с удобной поддержкой кода). Получилось все, кроме одного — масштабирование сверки данных из БД. Об этом и пойдет речь. А в конце вы найдете ссылку на исходный код.

Читать далее 🐞
Total votes 5: ↑4 and ↓1+3
Comments5

Типы совместимости в Schema Registry для Apache Kafka

Level of difficultyMedium
Reading time10 min
Views2K

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

Типы совместимости схем в Apache Kafka
Total votes 6: ↑6 and ↓0+7
Comments0

Рецепты «приготовления» Hibernate, или решаем 5 проблем работы с фреймворком

Level of difficultyMedium
Reading time17 min
Views4K

Hibernate — очень мощный и функциональный ORM (Object-Relational Mapping) фреймворк. Он связывает базы данных с помощью объектно-ориентированных языков программирования. Однако многие, начиная с ним работать, натыкаются на проблемы производительности или отсутствия нужной функциональности. Многие из этих проблем появляются просто из-за того, что разработчики не умеют его «готовить». 

В статье делимся рецептами работы с Hibernate и Spring Data JPA: они помогут решить многие проблемы, возникающими при использовании фреймворка.  

Читать далее
Total votes 14: ↑14 and ↓0+18
Comments17

Распределенная трассировка с Jaeger и Clickhouse

Reading time13 min
Views3.8K

Привет! Меня зовут Филипп Бочаров, я руководитель центра мониторинга и наблюдаемости в МТС Digital. Мы делаем распределённую трассировку, чтобы контролировать качество наших сервисов и предотвращать аварии. В этой статье разберём, как добиться понятной и прозрачной работы от сложных распределённых систем.

За время, прошедшее с прошлого доклада, количество обрабатываемых в единицу времени спанов выросло в несколько раз. Рассмотрим, какие архитектурные решения начали «поджимать», и как команда МТС их исправляла.

Читать далее
Total votes 15: ↑15 and ↓0+19
Comments7

Асинхронный веб: WebSocket, Server-Sent Events, Long Polling и Short Polling

Level of difficultyMedium
Reading time13 min
Views7.6K

Веб-разработка часто требует реализации механизмов обновления контента на странице в реальном времени. Существуют различные сценарии, где это необходимо, например, отображение прогресса выполнения тяжелых задач на бекенде, обновление каких-либо часто меняющихся данных, будь то курсы валют или мониторинг какой-то активности, чаты, различные уведомления. Эти сценарии объединяет одна общая особенность: источник события необходимости обновления данных находится не на клиентской стороне, поэтому мы хотим получать события с бекенда. В данной статье мы рассмотрим четыре популярных подхода к реализации этой функциональности: WebSocket, Server-Sent Events (SSE), Long Polling и Short Polling.
Мы проанализируем каждый метод, выявим их плюсы, минусы и сложность реализации.

Читать далее
Total votes 17: ↑15 and ↓2+18
Comments11

Кто такие ИТ-архитекторы и какие задачи они решают

Level of difficultyEasy
Reading time7 min
Views14K

Динамичные изменения в обществе и бизнесе вынуждают компании адаптироваться к новым правилам и требованиям при создании продукта. Успех часто сопутствует тем, кто тщательно продумывает стратегию и развивает свои проекты. Одним из таких преимуществ может стать эффективное ИТ-решение.

В современных информационных технологиях особое значение уделяется проектированию архитектуры приложения. В этой статье я постарался ответить на вопросы о том, кто такие ИТ-архитекторы и как появилась эта профессия, какими бывают архитекторы и какие задачи они решают.

Читать далее
Total votes 20: ↑9 and ↓11+2
Comments19

Как обхитрить мозг и заставить его полюбить сложные задачи [Дофаминовый детокс]

Level of difficultyEasy
Reading time7 min
Views137K

Как часто вы ловили себя на мысли «Вот, блин, весь выходной прозалипал в бесконечных лентах, а ничего полезного так и не сделал»? Не спешите себя винить! Скорее всего, все дело в вашем мозге, который привык баловаться дофамином. Увы, с этой проблемой сталкиваются большинство современных людей (и мы в beeline cloud — не исключение). Хорошая новость: ее можно решить!

Почему некоторых людей гораздо сильнее мотивируют именно сложные задачи? И есть ли способ превратить трудные дела в легкие?

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

А теперь попробуйте целый час посвятить учебе... Звучит очень утомительно. А что, если вместо этого часок-другой поработать над своим сайд-проектом? Хм. Всё равно скукотища.

Читать далее
Total votes 118: ↑106 and ↓12+105
Comments144

Как Uber обслуживает более 40 миллионов чтений в секунду из онлайн-хранилища с помощью встроенного кэша

Level of difficultyMedium
Reading time15 min
Views7.8K

Привет, Хабр! Представляю вам перевод статьи "How Uber Serves Over 40 Million Reads Per Second from Online Storage Using an Integrated Cache" автора Preetham Narayanareddy. Из неё вы узнаете, как в Uber проектировалась система кэширования на основе Redis, с какими сложностями и тонкостями пришлось столкнуться разработчикам, и как в итоге им удалось создать действительно высокопроизводительное решение.

Читать далее
Total votes 6: ↑5 and ↓1+8
Comments6

Это база: нюансы работы с Redis. Часть 1

Level of difficultyMedium
Reading time15 min
Views36K

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

В серии статей я попытаюсь осветить неочевидные нюансы при работе с Redis и сегодня начну с основных концепций и понятий. А еще в конце статьи приведу небольшой чек-лист, который может помочь вам в оптимизации этого NoSQL решения.

Читать далее
Total votes 79: ↑79 and ↓0+79
Comments5

Дом, милый дом: нюансы работы с ClickHouse. Часть 1

Level of difficultyMedium
Reading time12 min
Views9.9K

Всем привет, меня зовут Пётр, я инженер компании Nixys. На современных проектах используется огромное разнообразие баз данных: реляционные, ключ-значение, документоориентированные. Особое место среди них занимают колоночные базы данных, ярким представителем которых является ClickHouse. Это мощный инструмент, который способен обрабатывать миллиарды строк в секунду при минимальном времени ответа. Однако, для максимальной эффективности ClickHouse необходимо понимать ряд фундаментальных моментов для того, чтобы использовать его по назначению. В этой серии статей мы разберем особенности работы ClickHouse, которые помогут в выжимании максимума из этой базы. И сегодня начнём с фундаментальных теоретических моментов, чтобы составить максимально полное общее впечатление, которое поможет нам в дальнейшем.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments2

Это база: нюансы работы с Redis. Часть 2, репликация

Level of difficultyMedium
Reading time11 min
Views5.7K

Всем привет, на связи Пётр, инженер компании Nixys. В прошлой статье мы разобрали основные концепции Redis. Теперь рассмотрим базовую репликацию Redis и настроим эту БД на высокий уровень отказоустойчивости.

Читать далее
Total votes 14: ↑14 and ↓0+16
Comments2

24 аспекта успешной организации работы. Чек-лист. На всё ли мы обращаем внимание?

Level of difficultyEasy
Reading time6 min
Views7.3K

Крупными и опытными командами получена неумолимая статистика:

Не более четверти времени команды идет на процесс разработки. А, что еще хуже, существенная доля времени - от 5 до 15% и вовсе не связана с производственным процессом.

В этой статье мы собрали для вас ключевые аспекты, уделяя внимание которым вы сможете существенно увеличить производительность IT-команды. За счет чего? В первую очередь за счет устранения помех в работе.

Читать далее
Total votes 7: ↑4 and ↓3+3
Comments0

DDD простыми словами

Level of difficultyEasy
Reading time5 min
Views20K

Часто в больших компания всё поделено на большие системы. А если система «Legacy», т.е. устаревшая, то часто внутри неё собрано очень много разнородного функционала. По сути такие системы представляют из себя монолитных монстров.

Бывает, что компании решают использовать микросервисный подход, но в результате получают таких же монолитных монстров, но только работающих в Кубере.

Границы систем размыты, нет чёткого понимания, что должно входить в систему, а что нет.

Команды сильно специализированы на конкретную систему и не могут участвовать в доработке никакой другой системы.

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

Можно ли исправить ситуацию коренным образом?

Читать далее
Total votes 18: ↑8 and ↓100
Comments41

Клеточная архитектура

Level of difficultyEasy
Reading time5 min
Views9.1K

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

Основная цель такого разделения — минимизация радиуса поражения при возникновении сбоев и упрощение масштабирования системы.

Читать далее
Total votes 12: ↑8 and ↓4+7
Comments32

Топовые подходы к решению алгоритмических задач

Reading time11 min
Views22K

Привет! Меня зовут Дмитрий Королёв, я бэкенд-разработчик в Авито. В этой статье я расскажу про ключевые аспекты и концепции работы с наиболее популярными алгоритмами и структурами данных. Это поможет и в реальных проектах, и чтобы глубже понять алгоритмические принципы. Статья подойдёт специалистам, которые хотят углубить свои знания в программировании, и укрепить навыки нахождения оптимальных решений алгоритмических задач.

Читать далее
Total votes 13: ↑13 and ↓0+16
Comments10
1
23 ...

Information

Rating
Does not participate
Registered
Activity