|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
Petro123love_bach, замечательно что начали код приводить. Для вашего кода не нужна ни асинхронность, ни микросервисы, ни очередь. DTO передают на толстый клиент в котором своя бизнес логика. Если общение и взаимодействие тесное то берут протокол повыше. В шарпе это SOAP MS в виде WCF . - Кроме того вы ТЗ на информационную систему SomeDTO напишите? - SomeDTO это микросервис? - Бизнес логика у вас где? ЗЫ В интернете ржут, что микросервисы у всех наслуху но никто в живую их не видел). У меня впечатление, что вы их тоже не писали). love_bachно хочется как-то красиво и просто чтобы было Делите информационную систему по функционалу и по ГОСТ 34 куда-то Вас понесло не туда. мне требуется реализовать взаимодействие по моделям запрос/команда. как сейчас это реализовано я привел. в принципе меня это устраивает. но хочу попробовать это же сделать на основе очереди. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 07:53 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
Petro123Кстати, я поражаюсь как MS смог упростить SOA / SOAP для прикладников. Выше код есть. Ведь ничего по сути не надо делать и писать чтобы удаленный хост из Арктики не стал простейшим твои родным рядом. Раньше я более скептически к soa относился. Поэтому опять вопрос ТСу. Занафига тут микросервисы? Вы спутали межклассовое общение и микросервисы? ничего я не спутал. на вопрос "Занафига тут микросервисы" отвечать за меня я не просил ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 07:55 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
Petro123Кстати, я поражаюсь как MS смог упростить SOA / SOAP для прикладников. Выше код есть. Ведь ничего по сути не надо делать и писать чтобы удаленный хост из Арктики не стал простейшим твои родным рядом. Раньше я более скептически к soa относился. Sprring Cloud пойдет еще дальше. Из стека разработки уходят endpoints. Уходят сетевые протоколы. Останутся сущности мира functional programming. Такие как supplier, consumer, function. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 08:36 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
stenfordмикросервисы не могут посылать команды и запросы друг другу непосредственно, все общение только через асинхронные очереди Вы скорее всего путаете микросервисы с чем то другим. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 08:45 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
love_bachкуда-то Вас понесло не туда. мне требуется реализовать взаимодействие по моделям запрос/команда https://www.google.ru/search?q=моделям запрос/команда&rlz=1C1GIGM_enRU733RU775&oq=моделям запрос/команда&aqs=chrome..69i57&sourceid=chrome&ie=UTF-8 love_bachничего я не спутал. на вопрос "Занафига тут микросервисы" отвечать за меня я не просил конкретика и термины инженера будут или вы тут написали код в виде геттера и думает всё на этом? Типа всё, можно обсуждать геттер на микросервисах. Увы - сферический конь в вакууме(. Мы не видим предмет обсуждения - микросервисы. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 10:15 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
stenfordмикросервисы не могут посылать команды и запросы друг другу непосредственно, все общение только через асинхронные очереди ну это же чистая теория. Например, как СУБД должна быть полностью нормализована. А в реальности зачем мне в БЛ запрос модуля ОтделКадров что такой юзер ещё работает асинхронно? Если говорить про шарп, то вызов асинхронный или синхронный определяется в одну строку. Поэтому и вопросов нету. Программист решает в каждой своей написанной строке. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 10:26 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
Наверное он имел в виду CQRS. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 10:26 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
maytonНаверное он имел в виду CQRS. я только "за" такой термин) и ещё как можно больше вопросов с примерами кода от автора топика. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 11:25 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
Petro123А в реальности зачем мне в БЛ запрос модуля ОтделКадров что такой юзер ещё работает асинхронно? у тебя не будет такого запроса в микросервисной архитектуре, ни синхронного, ни асинхронного, я еще раз повторяю что все общение микросервисов - это оповещения через асинхронные события, а не команды или запросы к друг другу. Если информация о том, работает юзер или нет нужна в другом микросервисе - то она там и будет находится. Почитай базовую теорию ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 11:46 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
stenford, ну давай почитаем на пальцах: 1)Request-Response Model 2)Observer Model Используем две модели? Так? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 12:16 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
stenford, я читал твои посты ранее. И они довольно интересны по практике. Но тут думаю, что ты имел дело с шиной предприятия и ESB. В микросервисах это антипаттерн. Хотя любви к микросервисам я не испытываю. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 12:37 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
stenfordPetro123А в реальности зачем мне в БЛ запрос модуля ОтделКадров что такой юзер ещё работает асинхронно? у тебя не будет такого запроса в микросервисной архитектуре, ни синхронного, ни асинхронного, я еще раз повторяю что все общение микросервисов - это оповещения через асинхронные события, а не команды или запросы к друг другу. Если информация о том, работает юзер или нет нужна в другом микросервисе - то она там и будет находится. Почитай базовую теорию А поподробнее? Вот есть у тебя микросервис аутентификации, через какие такие асинхронные события предлагаешь с ним общаться? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 12:43 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
Рассмотрим пример отсюда: https://microservices.io/patterns/communication-style/rpi.html There are numerous examples of RPI technologies - REST - gRPC - Apache Thrift RegistrationServiceProxy from the Microservices Example application is an example of a component, which is written in Scala, that makes a REST request using the Spring Framework’s RestTemplate: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
The value of user_registration_url is supplied using Externalized configuration . Где тут "оповещения через асинхронные события"? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 12:50 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
stenfordPetro123А в реальности зачем мне в БЛ запрос модуля ОтделКадров что такой юзер ещё работает асинхронно? у тебя не будет такого запроса в микросервисной архитектуре, ни синхронного, ни асинхронного, я еще раз повторяю что все общение микросервисов - это оповещения через асинхронные события, а не команды или запросы к друг другу. Если информация о том, работает юзер или нет нужна в другом микросервисе - то она там и будет находится. Почитай базовую теорию Дорогой друг. Ваше определение микросервисов весма странное и ограниченное. Предоставте плиз форуму ту самую базовую теорию которую вы читали. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 13:02 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
maytonДорогой друг. Ваше определение микросервисов весма странное и ограниченное. Предоставте плиз форуму ту самую базовую теорию которую вы читали. уж куда базовей https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/ ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 13:28 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
stenford, и где же Вы увидели, что "все общение микросервисов - это оповещения через асинхронные события"? На Вашей же картинке - это только один из трёх вариантов. Ну и чёрным по белому написано: "Если возможно, то не завязывайтесь на синхронную коммуникацию". А если не возможно? Если с одним из десяти надо общаться синхронно? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 13:37 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
Вообщем очередное утверждение из серии "Прочитал, понял на свой лад, вместо того, чтобы разобраться". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 13:39 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
Мда.. Сэм Ньюман дает несколько другое более общее определение. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 14:06 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
mayton, Я за то чтобы читать независимых аналитиков. MS документы и взгляд несколько не то). Я тоже читал и поддерживаю, что как модель Запрос-ответ, так и модель Наблюдатель могут использоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 14:27 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
Я бы тоже очень осторожно относился к публикациям microsoft в части обобщенных знаний которые ms не создает единолично. У них - один взгляд. У google другой. У oracle вообще третий. Шаблон CQRS это вообще специфика. Его надо отдельно рассматривать и тюнить с учетом его особенностей. Кидаться в крайности (ipc) еще рано. Надо доказать что ни storage ни network не являются слабым звеном. До этого - долгий путь. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 14:42 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
Итого приземлю задачу автора топика: love_bachЧтобы не дергать их API по http. Как обычно делают? Смотрю на общение чз очереди сообщений (RabbitMQ и т.п.). или это не то? Если вы не писали Hello world с очередями - напишите и сделайте отдельную тему по очередям. RabbitMQ , ZeroMQ , Kafka или даже Redis Pub / Sub Не нужно пристегивать сюда микросервисы. Это будет телега впереди лошади. Там много чего надо. IMHO Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 14:57 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
maytonЯ бы тоже очень осторожно относился к публикациям microsoft в части обобщенных знаний которые ms не создает единолично. У них - один взгляд. У google другой. У oracle вообще третий. смысл этого "взгляда" в том, что обратившись к микросервису клиент гарантированно получит ответ в не зависимости от доступности других сервисов. Если-же сервисы связаны с друг другом мириадами связей, то и смысла делить на микросервисы особо нет, монолитная структура будет эффективней. Если у вас есть ссылки на "взгляды" гугла и оракла с обоснованиями другой точки зрения - то приведите, интересно почитать ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 01:56 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
Chris RichardsonSynchronous RESTful communication between Microservices is an anti-pattern ... you seem to being saying that the Netflix architecture (hystrix, eureka, ribbon, ..) is broken ... hmm what would Ben Christensen say? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 06:47 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
Мнение Бена думаю сами найдёте... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 06:50 |
|
Внутреннее общение между микросервисами
|
|||
---|---|---|---|
#18+
stenford, ну и расскажите уже ТСУ, как ему даже запросы делать не через Synchronous Call, он же про Get и спрашивает: 21668941 . Предлагаю на примере Вашей же картинки: вот получил Ordering service сообщение о том, что заказ надо оформить, как он данные обо всём что ему нужно подтягивает, используя "оповещения через асинхронные события"? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 07:16 |
|
|
start [/forum/topic.php?fid=18&msg=39700088&tid=1355143]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 173ms |
0 / 0 |