Microservices: Communication through a message queue. Part 1.

  Рет қаралды 20,300

Sergei Calabonga

Sergei Calabonga

3 жыл бұрын

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 жыл бұрын
Спасибо, за то что делаете! Только начал смотреть про взаимодействие микросервисов и Вы выпустили видео)
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Хорошо, когда всё к месту и в тему!!!
@Mr43046721
@Mr43046721 2 жыл бұрын
Сергей, большое спасибо за Ваши труды! Очень полезный контент)
@SergeiCalabonga
@SergeiCalabonga 2 жыл бұрын
Спасибо за добрые слова!
@socialcatalyst2608
@socialcatalyst2608 3 жыл бұрын
Спасибо тебе добрый человек!
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
И вам спасибо за комментарий
@Sergey-vh3vj
@Sergey-vh3vj Жыл бұрын
Спасибо за труд.
@SergeiCalabonga
@SergeiCalabonga Жыл бұрын
И есть за что! Спасибо за комментарий!
@Andrzej3935
@Andrzej3935 Жыл бұрын
Спасибо большое!
@SergeiCalabonga
@SergeiCalabonga Жыл бұрын
Большое пожалуйста
@semen083
@semen083 3 жыл бұрын
Использование mass transit противоречит концепции микросервисной архитектуры, что сервисы могут быть реализованы с использованием разных технологий. Если один микросервис написан на C#, а другой на Java то massTransit не подойдёт. Получаем логическое противоречие при определения микросервисной архитектуры и маленький шаг в сторону монолита. Хотя конечно можно и закрыть глаза на это допущение, если все остальное хорошо работает.
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
На основании заявлений Мартина Фаулера (да и многих других корефеев по построению архитектурных решений), со всей отвественностью заявляю, что, уважаемый, заблуждаетесь. Никаких противоречий нет! Более того, если посмотреть определение микросервисной архитектуры (например в wiki), то самого понятия тоже не существует. Есть только 4 (четыре) абстракных характеристики, которые ни коим образом не ограничивают стек технологий и платформ. И, кстати, в этом-то и основная сложность этой самой архитектуры, собрать воедино все необходимые компоненты системы, подобрать правильные и самые эффективные инструменты и платформу. Чтобы выбор соответствовал нуждам вашей компании, вливался в стек технологий и работал на той платформе, которая выбрана за основу. Другими словами, можно сделать всё на одной платформе (например, ASP.NET Core), и это будет микросервисная архитектура на стеке .NET. А можно сделать на другой платформе (node.js, kafka, redis, etc), и это тоже будет микросервисная архитектура, но на другой платформе стеке. И более того, вы может использовать несколько платформ, и в любой пропорции и с любым стеком. Другое дело, что у вас не получится кроссплатформенно ипользовать MassTransit, потому что его "территория" - это .NET. P.S.: Я не ставлю перед собой задачу написать всеобъемлющую микросервисную архитектуру (или архитектуры) на разных платформах. Я попросту не знаком с отличными от .NET инструментами, платформами и прочими составляющими успеха. Все мои ролики, так или иначе, имеют привязку к ASP.NET Core. :) P.P.S.: Спасибо за хороший вопрос.
@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 на сайте в документации всё написано, с чем работает и каким образом. 🙃
@user-jz8xu8dg9o
@user-jz8xu8dg9o Жыл бұрын
Добрый день! На схеме на 3:00 microservice2 обращается к identity server для проверки токена - зачем? ведь у него есть токен с инфо о пользователе и правах, есть его подпись, зачем делать обращение на identity server?
@SergeiCalabonga
@SergeiCalabonga Жыл бұрын
А откуда Microservice2 знает, что это токен валидный? Вот идет на сервер проверять.
@semenivanoff8615
@semenivanoff8615 3 ай бұрын
Чтобы проверть что токен живой
@user-tf1dk6ju8z
@user-tf1dk6ju8z Жыл бұрын
Мармок, ты?))
@SergeiCalabonga
@SergeiCalabonga 11 ай бұрын
Кто здесь?
@yellowround7761
@yellowround7761 2 жыл бұрын
rabbit mq = kafka?
@SergeiCalabonga
@SergeiCalabonga 2 жыл бұрын
Нет. Kafka - исторический журнал, внутри ее вообще нет понятия очереди. В принципе!
@cody__9115
@cody__9115 2 жыл бұрын
Одна вода нужной информации 5-8 минут , всё остальное вода
@SergeiCalabonga
@SergeiCalabonga 2 жыл бұрын
Для кого-то "вода", а для кого-то - нет. Простите, но сделать одно видео для разработчиков с разным уровнем подготовки, я просто не имею достаточного уровня знаний. Может вы подскажите как это можно сделать?
@RobertSmith-im5kv
@RobertSmith-im5kv 2 жыл бұрын
нет никакой воды! все очень информативно, как и всегда, спасибо огромное за видео!
@SergeiCalabonga
@SergeiCalabonga 2 жыл бұрын
@@RobertSmith-im5kv я тоже так думаю, спасибо за поддержку!
@user-sy3uo4ki6v
@user-sy3uo4ki6v Жыл бұрын
Согласен с тобой чувак, особенно дальше ролики когда начал смотреть, то понял что зря трачу время. Автор выкладывает архитектуру и на банальном примере усложняет до ужаса. Я пришел посмотреть как подключить рабит mq и как взаимодействовать, а не о том как на маленьком проекте написать 10 паттеронов, ради паттернов, чтобы абстрактная фабрика возвращала абстрактный метод, который вернет еще какую-то х*йню. На самом деле можно было тупо создать 2 консольных приложения, запустить рабит mq и передавать объекты, чтобы показать как работают там маршруты и все, сразу стало бы все понятно. Я бы переименовал канал на "сложно о простом"
@semenivanoff8615
@semenivanoff8615 3 ай бұрын
Так масстранзит он же для дотнета. Кто им пользуется сегодня то?
@SergeiCalabonga
@SergeiCalabonga 3 ай бұрын
Все, кто на дотнете
@semenivanoff8615
@semenivanoff8615 3 ай бұрын
Сишарп? Асп нет? Сегодня? Фуууууу
@SergeiCalabonga
@SergeiCalabonga 3 ай бұрын
В кривых руках и калькулятор зависает 😂
Microservices: Communications via the message queue. Part 2.
52:37
Sergei Calabonga
Рет қаралды 4,2 М.
Василиса наняла личного массажиста 😂 #shorts
00:22
Денис Кукояка
Рет қаралды 6 МЛН
ТАМАЕВ vs ВЕНГАЛБИ. Самая Быстрая BMW M5 vs CLS 63
1:15:39
Асхаб Тамаев
Рет қаралды 4 МЛН
ГДЕ ЖЕ ЭЛИ???🐾🐾🐾
00:35
Chapitosiki
Рет қаралды 12 МЛН
100❤️
00:20
Nonomen ノノメン
Рет қаралды 71 МЛН
GraphQL для фронтенд разработчиков
35:52
Михаил Непомнящий
Рет қаралды 44 М.
Событийная интеграция в 1С - RabbitMQ и Apache Kafka
53:23
Top 25 Microservice Interview Questions Answered - Java Brains
39:54
Василиса наняла личного массажиста 😂 #shorts
00:22
Денис Кукояка
Рет қаралды 6 МЛН