У меня есть требование ниже в дизайне архитектуры микросервисов. Мой проект относится к типу служб без отслеживания состояния и с отслеживанием состояния Azure Service Fabric в Dot Net Core.
Всего в этом проекте 3 службы без отслеживания состояния и 3 службы с отслеживанием состояния.
Для каждой службы с отслеживанием состояния мы создали одну службу без отслеживания состояния в качестве шлюза к ней.
Мы будем хранить данные в сервисе с отслеживанием состояния, а через службу без отслеживания состояния мы будем отправлять данные и получать данные.
Для связи мы будем использовать прокси-сервер службы (т.е. реализованный интерфейс IService).
Я могу легко вызывать методы stateful1 из stateless1, но у меня есть требование, например, мне нужны данные из stateful1, которые зависят от stateful 2 и stateful 3.
У меня есть бизнес-логика между каждой службой с отслеживанием состояния,
В настоящее время я создаю прокси-сервер службы на statful1 и собираю все данные с сохранением состояния 2 и 3, и после вычисления все данные будут отправлены в без сохранения состояния.
Мой вопрос будет: лучше ли иметь еще один уровень, называемый репозиторием (проект библиотеки классов, используемый лицами без сохранения состояния), который будет связываться с каждой службой с отслеживанием состояния и дополнять бизнес-логику?
Или, если бизнес-логика антирежима с отслеживанием состояния будет влиять на производительность, вместо того, чтобы иметь бизнес-логику без сохранения состояния.
Я взял простой пример из 3 без сохранения состояния и 3 с отслеживанием состояния, но на самом деле мой проект состоит из более чем 50+ служб, каждая из которых имеет шлюз и службу с отслеживанием состояния. Между каждым сервисом с отслеживанием состояния мне нужно писать больше дел.
Пожалуйста, предложите мне лучший подход для выполнения этого требования.
stateful2
иstateful3
? Я имею в виду, что есть случаи, когда нам нужно возвращать данные напрямую изstateful2
илиstateful3
? Или этими услугами пользуется толькоstateful1
? - person Oleg Karasik   schedule 21.02.2019