Паттерн наблюдатель в микросервисе

В настоящее время я читаю книгу под названием: Head First Pattern Design, есть один шаблон проектирования, который называется: Observer pattern, например: https://www.tutorialspoint.com/design_pattern/observer_pattern.htm

Читая этот шаблон проектирования, я чувствовал, что в настоящее время мы часто используем систему очередей для публикации и подписки задач между каждым микросервисом. Есть ощущение, что паттерн Observer сейчас используется нечасто. Пожалуйста, поправьте меня, если я не прав, если вы можете привести пример использования шаблона наблюдателя в mircoservice, будет отлично!

Сервисы потокового видео, системы фондовой биржи, системы репозиториев и т. д. Будут иметь в основе шаблон наблюдателя.

Tej 01.06.2018 01:19

@Tej, не могли бы вы объяснить поподробнее?

J.L 01.06.2018 01:20

Например, с точки зрения сервисов потокового видео. Один объект, то есть видео, будет наблюдаться разными наблюдателями, такими как служба аналитики, которая фиксирует время, потраченное на видео, и наблюдатель пользовательского интерфейса, который обновит визуальные компоненты страницы.

Tej 01.06.2018 01:29

medium.freecodecamp.org/… - одно из лучших моих чтений, которое помогло мне быть более ясным по этой теме.

Tej 01.06.2018 01:32

@Tej, спасибо, вкратце, вы имеете в виду, что сервисы сервалов работают как издатели, а одна или две объектные модели работают как подписчики, обновления сервиса будут отражаться на этих моделях?

J.L 01.06.2018 01:41

Извините, я имел в виду, что одно видео - это тема, и за ним наблюдают аналитики и наблюдатели пользовательского интерфейса.

Tej 01.06.2018 01:46
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
6
1 303
1

Ответы 1

Я думаю, что Atom Feed - это то, что вы ищете на уровне микросервисов.

https://martinfowler.com/bliki/AtomFeeds.html

Мы используем этот шаблон для распространения DomainEvents в нашем Домене. Другие службы подписываются на этот интерфейс и получают уведомление, как только предоставляющая служба публикует событие DomainEvent. Это работает довольно хорошо, и здесь нет никаких опросов или подобных вещей.

Мы кодируем в .net, поэтому при первом поиске это кажется многообещающей реализацией Java:

https://github.com/rometools/rome

или как сделать для C#

https://docs.microsoft.com/en-gb/dotnet/framework/wcf/feature-details/how-to-create-a-basic-atom-feed

@SimonsOn спасибо! не могли бы вы предоставить образец кода? которые помогают мне лучше понять ..

J.L 01.06.2018 12:39

@Chwa мы кодируем в .net, поэтому я не знаю реализации java. Но это похоже на подходящую библиотеку github.com/rometools/rome

Simons0n 01.06.2018 12:53

@SimonsOn that 'отлично, на самом деле мои знания .net лучше, чем java

J.L 01.06.2018 13:04

@Chwa тогда попробуй;) docs.microsoft.com/en-gb/dotnet/framework/wcf/feature-detail‌ s /…

Simons0n 02.06.2018 10:26

Другие вопросы по теме