170 похожих чатов

Вопрос не совсем по дотнету. Есть два сервиса на C#, которые

должны общаться через RabbitMQ. В одном сервисе создали новую сущность, например, Product. Как дать знать об этом другому сервису? Надо чтобы у другого сервиса в БД тоже появилась эта сущность. Причём такие манипуляции возможны относительно и других методов CRUD. Искал инфу не нашёл. Как правильно все это сделать? Не хочется велосипеды изобретать

24 ответов

9 просмотров

ставишь масстранзит, описываешь событие ProductCreated, кидаешь его, в других сервисах подписываешься

а использовать одну субд на 2 сервиса получится?

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

Мαкс
а использовать одну субд на 2 сервиса получится?

если одна субд для двух сервисов то у тебя неявный монолит со всеми проблемами монолитного приложения.

если я понимаю верно суть брокеров сообщений, то ты кидаешь туда сообщение (publish), а подписчик слушает (pooling) и если пришло нужное событие обрабатывает его как ему угодно, например положил в другую бд. это все встроено в кролика.

Magomed-Mirzaev Автор вопроса
_Д_
если я понимаю верно суть брокеров сообщений, то т...

А как кролик поймёт какого типа сущность была создана, о том что она была создана, а не изменена? Я как понял там просто текст передаётся

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

Magomed Mirzaev
А как кролик поймёт какого типа сущность была созд...

ты описываешь свою объектную модель событий. ты можешь описать что за событие (создание изменение удаление) и сам контент (нужно серализовывать/десереализовывать), либо можешь подписаться на разные топики. один топик за создание отвечает, другой за изменение а третий за удаление. но лучше посмотри бест практис для брокеров сообщений. я лишь теоретик

_Д_
ты описываешь свою объектную модель событий. ты мо...

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

βλαδιμιρ
бестпрактис не придумывать велосипеды для сериализ...

звучит классно. можешь ссылку кинуть что это такое?

βλαδιμιρ
бестпрактис не придумывать велосипеды для сериализ...

Кстати, а MassTransit сейчас сколько поддерживает уже из коробки брокеров и сериализаторов?

Dmitriy Bobrovskiy
Так лучше, но чутка сложнее.

У вас есть такая штука, чтобы не было конструктора копирования, а передавала по-значению стразу же в данный объект

Zigzag Hax
У вас есть такая штука, чтобы не было конструктора...

можно через сереализацию и дессериализацию долбануть

Dmitriy Bobrovskiy
Сударь, C# и C++ отличаются а этом пипец как

Я и хочу узнать все прелести Шарпов, так как удобная штука для быстрых вещей и показать моментом. На подобии Питона, но по-красивше

Larymar GC
шарп не для быстрых решений)

Уж быстрее, чем на плюсах городить год-обжекты

Dmitriy Bobrovskiy
Ну, эт неправда.

имхо с питоном покататься по клаве лицом

Zigzag Hax
Уж быстрее, чем на плюсах городить год-обжекты

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

Похожие вопросы

Обсуждают сегодня

Скажите, можно ли как-то "переместить" динамический массив из одной переменной в другую? Скажем, переместить из TList<> в TArray<>. Именно переместить, а не скопировать. Если ...
Eugene Krasnikov (ᴊɪɴ x)
37
комрады, че-та лыжы не едут var tmpFont: TFont; begin tmpFont:= TFont.Create; try case rgFontColor.ItemIndex of 0: tmpFont.Color:= clWindowText; 1: tmpFo...
Ed Doc
34
Вот еще криповенькая штука. uMain.pas(517,3) Warning: Case statement does not handle all possible cases И ЧО? 😂
Александр (Rouse_) Багель
15
.model small .stack 100h .data a db 'Hello, World!', '$' ; исходная строка b db 20 dup(?) ; строка b с запасом на максимальную длину .code main: ...
Алексей -man
3
вопрос, кого посмотреть в ютубе или где почитать про указатели чтобы раз и навсегда запомнить зачем они нужны и как правильно ими пользоваться? поделитесь хорошими ресурсами, ...
-
14
М-да. Почему бы просто со stringlist не работать?
Michael Longneck
23
Интересно, нет ли какого-то способа получить из dll не адрес самой метки, а адрес со смещением?
The Bird of Hermes
54
Редактор листа Excel, по сути двумерный массив ячеек. Ячейка - это экземпляр класса, у нее всякие свойства, методы. Проблема в том, что количество используемых строк и колоно...
Sergey Bodrov
2
Is there a digital way to cut the electricity from a usb in linux? It sounds weird, but it's exactly what I need to do. I tried to simulate the unplug/replug but is not the ...
Eduard Rivas
15
Решаемо? У тебя есть софт собирающийся без хинтов ворнингов?
Александр (Rouse_) Багель
9
Карта сайта