Microservices: Communication through a message queue. Part 1.

Поділитися
Вставка
  • Опубліковано 22 лип 2020
  • Service-to-service communications.
    Microservices send requests to other microservices (APIs) using a message queue. This video will focus on the theoretical part. I'll cover RabbitMQ and MassTransit.
    Keywords: #rest, #json, #grpc, #Message, #Queue, #RabbitMQ, #Binary, #data, #communication, #api, #service_to_service, #MassTransit

КОМЕНТАРІ • 44

  • @ebls9032
    @ebls9032 3 роки тому +9

    Спасибо, за то что делаете! Только начал смотреть про взаимодействие микросервисов и Вы выпустили видео)

    • @SergeiCalabonga
      @SergeiCalabonga  3 роки тому

      Хорошо, когда всё к месту и в тему!!!

  • @Mr43046721
    @Mr43046721 2 роки тому +1

    Сергей, большое спасибо за Ваши труды! Очень полезный контент)

  • @semen083
    @semen083 3 роки тому +10

    Использование mass transit противоречит концепции микросервисной архитектуры, что сервисы могут быть реализованы с использованием разных технологий. Если один микросервис написан на C#, а другой на Java то massTransit не подойдёт. Получаем логическое противоречие при определения микросервисной архитектуры и маленький шаг в сторону монолита. Хотя конечно можно и закрыть глаза на это допущение, если все остальное хорошо работает.

    • @SergeiCalabonga
      @SergeiCalabonga  3 роки тому +9

      На основании заявлений Мартина Фаулера (да и многих других корефеев по построению архитектурных решений), со всей отвественностью заявляю, что, уважаемый, заблуждаетесь. Никаких противоречий нет! Более того, если посмотреть определение микросервисной архитектуры (например в wiki), то самого понятия тоже не существует. Есть только 4 (четыре) абстракных характеристики, которые ни коим образом не ограничивают стек технологий и платформ. И, кстати, в этом-то и основная сложность этой самой архитектуры, собрать воедино все необходимые компоненты системы, подобрать правильные и самые эффективные инструменты и платформу. Чтобы выбор соответствовал нуждам вашей компании, вливался в стек технологий и работал на той платформе, которая выбрана за основу.
      Другими словами, можно сделать всё на одной платформе (например, ASP.NET Core), и это будет микросервисная архитектура на стеке .NET. А можно сделать на другой платформе (node.js, kafka, redis, etc), и это тоже будет микросервисная архитектура, но на другой платформе стеке. И более того, вы может использовать несколько платформ, и в любой пропорции и с любым стеком. Другое дело, что у вас не получится кроссплатформенно ипользовать MassTransit, потому что его "территория" - это .NET.
      P.S.: Я не ставлю перед собой задачу написать всеобъемлющую микросервисную архитектуру (или архитектуры) на разных платформах. Я попросту не знаком с отличными от .NET инструментами, платформами и прочими составляющими успеха. Все мои ролики, так или иначе, имеют привязку к ASP.NET Core. :)
      P.P.S.: Спасибо за хороший вопрос.

  • @socialcatalyst2608
    @socialcatalyst2608 3 роки тому +1

    Спасибо тебе добрый человек!

    • @SergeiCalabonga
      @SergeiCalabonga  3 роки тому +1

      И вам спасибо за комментарий

  • @Sergey-vh3vj
    @Sergey-vh3vj Рік тому

    Спасибо за труд.

    • @SergeiCalabonga
      @SergeiCalabonga  Рік тому

      И есть за что! Спасибо за комментарий!

  • @Andrzej3935
    @Andrzej3935 Рік тому

    Спасибо большое!

  • @user-jz8xu8dg9o
    @user-jz8xu8dg9o Рік тому

    Добрый день! На схеме на 3:00 microservice2 обращается к identity server для проверки токена - зачем? ведь у него есть токен с инфо о пользователе и правах, есть его подпись, зачем делать обращение на identity server?

    • @SergeiCalabonga
      @SergeiCalabonga  Рік тому +1

      А откуда Microservice2 знает, что это токен валидный? Вот идет на сервер проверять.

    • @semenivanoff8615
      @semenivanoff8615 3 місяці тому

      Чтобы проверть что токен живой

  • @Jekklo
    @Jekklo 2 роки тому

    Работал с масс транзитом. У него есть очень большой косяк. Он сильно привязывается к своему формату сообщения и по факту все самы сильные фишки именно раббита он не использует т.к. призодится платить за совместимость с кафкой. В итоге пришлось отказываться от него.

    • @SergeiCalabonga
      @SergeiCalabonga  2 роки тому

      MassTransit - уровень абстракции, который прекрасно "натягивается" на пачку серверов сообщений (masstransit-project.com/usage/transports/). А kafka - это Stream Processing Platform. Она устроена совсем по-другому. Очередь лежит у нее глубоко в ядре (kafka.apache.org/). Можно посмотреть и другие статьи на эту тему www.google.com/search?q=is+kafka+message+queue&oq=is+kaffka+message&aqs=edge.2.69i57j0i13l2j0i22i30l2j0i8i13i30l3.10719j0j1&sourceid=chrome&ie=UTF-8
      В данной ситуации, надо четко понимать, что такое очередь, почему MassTransit легко натягивается именно на Message Queue и почему возникают трудности, когда начинаешь "натягивать" MassTransit на то, на что его "натянуть" невозможно.

    • @Jekklo
      @Jekklo 2 роки тому

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

    • @SergeiCalabonga
      @SergeiCalabonga  2 роки тому

      @@Jekkloу меня роутинг прекрасно работает! Никаких проблем не было никогда.

    • @Jekklo
      @Jekklo 2 роки тому

      хмммм а разве масс транзит работает с обменниками типа Direct excange?

    • @SergeiCalabonga
      @SergeiCalabonga  2 роки тому

      @@Jekklo на сайте в документации всё написано, с чем работает и каким образом. 🙃

  • @yellowround7761
    @yellowround7761 2 роки тому

    rabbit mq = kafka?

    • @SergeiCalabonga
      @SergeiCalabonga  2 роки тому

      Нет. Kafka - исторический журнал, внутри ее вообще нет понятия очереди. В принципе!

  • @user-tf1dk6ju8z
    @user-tf1dk6ju8z 11 місяців тому

    Мармок, ты?))

  • @cody__9115
    @cody__9115 2 роки тому +2

    Одна вода нужной информации 5-8 минут , всё остальное вода

    • @SergeiCalabonga
      @SergeiCalabonga  2 роки тому +1

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

    • @RobertSmith-im5kv
      @RobertSmith-im5kv 2 роки тому

      нет никакой воды! все очень информативно, как и всегда, спасибо огромное за видео!

    • @SergeiCalabonga
      @SergeiCalabonga  2 роки тому

      @@RobertSmith-im5kv я тоже так думаю, спасибо за поддержку!

    • @user-sy3uo4ki6v
      @user-sy3uo4ki6v Рік тому

      Согласен с тобой чувак, особенно дальше ролики когда начал смотреть, то понял что зря трачу время. Автор выкладывает архитектуру и на банальном примере усложняет до ужаса. Я пришел посмотреть как подключить рабит mq и как взаимодействовать, а не о том как на маленьком проекте написать 10 паттеронов, ради паттернов, чтобы абстрактная фабрика возвращала абстрактный метод, который вернет еще какую-то х*йню. На самом деле можно было тупо создать 2 консольных приложения, запустить рабит mq и передавать объекты, чтобы показать как работают там маршруты и все, сразу стало бы все понятно. Я бы переименовал канал на "сложно о простом"

  • @semenivanoff8615
    @semenivanoff8615 3 місяці тому

    Так масстранзит он же для дотнета. Кто им пользуется сегодня то?

  • @semenivanoff8615
    @semenivanoff8615 3 місяці тому

    Сишарп? Асп нет? Сегодня? Фуууууу

    • @SergeiCalabonga
      @SergeiCalabonga  3 місяці тому

      В кривых руках и калькулятор зависает 😂