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

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

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

Настройка jwt-username-password authentication через spring-security-oauth2-resource-server

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

Добрый день!

В этой статье я хотел бы рассказать, как настроить простейшую jwt аутентификацию, без создания кастомных фильтров для генерации и валидации токенов. На мой взгляд найти пример конфигурации в "этих ваших интернетах", да такой чтобы над каждым методом не висело deprecated не самая простая задача, особенно для начинающих, а не начинающим эти примеры наверное и не нужны :).

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

Настолько ли общество прогнило?

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

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

Читать далее
Всего голосов 196: ↑160 и ↓36+124
Комментарии1078

Hibernate Best Practices для начинающих

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

В данной статье я не ставлю цель подробно описать Hibernate, такого материала полно в сети. Это скорее справочник, в который можно заглянуть и увидеть возможные проблемные места и их решение, который позволит вам не допустить грубых ошибок при использовании Hibernate. Статья рассчитана на читателя уже знакомого с Hibernate и Spring.

Читать далее
Всего голосов 19: ↑13 и ↓6+7
Комментарии25

Как мы построили корпоративную шину данных на Kafka, которая обрабатывает до 3 млн сообщений в секунду

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

Привет! Меня зовут Иван Гаас, я руковожу автоматизацией процессов разработки в Почтатехе — компании, создающей цифровые продукты для Почты России.

Среднее количество сообщений, которые мы обрабатываем в Почте — от 500 тысяч до миллиона в секунду. В пики, когда наша big data прогоняет свои 25 петабайт данных — до 3 миллионов. При этом кластер Kafka состоит всего из 12 серверов в каждом из 3 дата-центров и справляется с этим.

C 2016 года мы в три раза увеличили количество новых цифровых сервисов. Корпоративная шина на Kafka помогла быстро масштабироваться: количество интеграций за последнее время упало с 1000 до 300 и теперь растёт незначительно. Если раньше интеграция сервиса растягивалась на месяцы, то теперь достаточно нескольких дней.

Я расскажу, как мы построили шину, которая обеспечивает такую производительность.

Читать дальше
Всего голосов 37: ↑36 и ↓1+35
Комментарии14

Что лучше: Spark Structured Streaming или полное прекращение работы прода?

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

Правильное построение ETL-процессов (преобразования данных) — сложная задача, а при большом объёме обрабатываемых данных неизбежно возникают проблемы с ресурсами. Поэтому нам требуется выискивать новые архитектурные решения, способные обеспечить стабильность расчётов и доступность данных, а при необходимости и масштабируемость — с минимальными усилиями.

Когда я пришел в Ozon, мне пришлось столкнуться с огромным количеством ETL-джоб. Прежде чем применить модель машинного обучения, сырые данные проходят множество этапов обработки. А само применение модели (то, ради чего существует команда) занимает всего 5% времени.

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

Разработка архитектуры для чайников. Часть 2

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

Monolite or MicroService ?

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

Давайте для начала разберём что такое монолит и его преимущества и недостатки.

Читать далее
Всего голосов 17: ↑8 и ↓9-1
Комментарии8

Микросервисы для чайников: как на них перейти с монолита с нуля

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

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

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

Читать далее
Всего голосов 29: ↑27 и ↓2+25
Комментарии31

Лучший способ использовать аннотацию Spring Transactional

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

В этой статье я собираюсь показать вам лучший способ использования аннотации Spring Transactional.

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

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

Греческая мифология и астрономия

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

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

Казалось бы, нет суровее науки. В ней не может быть никаких «ученым показалось…» или «ученые думают, что…» — ученые теперь лишь публикуют 100 раз проверенные данные и 100500 раз перепроверенные выводы из этих данных.

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

Но есть у астрономии одно удивительное свойство, которого нет ни у какой другой точной или естественной науки.

Астрономия насквозь мифологична.

Читать дальше →
Всего голосов 45: ↑43 и ↓2+41
Комментарии10

SAGA на golang

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

После того, как я написал статью про паттерн CQRS, мне захотелось описать ещё один интересный шаблон для микросервисной архитектуры, а именно saga (он же повествование).

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

Отчеты о покрытии кода JUnit тестами с помощью Maven плагина JaCoCo

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

Это продолжение туториала по JUnit 5. Введение опубликовано здесь.

Научитесь создавать отчеты о покрытии кода для тестов JUnit с помощью подключаемого модуля JaCoCo Maven.

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

Перейти с Linux на macOS и не сойти с ума

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

Ноутбук — главный девайс в моей жизни, я провожу за ним бо́льшую часть суток. Он должен быть лёгким, компактным и мощным. Долгое время лидером по этим параметрам был Dell XPS 13, но всё поменялось с выходом MacBook Air на процессоре M1.

Air всего на 100 граммов тяжелее XPS 13, но примерно в три раза мощнее, автономнее и не нуждается в активном охлаждении. Никогда не думал, что скажу подобное про технику Apple, но MacBook Air — самое крутое устройство в своей весовой категории на рынке, оставившее конкурентов далеко позади.

Я фанат Линукса, эта операционная система для меня больше, чем просто окружение. Это философия, новостная повестка и постоянный предмет обсуждения. Поэтому сама идея отказа от Linux в пользу другой ОС меня всегда отталкивала. Да и тот эпизодический опыт, когда приходилось что-то делать в macOS, был эмоционально неприятным.

Но появление M1 посеяло во мне зерно сомнений: мой ноутбук больше не был самым крутым и навязчивой мыслью было то, что я отказываю себе в чём-то большем. Это зерно прорастало и проросло: я купил MacBook Air с 16GB ОЗУ и 512GB SSD, с удивлением обнаружив, что он ещё и стоит дешевле моего XPS. Впереди меня ожидали настройка окружения, борьба с Docker, грусть от отсутствия привычного автодополнения в консоли и много чего ещё.

Читать далее
Всего голосов 136: ↑131 и ↓5+126
Комментарии379

Техники обработки отказов сервиса в микросервисных архитектурах, или Альтернативы Circuit Breaker

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

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

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

Эволюция рабочего места: от ноутбука на кухне до работы стоя

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

Компьютерный стол у меня появился на два года раньше компьютера, в 2004 году. Это был обычный стол, у которого даже были полки для монитора и клавиатуры. За ним я научился всему, а спустя 17 лет он всё так же стоит у моих родителей.

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

Поделюсь своей историей о том, какой путь прошёл и что нового узнал.

Читать далее
Всего голосов 58: ↑55 и ↓3+52
Комментарии217

Kafka и микросервисы: обзор

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


Всем привет. В этой статье я расскажу, почему мы в Авито девять месяцев назад выбрали Kafka, и что она из себя представляет. Поделюсь одним из кейсов использования — брокер сообщений. И напоследок поговорим о том, какие плюсы мы получили от применения подхода Kafka as a Service.

Читать дальше →
Всего голосов 53: ↑53 и ↓0+53
Комментарии109

Разгоняем REACTOR

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

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

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

Неполнота науки: как жил и что доказал Курт Гёдель?

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

«Достижения Курта Гёделя в современной логике уникальны и монументальны. Определенно, это — нечто большее, нежели памятник ученому, это — путеводная звезда, свет которой продолжит распространяться в пространстве и времени вечно». 

Джон фон Нейман

Накануне гибели Австро-Венгерская империя подарила человечеству немало великих умов. Такие громкие имена, как Эрвин Шрёдингер, Зигмунд Фрейд и Стефан Цвейг известны, пожалуй, каждому, включая даже тех, кто бесконечно далек от мира физики, психоанализа или классической литературы. С работами же Курта Гёделя знакомы не многие, хотя масштаб его вклада в математическую науку сопоставим с достижениями Эйнштейна в области физики. Ведь если теория относительности и квантовая теория помогли человечеству взглянуть под совершенно иным углом на законы мироздания, то теоремы Гёделя заставили ученых пересмотреть свои представления о научной методологии и принципах работы человеческого разума.

Логика, как образ жизни


Курт Фридрих Гёдель родился 28 апреля 1906 года в австро-венгерском городе Брюнн (ныне — статутный город Чешской Республики Брно), в семье австрийского коммерсанта Рудольфа Августа Гёделя, управляющего крупной текстильной фабрикой. Хотя Курт с детства демонстрировал недюжинные способности к языкам (еще в ранней юности он освоил английский и французский, научившись изъясняться на них не хуже, чем на родном немецком), однако карьера лингвиста его не прельщала. Окончив в 1923 году школу, молодой человек поступил в Венский университет, первые два курса которого посвятил изучению физики, однако затем переключился на математику, чему во многом способствовало прочтение книги Бертрана Рассела «Введение в философию математики».


Молодой Курт Гёдель, 1925 год
Читать дальше →
Всего голосов 74: ↑73 и ↓1+72
Комментарии99

1000 и 1 способ сесть на мель в Spring WebFlux при написании высоконагруженного сервиса

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

Источник изображения: Shutterstock.com/photowind

Добрый день, меня зовут Тараканов Анатолий, я senior java разработчик SberDevices. 2.5 года программирую на Java, до этого 6 лет писал на C# и 1 год на Scala. Хочу поделиться опытом создания сервиса-оркестратора Voice Processing Service. Он является точкой входа для пользователей семейства виртуальных ассистентов Салют. Через него также проходит часть трафика приложений SmartMarket, где любой разработчик может написать навык для наших виртуальных ассистентов Салют.

Одним словом, на сервис приходится немалая нагрузка. Давайте посмотрим, какие проблемы при его создании возникли и как мы их решали, а также сколько времени ушло на поиск причин. И всё это в контексте реактивного фреймворка Spring WebFlux.

Немного о сервисе


Начнем с обзора архитектуры нашего сервиса-оркестратора. Он управляет процессом обработки входящего трафика от пользователей, формированием и передачей ответа. Среди смежных систем, к которым он обращается, есть такие сервисы:

  • идентификации по токену, а также голосовым и видеоданным;
  • насыщения запроса дополнительными данными о пользователе и истории взаимодействия;
  • преобразования речевого сигнала в текстовое представление;
  • обработки естественного языка;
  • преобразования текста в голосовое представление;
  • запуска пилотных фич;
  • распознавания музыки и другие.

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

Собеседование Backend-Java-разработчика: вопросы и где искать ответы. Часть 1

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

Когда-то я проходил серию собеседований на Backend-Java-разработчика и записывал вопросы себе на будущее, чтобы потом можно было пробежаться и освежить память. Подумалось, что, вероятно, данный сборник будет полезен не только мне, поэтому сдул с него пыль, набросал ответов и делюсь с сообществом. На оригинальность и исключительность не претендую: подобные статьи уже были и на Хабре, и много где ещё — в конце (во второй части) приведу список ссылок, чтобы шпаргалка была максимально полной.


Точно установить сложность всех вопросов не берусь — на разном уровне их потребуется раскрыть с различной степенью подробности. Я написал ответы где-то на плюс-минус middle, щедро приправив ссылками для дальнейших изысканий. На самые популярные вопросы сразу перенаправляю в источники с готовыми ответами. Заодно посмотрим по ссылкам в статье, насколько Хабр может помочь в подготовке к собесам.


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

Погнали
Всего голосов 17: ↑15 и ↓2+13
Комментарии7

Архитектура и стоимость простого бессерверного веб-приложения Amazon Web Services

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

Введение


Весной этого года я сидел в локдауне на Багамах, без права сходить на берег и, борясь со скукой, решил посмотреть, что это за зверь такой Amazon Web Services, и да, я пропал. Случилось, что называется, любовь с первого взгляда. Одной из технологий, что пьянила меня не хуже багамского рома, были бессерверные вычисления.


Читать дальше →
Всего голосов 29: ↑24 и ↓5+19
Комментарии34

Информация

В рейтинге
Не участвует
Откуда
Athens, Attiki, Греция
Зарегистрирован
Активность