JavaGuru
JavaGuru
  • Видео 199
  • Просмотров 450 739
02. Оркестрация. SAGA pattern. Реализуем пример кода
JAVA DEVELOPER: javaguru.by/developer
Все мои курсы: javaguru.by
Телеграм канал: t.me/javaguru_by
Код проекта: drive.google.com/file/d/1EH5qNnMJb9FM8LEyGzfW9DLJzKSIdbh3/view?usp=sharing
00:00 Обзор стартового проекта
02:04 Order Service
09:07 Saga
09:20 Запускаем kafka cluster через docker
10:20 Тестируем
13:39 Итог
Просмотров: 359

Видео

01. SAGA pattern. Хореография и Оркестрация
Просмотров 898День назад
JAVA DEVELOPER: javaguru.by/developer Все мои курсы: javaguru.by Телеграм канал: t.me/javaguru_by 00:00 Введение в SAGA 01:10 Хореография 04:14 Хореография. Компенсирующие транзакции 06:20 Хореография. Когда использовать? 08:10 Оркестрация 10:46 Оркестрация. Компенсирующие транзакции 11:51 Оркестрация. Когда использовать? 12:40 Итог
История трудоустройства, Мила
Просмотров 420Месяц назад
Микросервисы и трудоустройство: javaguru.by/developer
01. Транзакции в Spring. Аннотация Transactional. Как работать с транзакциями?
Просмотров 20 тыс.Месяц назад
Практикум по микросервисам: javaguru.by/developer Все мои курсы: javaguru.by Разбор задач, тестов, вопросов с собеседований: t.me/javaguru_by Java с нуля: javaguru.by/javacore Разберем как правильно работать с транзакциями в Spring. Как устроены эти механизмы. И вопросы с собеседований. Ссылка на видео про основы транзакций: ruclips.net/video/uQW4ieKje-I/видео.html Ссылка на видео про транзакци...
04. Микросервисная архитектура: NoSQL и SQL DB (Redis, MongoDB, Cassandra, ETCD, PostgreSQL)
Просмотров 1,1 тыс.Месяц назад
Практикум по микросервисам: javaguru.by/developer Пишите мне в телеграм: @AndreiMentorJava Все мои курсы: javaguru.by Разбор задач, тестов, вопросов с собеседований: t.me/javaguru_by Целостное представление о микросервисной архитектуре Ссылка на первое видео: ruclips.net/video/7EPZzA79Xww/видео.html Поддержать канал: Сбербанк 79645291802 Андрей Б. 00:00 Relational DB 04:13 PostgreSQL 05:27 NoSQ...
03. Микросервисная архитектура: метрики и логи (ELK, Grafana, Prometheus, Kibana, Open Telemetry...)
Просмотров 9252 месяца назад
03. Микросервисная архитектура: метрики и логи (ELK, Grafana, Prometheus, Kibana, Open Telemetry...)
02. Микросервисная архитектура (Keycloak, Security, Kafka, RabbitMQ, FeignClient, Authorisation)
Просмотров 1,5 тыс.2 месяца назад
02. Микросервисная архитектура (Keycloak, Security, Kafka, RabbitMQ, FeignClient, Authorisation)
01. Микросервисная архитектура, Spring Cloud (API Gateway, Discovery, Config Server, WireMock ...)
Просмотров 21 тыс.2 месяца назад
01. Микросервисная архитектура, Spring Cloud (API Gateway, Discovery, Config Server, WireMock ...)
Компиляция и устройство JVM в java. Что происходит под капотом?
Просмотров 1,6 тыс.3 месяца назад
Компиляция и устройство JVM в java. Что происходит под капотом?
Как получить 6 офферов за 2 недели без опыта? Подводим итог курса Java Developer
Просмотров 7993 месяца назад
Как получить 6 офферов за 2 недели без опыта? Подводим итог курса Java Developer
Как Артем устроился мидлом в штат после 6 месяцев обучения
Просмотров 6133 месяца назад
Как Артем устроился мидлом в штат после 6 месяцев обучения
40. Factory Method - паттерн фабричный метод (Java Core с нуля, полный курс)
Просмотров 7483 месяца назад
40. Factory Method - паттерн фабричный метод (Java Core с нуля, полный курс)
Легенда, Резюме, Скрининг, Собес, Офер, Онбординг, Испыталка
Просмотров 1,1 тыс.3 месяца назад
Легенда, Резюме, Скрининг, Собес, Офер, Онбординг, Испыталка
03. Ingress и Service. Как вызывать задеплоенное в кубер приложение извне? (Kubernetes)
Просмотров 6224 месяца назад
03. Ingress и Service. Как вызывать задеплоенное в кубер приложение извне? (Kubernetes)
02. ConfigMap Secret Probe Limit (Kubernetes)
Просмотров 7484 месяца назад
02. ConfigMap Secret Probe Limit (Kubernetes)
01. Зачем Kubernnetes? Принципы работы. Pod, ReplicaSet, Deployment
Просмотров 2,8 тыс.4 месяца назад
01. Зачем Kubernnetes? Принципы работы. Pod, ReplicaSet, Deployment
01. Intro: unit и интеграционные тесты. (Курс JUnit, Mockito, TDD, Testcontainers)
Просмотров 1,2 тыс.4 месяца назад
01. Intro: unit и интеграционные тесты. (Курс JUnit, Mockito, TDD, Testcontainers)
Декомпозиция или с какой стороны подходить к задаче программисту?
Просмотров 9505 месяцев назад
Декомпозиция или с какой стороны подходить к задаче программисту?
Роли в IT команде. Как прояснять постановку задачи? У кого просить помощь?
Просмотров 7155 месяцев назад
Роли в IT команде. Как прояснять постановку задачи? У кого просить помощь?
Алгоритм решения проблем или как не бояться сложной таски!
Просмотров 1,3 тыс.5 месяцев назад
Алгоритм решения проблем или как не бояться сложной таски!
История трудоустройства Артемия
Просмотров 3715 месяцев назад
История трудоустройства Артемия
26.Consumer Integration Test (Kafka - полный курс)
Просмотров 8535 месяцев назад
26.Consumer Integration Test (Kafka - полный курс)
25. Config Integration Test (Kafka - полный курс)
Просмотров 5516 месяцев назад
25. Config Integration Test (Kafka - полный курс)
24. Producer Integration Test (Kafka - полный курс)
Просмотров 1,1 тыс.6 месяцев назад
24. Producer Integration Test (Kafka - полный курс)
История стажировки Николая
Просмотров 4466 месяцев назад
История стажировки Николая
23. Database Kafka Transactions (Kafka - полный курс)
Просмотров 1,3 тыс.6 месяцев назад
23. Database Kafka Transactions (Kafka - полный курс)
Как устроиться middle java dev и быть уверенным программистом?
Просмотров 8417 месяцев назад
Как устроиться middle java dev и быть уверенным программистом?
История устройства на стажировку без опыта и знания микросервисов
Просмотров 4377 месяцев назад
История устройства на стажировку без опыта и знания микросервисов
Как прошел первый курс Java Developer. Отзывы на выпускном занятии.
Просмотров 3747 месяцев назад
Как прошел первый курс Java Developer. Отзывы на выпускном занятии.
22. Kafka Transactions (Kafka - полный курс)
Просмотров 2,1 тыс.7 месяцев назад
22. Kafka Transactions (Kafka - полный курс)

Комментарии

  • @user-lk8n0fgjk
    @user-lk8n0fgjk 7 минут назад

    Огромная благодарность за видео! То, что нужно для изучения микров и САГИ. Осталось только настроить кафку через докер. Буду искать ваше видео на эту тему

  • @Sanchio
    @Sanchio 2 часа назад

    а у меня изначально 2 значения в advertised.listeners: advertised.listeners=PLAINTEXT://localhost:9092,CONTROLLER://localhost:9093

  • @user-bs8yy5pp6m
    @user-bs8yy5pp6m 2 часа назад

    Кстати, действительно при работе со StringBuilder изменение содержимого строки происходит несравнимо быстрее. При цикле в 100.000 итераций обычная конкатенация заняла примерно 3 секунды, а при помощи StringBuilder -- 0,009834741 секунды.

  • @MsPG94
    @MsPG94 6 часов назад

    Классное и наглядное объяснение, благодарю за труд

  • @Letitbe-iq8bm
    @Letitbe-iq8bm 14 часов назад

    Супер!

  • @Sanchio
    @Sanchio 22 часа назад

    PowerShell ругается, что нет wmic. И действительно, файла wmic.exe у меня нет в C:\Windows\System32\wbem. Погуглил, вроде как Microsoft убрала эту штуку из последних версий Винды, но это не точно. Короче, получилось запустить через WSL. Как я понимаю, Kafka в основном будет не на локальную машину ставиться, а использоваться в контейнере? Если так, то буду пока довольствоваться работой в WSL. Спасибо за урок)

  • @Евгений-ы4м3ж
    @Евгений-ы4м3ж 22 часа назад

    Спасибо за материал! Подскажите пожалуйста по следующей проблеме... Сделал продьсера по вашему курсу. Консьюмер и продьюсер сделал модулем . Передаваемый объект-event скопипастил в 2 модуля не создавая модуль core. После чего падает десериализация при получении объекта. Если добавляю зависимость на модуль продьюсера и беру объект-event из продьюсера то все работает отлично. Можно ли как-то побороть это и делать копипаст 1 объекта в нескольких модулях?

  • @user-bs8yy5pp6m
    @user-bs8yy5pp6m День назад

    Круто, спасибо! Очень многое прояснилось (уровень доступа полей и методов, организация примитивов и ссылочных типов в памяти, final и static, очень понятный пример разницы ООП и процедурной методологии и т.д.). Всё встало на свои места благодаря Вам. Была каша.

  • @user-bs8yy5pp6m
    @user-bs8yy5pp6m День назад

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

  • @olegtytov6134
    @olegtytov6134 День назад

    Если первый микросервис изменяет данные в ходе транзакции, нужно ли блокировать эти ресурсы, чтобы обеспечить принципы ACID? Например, если первая транзакция изменит данные, но ещё не завершится, а другая транзакция попытается прочитать эти данные. Если в итоге вторая часть первой транзакции откатится (rollback), то и изменения в первом микросервисе тоже должны быть откатаны. Но в этом случае вторая транзакция может продолжить работать с данными, которых на самом деле уже не существует. Теперь вопрос: нужно ли блокировать данные в первом микросервисе, чтобы исключить подобные ситуации?

  • @ZelenDim
    @ZelenDim 2 дня назад

    Привет, спасибо за видео! Одна просьба - используйте, светлую тему в идее. Когда смотришь видео ночью и в видео происходит смена с идеи на презентацию - по глазам бьёт 😅

  • @vikiorit
    @vikiorit 2 дня назад

    Спасибо за материалы! Подача очень информативная и понятная! Лучшие видео по Java на Ютубе =) Не планируете ли видео по Camunda, если работали с ней? И работали ли?

    • @KostLogRU
      @KostLogRU 2 дня назад

      Привет! А что интересует по камунде? Очень часто сталкиваюсь с ней.

  • @GreyKnight333
    @GreyKnight333 2 дня назад

    По вашему опыту, что сейчас чаще используют в проектах: maven или gradle? И ещё небольшой вопрос немного не по теме: часто ли сейчас встречается xml конфигурация в реальных проектах?

    • @java-guru
      @java-guru 2 дня назад

      xml конфиг спринга редко на совсем легаси проектах, а soap с xml достаточно часто еще. maven и gradle можно глянуть статистику, на мой взгляд 50 50 примерно

    • @GreyKnight333
      @GreyKnight333 2 дня назад

      @@java-guru Большое спасибо!

  • @GreyKnight333
    @GreyKnight333 3 дня назад

    Такие ролики может и не учат каким-то технологиям, но очень сильно мотивируют продолжать дальше. Огромное спасибо за контент!

    • @java-guru
      @java-guru 3 дня назад

      Спасибо за отзыв!!

  • @GreyKnight333
    @GreyKnight333 3 дня назад

    Большое спасибо за урок!

    • @java-guru
      @java-guru 3 дня назад

      Вам спасибо что активно откликаетесь в комментариях, это здорово поддерживает!

  • @user-bs8yy5pp6m
    @user-bs8yy5pp6m 3 дня назад

    Хороший курс, очень.

    • @java-guru
      @java-guru 3 дня назад

      Спасибо за поддержку!!

  • @user-bs8yy5pp6m
    @user-bs8yy5pp6m 3 дня назад

    Роскошный урок, всё очень понятно. Вы очень большую работу проделали. Спасибо Вам!

    • @java-guru
      @java-guru 3 дня назад

      Спасибо что активно откликаетесь в комментариях! Для меня это большая поддержка!

  • @user-bs8yy5pp6m
    @user-bs8yy5pp6m 3 дня назад

    Очешуеть, как круууууто!

    • @java-guru
      @java-guru 3 дня назад

      Спасибо)))))

  • @esuhoy
    @esuhoy 5 дней назад

    Миллион - это ближе к Мегабайтам… а вообще 1048576 == 2^20.

  • @epicshow777
    @epicshow777 5 дней назад

    А этот демонстрационный проект есть на github?)

  • @systemcrashed6782
    @systemcrashed6782 5 дней назад

    Очень классно.

    • @java-guru
      @java-guru 3 дня назад

      Спасибо за отклик!)

  • @user-lk8n0fgjk
    @user-lk8n0fgjk 7 дней назад

    Огромное спасибо за выпуск. Ценно и очень полезно. Ждем новые темы!

    • @java-guru
      @java-guru 7 дней назад

      Спасибо за отклик, уже есть первая часть saga и потом будет outbox, по теме транзакций

    • @user-lk8n0fgjk
      @user-lk8n0fgjk 7 дней назад

      ​@@java-guru да, видел, Вы - кладезь знаний для нас

  • @systemcrashed6782
    @systemcrashed6782 7 дней назад

    У меня в среде идеи считывает при запуске как будто у меня 10 винда, если же запускать через консоль то всё правильно считывает что у меня стоит 11.

  • @nifirusnifirus7138
    @nifirusnifirus7138 9 дней назад

    Почему не оптимистическая блокировка? Она дешевле

    • @java-guru
      @java-guru 9 дней назад

      Главная причина в том что основное видео про параметр isolation в аннотации) А с философской точки зрения оптимистическая хоть и производительнее, но подходит хорошо для систем где данные обновляются не очень часто, т.е. конкуренция для обновления низкая или средняя, а при высокой конкуренции вероятность OptimisticLockException возрастает, если SYNCHRONIZED полностью исключает конфликт, то редкие конфликты при оптимистической могут быть в момент фиксации

  • @KiraYatsishina
    @KiraYatsishina 10 дней назад

    Спасибо огромное! Наглядно и четко показано на примерах

    • @java-guru
      @java-guru 10 дней назад

      Спасибо за отклик!

  • @unicoxr5tj417
    @unicoxr5tj417 10 дней назад

    актуалочка

  • @АктилекКаныбеков-й7н

    Спасибо вам за Ваш труд Объясняете сложные вещи простым языком!)

    • @java-guru
      @java-guru 10 дней назад

      Спасибо за поддержку!)

  • @Garbatblu_Collector
    @Garbatblu_Collector 11 дней назад

    с такими авторами ютубу очень не хватает функции "автолайк"

    • @java-guru
      @java-guru 11 дней назад

      Спасибо)))

  • @user-zm9on5rb8z
    @user-zm9on5rb8z 11 дней назад

    Спасибо за видео 🎉😊

    • @java-guru
      @java-guru 11 дней назад

      Спасибо за коммент

  • @ВладиславТимошенко-и3д

    Очень круто

  • @Евгений-ы4м3ж
    @Евгений-ы4м3ж 11 дней назад

    Разрабы: микросервисы это круто, микросервисы разрабатываются отдельно и не знают друг о друге Транзакции: ну да, ну да. Наивные

  • @timohani
    @timohani 11 дней назад

    Очень полезное видео! Качество с годами только растёт ❤

    • @java-guru
      @java-guru 11 дней назад

      Спасибо за поддержку!

    • @timohani
      @timohani 11 дней назад

      @@java-guru Да не за что! Я ваш канал смотрю давно и я обычно комментарии не пишу, но за такие видео и коммент написать не лень)

    • @java-guru
      @java-guru 11 дней назад

      @@timohani 🙏🔥

  • @dien0000
    @dien0000 11 дней назад

    То есть пайплайны в ci/cd разные, для ремот пуш, для мердж реквест в дев, с дев в прод разные пайплайны? в пайплайнах фичи тесты будут запускаться на основе написанных самим разрабом под фичу тесты или есть один общий пайплайндля ремот пуш, который не меняется под разные фичи?

    • @java-guru
      @java-guru 11 дней назад

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

    • @dien0000
      @dien0000 10 дней назад

      @@java-guru Благодарен за ответ!

  • @Sst886
    @Sst886 12 дней назад

    Спасибо за материал! Не могли бы вы пояснить, почему в вашем случае и hasAuthority, и hasRole работают корректно с переменными "ADMIN" и "USER", в то время как между ними есть разница, насколько я понимаю (в части добавления префикса ROLE_). А главное, не могу понять, как всё это работает корректно, при условии, что в БД в поле role значения тоже без префикса? У меня, например, в конфигурации с hasRole("ADMIN") и значением "ADMIN" в role в БД попросту вылетает 403.

    • @java-guru
      @java-guru 11 дней назад

      Правильно отметили что hasRole не должен был бы работать, можете поисследовать код github.com/AndreiBor/spring-starter-ita.git

    • @Sst886
      @Sst886 10 дней назад

      @java-guru благодарю!

  • @dmitrylanin7812
    @dmitrylanin7812 13 дней назад

    Добрый день! подскажите, какие классы вы импротили для UserDAO? Не получается создать JPAQuery, потому что на вход ему нужно javax.persistence.EntityManager, а наш Session позволяет получить только jakarta.persistence.EntityManager

    • @dmitrylanin7812
      @dmitrylanin7812 13 дней назад

      К сожалению, на этом видео вырезана процедура создания UserDAO(((

  • @ҒномКолготкин
    @ҒномКолготкин 15 дней назад

    А если вывести названия топиков в эту же библиотеку как константы это хорошее решение?

  • @Victorius-first
    @Victorius-first 16 дней назад

    Спасибо за видео. Может подскажете хорошее видео о создании собственного процессора аннотаций с применением gradle (build.gradle.kts) таски для запуска процессора?

    • @java-guru
      @java-guru 15 дней назад

      Спасибо за комментарий! У меня нет такой ссылки

  • @MikhailLatypov-n6r
    @MikhailLatypov-n6r 17 дней назад

    Спасибо за урок! Интересно и полезно!

  • @user-ct6mm9cu1h
    @user-ct6mm9cu1h 18 дней назад

    Нужен ли нам в таком случае бин kafka transaction mabager?

  • @DHARMA252
    @DHARMA252 19 дней назад

    Отличное видео. Будут ли ещё видео по теме в будущем?

    • @java-guru
      @java-guru 19 дней назад

      В ближайшее время не будет пока, потом сниму)

  • @systemcrashed6782
    @systemcrashed6782 20 дней назад

    Классная интересная презентация и жизненный опыт. Рад что нашёл твой канал очень много полезной информации.

    • @java-guru
      @java-guru 20 дней назад

      Спасибо за отклик! Рад что полезно!)

  • @fedyaka4
    @fedyaka4 26 дней назад

    Спасибо большое за курс, было интересно! :D Будет ли продолжение?

    • @java-guru
      @java-guru 26 дней назад

      Да, скоро будет SAGA через kafka

  • @Евгений-ы4м3ж
    @Евгений-ы4м3ж 26 дней назад

    В целом все отлично, понятно и информативно но обратите внимание : 1. Диаграмма классов и интерфейсов очень невалидная 2. На слайде "пулы потоков" не хватает newScheduledThreadPool() В целом 👍👍Спасибо!

  • @mynamektdf
    @mynamektdf 27 дней назад

    жаль, что не в докере развертка происходит

    • @java-guru
      @java-guru 27 дней назад

      Дальше есть видео с докером, можете сразу в докере

  • @napeHEK1
    @napeHEK1 27 дней назад

    Спасибо за весь курс!

    • @java-guru
      @java-guru 21 день назад

      Спасибо что поддержали комментом!

  • @ВладиславМильцын
    @ВладиславМильцын 28 дней назад

    Спасибо огромное за урок, у Вас очень хорошо структурированны уроки, смотрю с удовольствием!😊

    • @java-guru
      @java-guru 21 день назад

      Спасибо за поддержку, рад что полезно!

  • @DanChofire
    @DanChofire 28 дней назад

    Отчень круто. Ждем продолжения!!❤

    • @java-guru
      @java-guru 21 день назад

      Планирую в ближайшее время продолжить)

  • @agpopandopulo
    @agpopandopulo Месяц назад

    Спасибо! Не очень понял, имеет ли смысл отправлять сообщения с ключом - рандомным UUID. Результат кажется не отличается от null (понятно что хэшкод еще может совпасть у них)

    • @java-guru
      @java-guru 29 дней назад

      Рэндомный здесь для примера, как правило это уникальный id сущности

  • @ИгорьКрас-ц7щ
    @ИгорьКрас-ц7щ Месяц назад

    это за год курсов с нуля она устроилась мидлом, или у нее была база какая то ?

    • @java-guru
      @java-guru Месяц назад

      До курса java developer она учила java 9 месяцев, а на нашем курсе после 2 месяцев получила первый офер, т.е. 11 мес у нее ушло с нуля до получения первого офера. Причем этот офер она не приняла)

    • @ELVL-1
      @ELVL-1 29 дней назад

      ​@@java-guruну видимо не на мидла был всё -такт оффер)

    • @java-guru
      @java-guru 29 дней назад

      @@ELVL-1 Почему?)

  • @mishaprokopovich5253
    @mishaprokopovich5253 Месяц назад

    Это настоящий босс джавы, очень информативное видео, в названии есть 01, ждем 02 часть)

    • @java-guru
      @java-guru 21 день назад

      Хорошо) Спасибо