<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Статьи]]></title>
    <link>https://habr.com/ru/users/javawizard/publications/articles/</link>
    <description><![CDATA[Хабр: статьи пользователя javawizard]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Thu, 07 May 2026 23:05:36 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    
    <item>
      <title><![CDATA[Яндекс ТВ Pro (YNDX-00102): дорогой экран с навязанной рекламой. Опыт реального использования]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/987348/</guid>
      <link>https://habr.com/ru/articles/987348/?utm_campaign=987348&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/053/c13/cab/053c13cabc557aaf4e78bd6cce816d47.png" /><p>Эта статья — не обзор «из коробки» и не пересказ маркетинговых материалов.<br> Яндекс ТВ Pro (модель <strong>YNDX-00102</strong>) был куплен мной <strong>17.06.2025</strong> в магазине <strong>ДНС за 81799р</strong> и использовался как основной телевизор в течение длительного времени.</p><p>Все платные сервисы были подключены и корректно авторизованы:</p> <a href="https://habr.com/ru/articles/987348/?utm_campaign=987348&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 21 Jan 2026 10:04:27 GMT</pubDate>
      <dc:creator><![CDATA[JavaWizard]]></dc:creator>
      <category><![CDATA[Android]]></category><category><![CDATA[Мониторы и ТВ]]></category>
      <category><![CDATA[Яндекс]]></category><category><![CDATA[яндекс тв]]></category><category><![CDATA[яндекс тв станция про]]></category><category><![CDATA[яндекс тв станция]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Кнопка «F5» устала: real-time уведомления в микросервисной архитектуре]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/nlmk/articles/882004/</guid>
      <link>https://habr.com/ru/companies/nlmk/articles/882004/?utm_campaign=882004&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/24b/f5b/e17/24bf5be17945a46a3c22a8d7891bf024.jpg" /><p>Представьте себе: у вас железнодорожная станция, сотни вагонов, десятки пользователей в системе, каждый раз кто-то нажимает кнопку "Обновить", чтобы узнать — разгрузили ли нужный вагон.</p><p>Вся логика обновления построена на "manual refresh". Да-да, пользователь сам жмёт кнопку, чтобы получить свежие данные. Система автоматической разгрузки или другой  человек разгрузил что-то на другом конце станции, но вы об этом не узнаете, пока не перезагрузите страницу.</p><p>А ещё — избыток HTTP-запросов, polling, перегруженные серверы и полное отсутствие real-time взаимодействия.</p><p>Есть вариант! Масштабируемая и отказоустойчивая архитектура с использованием&nbsp;<strong>Redis Sentinel + Pub/Sub + WebSocket/SSE</strong>.</p><p>В статье расскажем какие проблемы возникают с real-time в Kubernetes, почему стандартные WebSocket-подходы не работают при нескольких подах, как построить отказоустойчивую систему с Redis Sentinel, как сделать real-time UI, сохранив отказоустойчивость и масштабируемость, и как всё это запустить локально для отладки.</p> <a href="https://habr.com/ru/articles/882004/?utm_campaign=882004&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">👇 Разбираем решение!</a>]]></description>
      
      <pubDate>Tue, 08 Apr 2025 07:01:08 GMT</pubDate>
      <dc:creator><![CDATA[JavaWizard (НЛМК ИТ)]]></dc:creator>
      <category><![CDATA[Блог компании НЛМК ИТ]]></category><category><![CDATA[Java]]></category><category><![CDATA[Программирование]]></category>
      <category><![CDATA[java]]></category><category><![CDATA[redis]]></category><category><![CDATA[sentinel]]></category><category><![CDATA[sse]]></category><category><![CDATA[websocket]]></category><category><![CDATA[notifications]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Аудит пользователей Spring Data JPA]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/nlmk/articles/757866/</guid>
      <link>https://habr.com/ru/companies/nlmk/articles/757866/?utm_campaign=757866&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/7ca/6d1/461/7ca6d1461a2d079453e260509417bb6d.png" /><p><strong><em>Задача: в&nbsp;БД необходимо фиксировать кто создал сущность, кто её обновил, и кто её удалил.</em></strong></p><p>Все знают, как&nbsp;взять пользователя из&nbsp;контекста и сунуть его в&nbsp;сущность. Допустим, на&nbsp;уровне сервиса в&nbsp;методе извлечь информацию о&nbsp;нём и «засетать» его в&nbsp;нужные поля (придётся везде таскать этот кусок кода по&nbsp;сервису), а&nbsp;с&nbsp;аспектами как‑то выглядит не&nbsp;явно и накладывает ряд обязательств (например, развешивание аннотаций над методами всякий раз, когда мы что‑то пытаемся сделать с&nbsp;сущностью (новые участники команды могут не&nbsp;знать о&nbsp;такой неявной практике, а&nbsp;старые забыть о&nbsp;ней)).</p><p>Мне хотелось полностью делегировать это приложению, но&nbsp;погуглив, я не&nbsp;нашёл какого‑то явного решения. Сейчас расскажу, как&nbsp;мне удалось это сделать:</p> <a href="https://habr.com/ru/articles/757866/?utm_campaign=757866&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 Sep 2023 07:06:23 GMT</pubDate>
      <dc:creator><![CDATA[JavaWizard (НЛМК ИТ)]]></dc:creator>
      <category><![CDATA[Блог компании НЛМК ИТ]]></category><category><![CDATA[Программирование]]></category><category><![CDATA[Java]]></category>
      <category><![CDATA[Java]]></category><category><![CDATA[аудит]]></category><category><![CDATA[аудит изменений]]></category><category><![CDATA[программирование]]></category><category><![CDATA[spring-boot]]></category><category><![CDATA[spring data jpa]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
